0

わかりましたので、ゲーム Yahtzee のプログラムを書いています。各ラウンドの値をそのラウンド スコアカード ボックスに格納する方法を見つけようとしており、スコアカードの他のセクションに引き続き記入しています。私がこれを行っている方法は、私のコードのこのセクションによるものです:

  public static void finalScoreCard(int choice, int points)
  {
 int ones = one(choice, points);
 int twos = two(choice, points);
 int threes = three(choice, points);
 int fours = four(choice, points);
 int fives = five(choice, points);
 int sixes = six(choice, points);
 int threeKind = nine(choice, points);
 int fourKind = ten(choice, points);
 int fullHouse = eleven(choice, points);
 int smallStr = twelve(choice, points);
 int largeStr = thirteen(choice, points);
 int yahtzee = fourteen(choice, points);
 int chance = fifteen(choice, points);
}

 public static int one(int choice, int points)
 {
final int score;
if (choice == 1)
    score = points;

if (choice != 1 && score != points)
    return 0;
else
    return score;
 }

そのため、「one」メソッドは、選択肢の数とポイントのパラメーターを受け取り、そのボックスが選択された場合にスコアを返すことになっています。ユーザーがその選択オプションを選択した場合、プログラムで「スコア」をインスタンス化し、「スコア」に「ポイント」を割り当てたいと思います。そして、彼らがこれを行った後、メソッドは各ラウンドの後にスコアを返すか、「スコア」がインスタンス化されるまで 0 を返す必要があります。問題は、「スコア」の値を何度も保存する方法がわかりません。このプログラム全体は、13 回実行される for ループにあります。ありがとう

4

1 に答える 1

0

1 つの方法とスイッチの使用を検討します。

public void doSomething(int choice, int points)
{
  switch(choice)
  {
    case 1:
      ...
      break;
    case 2:
     ...
     break;
    default:
     //handle default case
  }
}

ああscore、プライベート変数を作成します。メソッドと変数が同じクラスにあると仮定すると、問題ないはずです。

private int score ;
于 2012-10-17T23:27:52.857 に答える