質問編集履歴
1
追加で質問をさせていただきました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,53 +5,89 @@
|
|
5
5
|
・それぞれサイコロを3回ずつ振り、各々その合計値を求める
|
6
6
|
・合計値が大きい人の勝ち
|
7
7
|
|
8
|
-
配列と乱数を使用して作成しているのですが、合計値を求めるコードの書き方がわからず、躓いています。
|
8
|
+
~~配列と乱数を使用して作成しているのですが、合計値を求めるコードの書き方がわからず、躓いています。
|
9
9
|
ご教示いただけると幸いです。
|
10
|
+
よろしくお願い致します。~~
|
11
|
+
--追加の質問--
|
12
|
+
合計値を表示することはできました。
|
13
|
+
その後、勝敗判定や引き分け判定の処理を入れたいです。
|
14
|
+
sumは毎回初期化されてしまうため、各プレイヤーのスコアを他に保存しないといけないのですが、その書き方がわかりません。
|
15
|
+
アドバイスをいただけないでしょうか。
|
10
16
|
よろしくお願い致します。
|
11
17
|
|
12
18
|
### 発生している問題・エラーメッセージ
|
13
|
-
[1]:5
|
19
|
+
[1]:4 5 2
|
14
|
-
9 ←合計値が求められず、乱数がそのまま出力されているように見えます。
|
15
|
-
|
20
|
+
合計値:11
|
16
|
-
8 ←合計値が求められず、乱数がそのまま出力されているように見えます。
|
17
|
-
[3]:5 2 6
|
18
|
-
5 ←合計値が求められず、乱数がそのまま出力されているように見えます。
|
19
21
|
|
22
|
+
[2]:2 4 5
|
23
|
+
合計値:11
|
24
|
+
|
25
|
+
[3]:2 3 1
|
26
|
+
合計値:6
|
27
|
+
|
28
|
+
勝者は1回目の人で、合計値は6でした。←最後にsumに入った値が出てしまいます。
|
29
|
+
↑毎回"1回目"と出てしまいます。
|
30
|
+
|
20
31
|
### 該当のソースコード
|
21
32
|
package test;
|
22
33
|
|
23
34
|
public class SaikoroGames {
|
24
35
|
|
25
|
-
|
36
|
+
public static void main(String[] args) {
|
26
|
-
|
27
|
-
// プレイヤー人数を決める
|
28
|
-
int[] r = {1,2,3};
|
29
|
-
|
30
|
-
int sum = 0;
|
31
|
-
|
32
|
-
// 人数分ループする
|
33
|
-
for(int j = 0;j < r.length;j++){
|
34
|
-
System.out.print("[" + r[j] + "]" + ":");
|
35
|
-
for(int i = 0;i < r.length;i++){
|
36
|
-
for(int n = 0;n < 1;n++){
|
37
|
-
System.out.print(dice() + " ");
|
38
|
-
sum = dice() + dice() + dice();
|
39
|
-
}
|
40
|
-
}
|
41
|
-
System.out.println();
|
42
|
-
System.out.print(sum);
|
43
|
-
System.out.println();
|
44
|
-
}
|
45
|
-
}
|
46
37
|
|
38
|
+
// プレイヤー人数を決める
|
39
|
+
int r[] = new int[3];
|
40
|
+
|
47
|
-
|
41
|
+
// 値を代入
|
42
|
+
r[0] = 1;
|
43
|
+
r[1] = 2;
|
44
|
+
r[2] = 3;
|
45
|
+
|
46
|
+
|
48
|
-
|
47
|
+
int dice = 0;
|
48
|
+
// サイコロを振る回数を代入
|
49
|
+
int count = 3;
|
50
|
+
int score = 0;
|
51
|
+
|
52
|
+
// 人数分ループする
|
53
|
+
for(int j = 0;j < r.length;j++){
|
54
|
+
System.out.print("[" + r[j] + "]" + ":");
|
55
|
+
int sum = 0;
|
56
|
+
|
57
|
+
|
58
|
+
for(int i = 0;i < count;i++){
|
49
|
-
|
59
|
+
dice = (int)(Math.random()*6)+1;
|
60
|
+
int hokan = dice;
|
50
|
-
|
61
|
+
sum += hokan;
|
62
|
+
|
63
|
+
System.out.print(hokan + " ");
|
51
64
|
}
|
65
|
+
score = sum;
|
66
|
+
System.out.println();
|
67
|
+
System.out.println("合計値:" + sum);
|
68
|
+
System.out.println();
|
52
69
|
|
70
|
+
|
71
|
+
}
|
72
|
+
// 勝敗判定
|
73
|
+
int minCnt = 100;
|
74
|
+
int minCntPlayer = 0;
|
75
|
+
for(int i = 0; i < r.length; i++) {
|
76
|
+
if(minCnt > r.length + score) {
|
77
|
+
minCnt = r.length + score;
|
78
|
+
minCntPlayer = r[i];
|
79
|
+
}
|
80
|
+
}
|
81
|
+
System.out.println("勝者は" + minCntPlayer + "回目の人で、合計値は" + score + "でした。");
|
82
|
+
}
|
83
|
+
|
84
|
+
|
85
|
+
|
86
|
+
}
|
87
|
+
|
88
|
+
|
53
89
|
### 試したこと
|
54
90
|
|
55
|
-
|
91
|
+
sumを代入する変数を複数作りましたが、最後に入った値が出てしまいました。
|
56
92
|
|
57
93
|
### 補足情報(FW/ツールのバージョンなど)
|