我正在编写一个算术游戏,向用户提出一系列加法问题。但是,我想为每个问题随机分配一个运算符,以便问题可以是:
Question 1: num1 + num2 =
或
Question 2: num1 - num2 =
我一直在用数学。random()方法将num1和num2随机化我最不愿意做的事情是随机生成“”和“-”。
这是否与这两个字符的ASCII值有关,然后我可以在它们之间随机选择?谢谢你的帮助!
顺便说一句,我想让用户“按回车键”开始游戏,但我不知道如何操作。目前我让用户输入“y”开始。有什么想法吗?非常感谢。
//prompt user to start the game
System.out.println();
System.out.print("Press y to Start the Game: ");
String start_program = keyboard.next();
if (start_program.equals("y")) {
到目前为止,这是我的代码:
public static void main(String[] args) {
//mental arithmetic game
System.out.println("You will be presented with 8 addition questions.");
System.out.println("After the first question, your answer to the previous question will be used\nas the first number in the next addition question.");
//set up input scanner
Scanner keyboard = new Scanner(System.in);
//declare constant variables
final int min_range = 1, max_range = 10, Max_Number_of_Questions = 8;
long start_time, end_time;
//generate 2 random numbers
int random_number1 = (int) ((Math.random() * max_range) + min_range);
int random_number2 = (int) ((Math.random() * max_range) + min_range);
//declare variables
int question_number = 1;
int guess;
//prompt user to start the game
System.out.println();
System.out.print("Press y to Start the Game: ");
String start_program = keyboard.next();
if (start_program.equals("y")) {
//start timer
start_time = System.currentTimeMillis();
//ask the question
System.out.print("Question " + question_number + ": What is " + random_number1 + " + " + random_number2 + "? ");
//take in user input
guess = keyboard.nextInt();
while (guess == (random_number1 + random_number2) && question_number < Max_Number_of_Questions) {
System.out.println("Correct");
++question_number;
//generate a new question
//generate 2 random numbers
random_number1 = guess;
random_number2 = (int) ((Math.random() * max_range) + min_range);
//ask the question again
System.out.print("Question " + question_number + ": What is " + random_number1 + " + " + random_number2 + "? ");
//take in user input
guess = keyboard.nextInt();
}
end_time = System.currentTimeMillis();
int time_taken = (int) (end_time - start_time);
if (guess != (random_number1 + random_number2))
System.out.println("Wrong");
else {
System.out.println();
System.out.println("Well Done! You answered all questions successfully in " + (time_taken / 1000) + " seconds.");
}
}
}
“输入‘y’开始游戏”是完全多余的,当用户不输入‘y’时,你显然没有明智的事情要做就证明了这一点。
那么,既然这是一个命令行应用程序,为什么会有人启动它然后不想玩游戏呢?继续问第一个问题吧!如果用户确实以某种方式意外启动了该程序,那就不会有任何伤害,这并不是说您要覆盖重要文件、启动导弹或类似的东西。
我认为对于随机字符,您可以像这样使用布尔值:
Random rd = new Random(); // creating Random object
if(rd.nextBoolean()) {
//Do something
} else {
//Do Something else
}
对于enter,我认为这是一个在ide控制台上玩的游戏?因为这样您就可以使用扫描仪跟踪按下enter键的时间。这将帮助您我想:Java使用扫描仪按enter键
您可以使用Random#nextInt
从0
到array.length-1
选择一个随机int,您可以将其用作运算符数组的索引。
import java.util.Random;
public class Main {
public static void main(String[] args) {
char[] operators = { '+', '-', '*', '/' };
// Pick a random operator
Random random = new Random();
char op = operators[random.nextInt(operators.length)];
System.out.println(op);
}
}
示例运行:
/
本文向大家介绍在C#中将字符串随机化,包括了在C#中将字符串随机化的使用技巧和注意事项,需要的朋友参考一下 要随机化字符串,首先使用Random类- 现在,将方法与- 这是显示随机字符串的竞赛代码- 示例 输出结果
问题内容: 我一直在寻找一种简单的 Java算法来生成伪随机的字母数字字符串。在我的情况下,它将用作唯一的会话/密钥标识符,在整个世代中“可能”是唯一的(我的需求实际上不需要任何更复杂的东西)。 理想情况下,我可以根据自己的独特性要求指定长度。例如,生成的长度为12的字符串可能看起来像。 问题答案: 算法 要生成随机字符串,请连接从可接受的符号集中随机抽取的字符,直到字符串达到所需的长度。 实作
问题内容: 我想要一个5个字符串,该字符串由从集合中随机选择的字符组成。 用JavaScript做到这一点的最佳方法是什么? 问题答案: 我认为这将为您工作:
问题内容: 特别是,我想确保避免Microsoft的BrowserChoice随机代码中的错误。也就是说,我要确保每个字母在每个可能位置出现的可能性均等。 例如,给定“ ABCDEFG”,则返回类似“ GEFBDCA”的内容。 问题答案: String.prototype.shuffle = function () { var a = this.split(“”), n = a.length;
问题内容: 如何在两个特定字符之间生成随机字符?例如 我想生成“ h”或“ v”之一。 谢谢 问题答案: 如果你想生成一个字符,如你所说,H或V,你就可以使用该随机数随机类如图所示这里。例如,如果随机数大于0.5,则选择v,否则,选择h。 另一方面,如果您有一定范围的字母,则可以生成具有所需字符的数组,并生成一个随机数(将用作选择随机字母的索引),否则,可以生成随机数在65(Aschii为A)和9
问题内容: 在java中如何生成随机数? 问题答案: 在Java 1.7或更高版本中,执行此操作的标准方法如下: 请参阅相关的JavaDoc。这种方法的优点是不需要显式初始化java.util.Random实例,如果使用不当,可能会引起混乱和错误。 但是,相反,没有办法明确设置种子,因此在有用的情况下(例如测试或保存游戏状态或类似情况),很难重现结果。在这种情况下,可以使用下面显示的Java 1.