dポイントプレゼントキャンペーン実施中!

Javaを勉強し始めて1ヶ月半になりました。
サイコロを振って、合計値が高い人の勝ち。というゲームをecripceを用いて作成しています。
ルールとしては、
①プレイヤーは3人
②3回ずつサイコロを振り、各プレイヤーの合計値を出す
③合計値が一番高い人の勝ち(引き分けの場合は引き分けとする)
というゲームになります。

現在、各プレイヤーの合計値を出すことはできました。
その後の勝敗と引き分け判定の書き方がわからず、質問をさせていただきました。
ご教示いただけないでしょうか。

コードは以下になります。
package test;

public class SaikoroGames {

public static void main(String[] args) {

// 各プレイヤーの合計値を代入
int score[] = new int[3];

// 値を代入
score[0] = 0;
score[1] = 0;
score[2] = 0;

// プレイヤー人数を決める
int player = 3;
int dice = 0;
// サイコロを振る回数を代入
int count = 3;

// 人数分ループする
for(int j = 1;j <= player;j++){
System.out.print("[" + j + "]" + ":");

int sum = 0;

for(int i = 0;i < count;i++){
dice = (int)(Math.random()*6)+1;
int hokan = dice;
sum += hokan;
score[j] = sum;

System.out.print(hokan + " ");
}

System.out.println();
System.out.println("合計値:" + sum);
System.out.println();
}

// 勝敗判定
int minCnt = 100;
int minCntPlayer = 0;

for(int i = 1; i <= player; i++) {
if(minCnt > score[i]) {
minCnt = score[i];
minCntPlayer = player + 1;
}
}

System.out.println("勝者は" + minCntPlayer + "回目の人で、合計値は" + minCnt + "でした。");

}
}

よろしくお願い致します。

A 回答 (3件)

1. 点数の最大を求める


2. 最大と同じ点数の人数を数える
3. 人数が 2 以上なら引き分け
4. 引き分けでないなら、点数が最大の人の勝ち
    • good
    • 0

あとついでに指摘しておくけど, 「最大値」がどういうものか理解できてる?

    • good
    • 0

そも for の条件がおかしいことに気づいてる?



あ, dice は複数形だよ. 単数形が使われることはほぼないけど.
    • good
    • 0
この回答へのお礼

はい、勝敗判定のfor文から下がおかしいことはわかっております。
ですが、そのfor文の記述方法がわからず質問させていただきました。
最大値は最も大きい値(そのままですが)という認識しかありません。
他の意味としてはどのような意味があるのでしょうか。

お礼日時:2020/11/25 14:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!