前提・実現したいこと
Javaを勉強し始めて1ヶ月半になり、簡単なゲームを作成する課題があります。
ゲームの内容は以下になります。
・プレイヤー3人
・それぞれサイコロを3回ずつ振り、各々その合計値を求める
・合計値が大きい人の勝ち
配列と乱数を使用して作成しているのですが、合計値を求めるコードの書き方がわからず、躓いています。
ご教示いただけると幸いです。
よろしくお願い致します。
--追加の質問--
合計値を表示することはできました。
その後、勝敗判定や引き分け判定の処理を入れたいです。
sumは毎回初期化されてしまうため、各プレイヤーのスコアを他に保存しないといけないのですが、その書き方がわかりません。
アドバイスをいただけないでしょうか。
よろしくお願い致します。
発生している問題・エラーメッセージ
[1]:4 5 2
合計値:11
[2]:2 4 5
合計値:11
[3]:2 3 1
合計値:6
勝者は1回目の人で、合計値は6でした。←最後にsumに入った値が出てしまいます。
↑毎回"1回目"と出てしまいます。
該当のソースコード
package test;
public class SaikoroGames {
public static void main(String[] args) {
// プレイヤー人数を決める
int r[] = new int[3];
// 値を代入
r[0] = 1;
r[1] = 2;
r[2] = 3;
int dice = 0;
// サイコロを振る回数を代入
int count = 3;
int score = 0;
// 人数分ループする
for(int j = 0;j < r.length;j++){
System.out.print("[" + r[j] + "]" + ":");
int sum = 0;
for(int i = 0;i < count;i++){
dice = (int)(Math.random()*6)+1;
int hokan = dice;
sum += hokan;
System.out.print(hokan + " ");
}
score = sum;
System.out.println();
System.out.println("合計値:" + sum);
System.out.println();
}
// 勝敗判定
int minCnt = 100;
int minCntPlayer = 0;
for(int i = 0; i < r.length; i++) {
if(minCnt > r.length + score) {
minCnt = r.length + score;
minCntPlayer = r[i];
}
}
System.out.println("勝者は" + minCntPlayer + "回目の人で、合計値は" + score + "でした。");
}
}
試したこと
sumを代入する変数を複数作りましたが、最後に入った値が出てしまいました。
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/18 07:19