在测验游戏中使用循环和数组在玩家之间切换

时间:2015-11-28 08:57:02

标签: java arrays loops methods

我正在编写一个非常简单的测验式桌面游戏,根据他们是否正确回答问题以及他们在骰子上滚动的内容,让玩家在棋盘上移动。我试图创建并传递一个存储玩家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]的分数?请。

1 个答案:

答案 0 :(得分:0)

您的选项似乎要么让您的问题输出得分,要么将得分对象更改为静态对象而不是静态函数。

public static int[] scorearray = [0,0];

public static int[] questions(int diceroll, int[] score)