[英]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.