java - 如何在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 {
解决方案
我不知道如何将其转换为数字来判断猜测是之前还是之后。
尝试使用 aMap
来了解每个字符的位置:
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
or中获取一个随机字符lowerCase
并找到该字符在地图中的位置。
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);
}
推荐阅读
- html - 根据 html 文件设置窗口设置(通过图标属性)
- php - magento 2自定义日历而不是核心日历
- java - 文件上传到onedrive时触发java代码从onedrive下载文件
- javascript - 如何使用 url 删除 service worker 缓存
- spring-boot - src/main/resources 和 src/test/resources 中的 bootstrap.yml 文件
- c# - 如何使用图像和富文本创建和打印销售票
- php - $_GET 变量在使用 htaccess 重写 url 后丢失
- regex - MySQL正则表达式匹配和不匹配多个表达式,无论顺序如何
- visual-studio - 如何用netsh配置大量端口
- javascript - 如何在 JavaScript 中访问嵌套数组中的属性?