[英]How to create a random letter guessing game on java
我正在嘗試在Java上創建一個猜謎游戲。 用戶將猜測計算機已經生成的字母。 應包括小寫和大寫字母,但是猜測“ A”等同於猜測“ a”。 我正在嘗試創建一個反復詢問字母的循環,直到用戶猜出計算機的字母為止。 在每次錯誤的猜測之后,我需要告訴用戶他們的字母是在正確的字母之前還是之后。
我不知道如何將Random類同時使用大寫和小寫字母。 我不知道如何將其轉換為數字以判斷猜測是在之前還是之后。
import java.util.Random;
import java.util.Scanner;
public class GuessLetter {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random ran = new Random();
String alphabet="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int N= alphabet.length();
char a =(alphabet.charAt(ran.nextInt(N)));
Scanner scanner=new Scanner(System.in);
System.out.println("Enter a letter:");
String i= scanner.nextLine();
char b =(i.charAt(0));
while {
您可以使用String.indexOf(char)
在可能的字符集中查找用戶輸入的位置。 然后將該位置與您生成的隨機數進行比較,以確定它的高低。
我不知道如何將其轉換為數字以判斷猜測是在之前還是之后。
嘗試使用Map
來了解每個字符的位置:
public static final String lowerCase = "abcdefghijklmnopqrstuvwxyz";
public static final String upperCase = lowerCase.toUpperCase();
public static final Map<Character, Integer> charMap = new HashMap<>();
static {
for (Character c : lowerCase) {
charMap.put(c, lowerCase.indexOf(c));
}
for (Character c : upperCase) {
charMap.put(c, upperCase.indexOf(c));
}
}
我不知道如何將Random類同時使用大寫和小寫字母
通過上述設置,您只需要從upperCase
或lowerCase
獲取隨機字符, upperCase
在地圖上找到該字符的位置。
public static final String allCharacters = lowerCase + upperCase;
public static final Random rand = new Random();
static {
char randomChar = allCharacters.charAt(rand.nextInt(allCharacters.size()));
int position = charMap.get(randomChar);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.