gpt4 book ai didi

java - 谜语的乐趣

转载 作者:行者123 更新时间:2023-12-02 06:37:35 25 4
gpt4 key购买 nike

我正在编写一个简单的谜语程序,它读取谜语文本文件,将其存储到 ArrayList 中,然后读取谜语答案的文本文件,并将其存储到 ArrayList 中。嗯,到目前为止一切顺利。我的问题是,每当用户回答其中一个谜语时,它应该为正确答案给出一分,而对于错误答案则不给出任何分数。我测试了一下,正确回答了这个谜语,但是程序却说它是错误的。现在,某些答案应该接受 1 以上作为正确答案,例如:问:什么东西有眼睛却看不见?答:一个土 bean 、一场 Storm 、一根针。假设用户想到的不是 3,而是 1,而且是 Storm 。我希望程序读取storm,并且由于它包含在答案中,所以它是正确的。这是我的代码。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;

/* Array of riddles with a separate array of answers */
class RiddlesProgram
{
public RiddlesProgram(){} //Empty constructor

public void riddleGame() throws FileNotFoundException
{
String ridFile = "Riddles.txt";
String ansFile = "Answers.txt";
Scanner ridReader = new Scanner(new File(ridFile));
Scanner ansReader = new Scanner(new File(ansFile));
/** ArrayLists for riddles and answers */
ArrayList<String> riddles = new ArrayList<String>();
ArrayList<String> answers = new ArrayList<String>();
/** Reading the Riddles & storing them in their array */
while(ridReader.hasNext())
{
riddles.add(ridReader.nextLine());
}ridReader.close();
/** Reading the Answers & storing them in their array */
while(ansReader.hasNext())
{
answers.add(ansReader.nextLine());
}ansReader.close();

Scanner in = new Scanner(System.in);
String answer = "";
System.out.println("Welcome to the Riddler!");
System.out.println("Let's start answering riddles..."); System.out.println();
System.out.println("Each riddle will require either a one word answer, or multiple word answer.");
System.out.println("Example: \nQ: How much would could a wood chuck, chuck?\n"
+ "A: As much wood as a wood chuck could chuck if a wood chuck would chuck wood.");
int count = 1;
int points = 0;
while(count!=16)
{
System.out.println("Riddle # " + count);
System.out.println(riddles.get(count));
System.out.println("\nAnswer? ");
answer = in.nextLine();
if(answers.contains(answer.toLowerCase()))
{
System.out.println("Correct! + 1 point.");
points += 1;
}//End if
else
{
System.out.println("Wrong! No points!");
}//End else
count++;
}//End while
}//End riddlegame
}//End class

谜语文本示例
我比羽毛还轻,但没有人能抱我很久。我是什么?
三个人跑进一家酒吧,第四个人躲了起来。他为什么要躲闪?
怎么把长颈鹿放进冰箱?
如何把大象放进冰箱?
所有的动物都去参加狮子王的 session 。一只动物没有出现。哪种动物不来?
你来到一条鳄鱼居住的河流。没有船、木筏、桥梁,也没有制造它们的 Material 。你是如何到达的?
一根十五英尺长的绳子拴在一匹马身上。马距离干草堆 25 英尺。马怎样才能到达干草处?
从哪个数字开始,你可以拿走一半而不留下任何东西?
如何将鸡蛋从 3 英尺高处扔下而不打破它?
怎样才能只用一根棍子生火?
你如何区分一 jar 鸡汤和一 jar 番茄汤?
长颈鹿能生 child 吗?
什么东西有四个轮子并且会飞?
给我食物,我就活;给我东西喝,我就会死。我是什么?
什么东西有眼睛却看不见?
什么时候门不是门?

示例答案文本
呼吸
他不想去酒吧
打开门,把他放进去,关上门
打开门,把长颈鹿拿出来,放进去,关上门
大象,他在冰箱里
跳进去,游过去,出来。鳄鱼们正在开会
除了马之外,绳子没有绑在任何东西上
8. 去掉上半部分,留下“o”
把它扔到 4 英尺处,前 3 英尺鸡蛋不会撞到任何东西
确保它是火柴棍
阅读标签
不,他们有长颈鹿
垃圾箱

一根针,一个土 bean ,一场 Storm ,还是真正的恋人
当它半开时

最佳答案

answers 不包含字符串“storm”。它包含一个包含“storm”的字符串。在检查 String#contains(String) 之前从 answers 检索相应的字符串(而不是像您所做的那样 List#contains(Object)现在)。

String correctAnswer = answers.get(count).toLowerCase();
if(correctAnswer.contains(answer.toLowerCase()))
{
System.out.println("Correct! + 1 point.");
points += 1;
}

关于java - 谜语的乐趣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19480604/

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