我正在使用Android中的自动剪刀石头布应用程序,其中为两个“玩家”分配了一个值,然后对获胜者进行了评估。每秒重复一次。
String[] options = {"rock", "paper", "scissors"};
final String selected_player1 = options[new Random().nextInt(options.length)];
final String selected_player2 = options[new Random().nextInt(options.length)];
switch (selected_player1)
{
case "rock":
if (selected_player2.equals("paper"))
{
win_player2();
}
else if (selected_player2.equals("scissors"))
{
win_player1();
}
break;
case "paper":
if (selected_player2.equals("scissors"))
{
win_player2();
}
else if (selected_player2.equals("rock"))
{
win_player1();
}
break;
case "scissors":
if (selected_player2.equals("rock"))
{
win_player2();
}
else if (selected_player2.equals("paper"))
{
win_player1();
}
break;
}
问题在于,玩家2似乎几乎总是选择与玩家1相同的选项或获胜选项,因此一分钟(60个滴答声)之后,总分一直是1:20。如果我先声明并初始化player2,则得分会翻转。
是否可以使用一些其他/更好的RNG算法来防止这种情况发生?还是我的代码有问题?