我正在编写一个非常简单的测验式桌面游戏,根据他们是否正确回答问题以及他们在骰子上滚动的内容,让玩家在棋盘上移动。我试图创建并传递一个存储玩家1和玩家2得分的阵列方法,但阵列似乎并没有真正跟踪得分。例如,某些代码的片段如下:
public static int[] scorearray
{
int scoreplayer1 = 0;
int scoreplayer2 = 0;
return new int[] = {scoreplayer1, scoreplayer2};
}
public static int questions(int diceroll, int[] score)
{
String textinput = input("What's 9+10?");
int ans = Integer.parseInt(textinput);
if (ans == 19)
{
output("Fantastic answer, that's correct!");
diceroll = dicethrow(diceroll); // rolls the dice
output("Move forward " + diceroll + " squares. You are on square " + score[0]);
//I need the output above to print position 0 in the above array
score[0] = score[0] + diceroll; //array stores the cumulative score
}
else
{
output("Sorry, the answer was 19. Next player's turn.")
//This is where I need the loop to switch between players
}
另外,我需要想出一种在玩家1和2之间切换的方式,同时也切换到上面阵列中的位置1,也就是说,我需要添加到玩家2的得分而不是球员之一。我已经梳理了这段代码多年了,现在试图弄清楚如何做到这一点,但我只能提出使用for / while循环的想法。除此之外,我真的很难过。
感谢。
编辑:在方法questions
中使用时,我的阵列显然仍然没有存储得分。
此外,我现在已经意识到我可以通过创建另一种方法来控制轮到谁,例如public static void activePlayer()
但是我仍然不确定如何使用循环(或其他任何事情)来在两者之间切换。另外我关心的是我在score[0] = score[0] + diceroll;
方法中使用questions
的方法只保留玩家1的得分(或者至少尝试;见上述问题)。如何切换它以保持score[1]
的分数?请。
答案 0 :(得分:0)
您的选项似乎要么让您的问题输出得分,要么将得分对象更改为静态对象而不是静态函数。
public static int[] scorearray = [0,0];
或
public static int[] questions(int diceroll, int[] score)