gpt4 book ai didi

java - 计算机变得更聪明的猜谜游戏

转载 作者:搜寻专家 更新时间:2023-11-01 03:19:21 24 4
gpt4 key购买 nike

我正在尝试制作一个猜谜游戏,让计算机在每次猜测后不断变得更聪明。这是一个示例运行:(计算机在猜测你在想什么动物)

计算机:你想到的动物有腿吗?
玩家:是的
电脑:它是一只狗吗?
玩家:是的
电脑:我赢了!你想再玩一次吗?
玩家:是的
电脑:你想到的动物有腿吗
玩家:是的
电脑:它是一只狗吗?
玩家:没有
电脑:我放弃了。你的动物是什么?
球员:马
计算机:输入一个问题,狗的答案是肯定的,马的答案不是
玩家:它住在房子里吗?
电脑:你想再玩一次吗?
玩家:是的
电脑:你想到的动物有腿吗?
玩家:是的
计算机:它住在房子里吗?
玩家:没有
计算机:它是一匹马吗?
玩家:没有
电脑:我放弃

等等

到目前为止,这是我的代码:

import java.util.*;

public class DoesItHaveLegs {
public static void main(String[] args) {
ArrayList<String> questions = new ArrayList<String>();
ArrayList<String> animals = new ArrayList<String>();
Scanner input = new Scanner(System.in);

questions.add("Does it have legs");
animals.add("dog");

String userAnimal;
String userQuestion = "";

String giveUp = "I give up. What animal was it?";

String userAnswer = "YES";

while(userAnswer.equals("YES")) {
System.out.println(animals);
System.out.println(questions);

int q = 0;
int a = 0;

while (q < questions.size()) {
System.out.println(questions.get(q));
userAnswer = input.nextLine().toUpperCase();

if(userAnswer.equals("YES")) {
System.out.println("Is it a " + animals.get(a));
userAnswer = input.nextLine().toUpperCase();
while(a < animals.size()) {
if(userAnswer.equals("YES")) {
System.out.println("Yay! I win. Do you want to play again?");
userAnswer = input.nextLine().toUpperCase();
}
else if(a < animals.size()) {
a++;
}

else {
System.out.println("I give up. What animal is it?");
userAnimal = input.nextLine();
animals.add(userAnimal);
}
}

}
else {
if(q < questions.size()) {
q++;
}
}
}
System.out.println("I give up. What animal is it?");
userAnimal = input.nextLine();
animals.add(userAnimal);


System.out.println("Type in a question for which the answer is yes for " + animals.get(a) + " but no for " + userAnimal);
userQuestion = input.nextLine();

questions.add(userQuestion);

System.out.println("Do you want to play again?");
userAnswer = input.nextLine().toUpperCase();
}
}
}

我假设有更简单的方法来完成此操作(可能是二叉树),但我就是想不出来。我不想要完整的解决方案,我只想指出正确的方向。

最佳答案

首先,尝试创建更小的方法,这样一切都更容易阅读。

再次注意,您添加了问题和动物,但不包含任何与这些匹配的内容。您的计算机只是随机猜测一种动物,从不排除任何动物。

例子:

Q1: Yes

Animals: Horse, Dog

Q1: No

Animals: Horse, Dog

如果 Q1 与 Dog 相关,如果之后没有猜对,您应该从可能的答案中删除它。

关于java - 计算机变得更聪明的猜谜游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35318466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com