我正在尝试制作剪刀石头布的游戏。用户输入以供他们选择。提示是:
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/