当前位置: 首页 > 知识库问答 >
问题:

如何在java中随机化字符“”和“-”

孙梓
2023-03-14

我正在编写一个算术游戏,向用户提出一系列加法问题。但是,我想为每个问题随机分配一个运算符,以便问题可以是:

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.");
            }

        }
    }

共有3个答案

淳于鹏
2023-03-14

“输入‘y’开始游戏”是完全多余的,当用户不输入‘y’时,你显然没有明智的事情要做就证明了这一点。

那么,既然这是一个命令行应用程序,为什么会有人启动它然后不想玩游戏呢?继续问第一个问题吧!如果用户确实以某种方式意外启动了该程序,那就不会有任何伤害,这并不是说您要覆盖重要文件、启动导弹或类似的东西。

燕飞文
2023-03-14

我认为对于随机字符,您可以像这样使用布尔值:

Random rd = new Random(); // creating Random object
if(rd.nextBoolean()) { 
   //Do something 
} else { 
   //Do Something else
}

对于enter,我认为这是一个在ide控制台上玩的游戏?因为这样您就可以使用扫描仪跟踪按下enter键的时间。这将帮助您我想:Java使用扫描仪按enter键

姚星腾
2023-03-14

您可以使用Random#nextInt0array.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.