我正在尝试制作剪刀石头布的游戏。用户输入以供他们选择。提示是:

System.out.print("Type R(ock), P(aper), or S(cissors): ");


因此,r =石头,p =纸,s =剪刀。同样,计算机必须使用Random类选择一个(r,p或s)。

我知道如何对一组数字进行编码(即选择1到20之间的数字),但是我不知道如何为几个特定的​​字母(在这种情况下为r,p和s)设置它。

有人可以帮我解释一下吗?

编辑:

这是基本上我要打印的示例:

Type R(ock), P(aper) or S(cissors): **X**
Invalid answer. Re-type R, P or S: **y**
Invalid answer. Re-type R, P or S: **Z**
Invalid answer. Re-type R, P or S: **R**
You played rock. The computer played scissors.


这是我到目前为止所拥有的:

import java.util.*;

public class RPS {
   public static void main(String[] args); {
      Random piece = new Random();
      System.out.print("Type R(ock), P(aper) or S(cissors): ");
      int r = rock;
      int p = paper;
      int s = scissors;
      char types = {'r', 'p', 's'};
      while (!piece = types) {
         System.out.println("Invalid answer. Re-type R, P or S: ");
      }
   }

}


现在没有人误会我的意思,我不是在要求任何人给我确切的答案,但我希望有一个正确的方向。

最佳答案

您需要将所需的任何数据存储在数组或列表中,这样将为每个字母分配一个索引号,然后您可以将其用作生成随机数的参考。

char[] types = {'r','p','s'};
System.out.println(types[new Random().nextInt(types.length)]);


您可以找到有关数组here的更多信息。

编辑
如果您不熟悉数组,则可以在每种情况下使用if语句

public static void main(String[] args) {

    int rock = 0, paper = 1, scissors = 2;
    Random rand = new Random();
    int random_try = rand.nextInt(3);

    if(random_try == 0){
      System.out.println("Random choice was Rock");
    }
    else if(random_try == 1){
      System.out.println("Random choice was Paper");
    }
    else if(random_try == 2){
      System.out.println("Random choice was Scissors");
    }

  }


希望这可以帮助。

关于java - 石头剪刀布,随机类变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48614389/

10-09 03:54