簡體   English   中英

如何在Java上創建隨機字母猜游戲

[英]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類同時使用大寫和小寫字母

通過上述設置,您只需要從upperCaselowerCase獲取隨機字符, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM