首先,这是一个java骰子投掷应用程序。这将允许两个玩家一起玩,以及设置投掷的骰子数量。从那里,结果将进行比较。因此,我需要能够计算玩家1和随后的玩家2抛出的1的数量。
现在,我的代码只适用于玩家一,从那里,我将添加到玩家两个编码,以免混淆自己。我已经达到了这个部分,我可以从结果中计算出1和2的数量,但我不确定它是否是一种可行或合理的方法(if-else)语句。我想知道switch语句是否可行,或者可能是任何循环,所以你们可以给我一些建议吗?
提前致谢!
import java.util.Scanner;
import java.util.Arrays;
class TestDie {
public static void main (String [] args)
{
Die firstDie = new Die();
int[] playerOneResults;
firstDie.roll();
System.out.println(firstDie.getFaceValue());
Scanner userInput = new Scanner(System.in);
System.out.println("PLease enter the name of player one");
String playerOneName = userInput.next();
System.out.println("Please enter the name of player two");
String playerTwoName = userInput.next();
System.out.println("Enter the number of dice to be thrown");
int numDice = userInput.nextInt();
System.out.println("First player's name: " + playerOneName);
System.out.println("Second player's name: " + playerTwoName);
System.out.println("Number of dice will be thrown: " + numDice);
playerOneResults = new int[numDice];
int c = 0;
int d= 0;
for(int counter = 0; counter != numDice; counter++)
{
firstDie.roll();
playerOneResults[counter] = firstDie.getFaceValue();
System.out.println("Player one results: " + playerOneResults[counter]);
if(playerOneResults[counter] == 1)
{
c++;
} else if(playerOneResults[counter] == 2)
{
d++;
}
System.out.println(c);
System.out.println(d);
}
}
}
答案 0 :(得分:3)
我假设您想要计算骰子以1,2,3 ... 6结束的次数是多少?每个都有一个变量?如果是这样的话,我会做那样的事情
int[] counts = new int[7];
for(int counter = 1; counter <= numDice; counter++){
firstDie.roll();
playerOneResults[counter]; = firstDie.getFaceValue();
counts[playerOneResults[counter]]++;
}
我正在使用一个7的数组,跳过0处的元素,这样你就可以更容易地得到1或2的计数,例如只需调用count [1]或count [2]等。
通常,您应该在方法中拆分代码。不确定你的任务要求是什么,但我没有看到任何理由你不应该这样做。
编辑:该死的没有注意到伊兰的回答。对不起。答案 1 :(得分:1)
使用数组而不是c和d变量会更优雅:
int[] counts = new int[6];
for(int counter = 0; counter != numDice; counter++)
{
firstDie.roll();
playerOneResults[counter] = firstDie.getFaceValue();
System.out.println("Player one results: " + playerOneResults[counter]);
counts[playerOneResults[counter]-1]++;
}
count [0]将保存1的数量
计数[1]将保持两个数量
...
计数[5]将保持六位数。