質問編集履歴

1

追加で質問をさせていただきました。

2020/11/20 06:21

投稿

guriko
guriko

スコア1

test CHANGED
File without changes
test CHANGED
@@ -12,9 +12,21 @@
12
12
 
13
13
 
14
14
 
15
- 配列と乱数を使用して作成しているのですが、合計値を求めるコードの書き方がわからず、躓いています。
15
+ ~~配列と乱数を使用して作成しているのですが、合計値を求めるコードの書き方がわからず、躓いています。
16
16
 
17
17
  ご教示いただけると幸いです。
18
+
19
+ よろしくお願い致します。~~
20
+
21
+ --追加の質問--
22
+
23
+ 合計値を表示することはできました。
24
+
25
+ その後、勝敗判定や引き分け判定の処理を入れたいです。
26
+
27
+ sumは毎回初期化されてしまうため、各プレイヤーのスコアを他に保存しないといけないのですが、その書き方がわかりません。
28
+
29
+ アドバイスをいただけないでしょうか。
18
30
 
19
31
  よろしくお願い致します。
20
32
 
@@ -22,17 +34,27 @@
22
34
 
23
35
  ### 発生している問題・エラーメッセージ
24
36
 
25
- [1]:5 3 1
37
+ [1]:4 5 2
26
38
 
27
- 9 ←合計値が求められず、乱数がそのまま出力されているように見えます。
39
+ 合計値:11
28
40
 
29
- [2]:2 6 3
30
41
 
31
- 8 ←合計値が求められず、乱数がそのまま出力されているように見えます。
32
42
 
33
- [3]:5 2 6
43
+ [2]:2 4 5
34
44
 
45
+ 合計値:11
46
+
47
+
48
+
49
+ [3]:2 3 1
50
+
51
+ 合計値:6
52
+
53
+
54
+
35
- 5 ←合計値が求められず、乱数がそのまま力されているように見えます。
55
+ 勝者は1回目の人で、合計値は6でした。←最後にsumに入った値が出てしまいます。
56
+
57
+ ↑毎回"1回目"と出てしまいます。
36
58
 
37
59
 
38
60
 
@@ -46,59 +68,109 @@
46
68
 
47
69
 
48
70
 
49
- public static void main(String[] args) {
71
+ public static void main(String[] args) {
50
-
51
-
52
-
53
- // プレイヤー人数を決める
54
-
55
- int[] r = {1,2,3};
56
-
57
-
58
-
59
- int sum = 0;
60
-
61
-
62
-
63
- // 人数分ループする
64
-
65
- for(int j = 0;j < r.length;j++){
66
-
67
- System.out.print("[" + r[j] + "]" + ":");
68
-
69
- for(int i = 0;i < r.length;i++){
70
-
71
- for(int n = 0;n < 1;n++){
72
-
73
- System.out.print(dice() + " ");
74
-
75
- sum = dice() + dice() + dice();
76
-
77
- }
78
-
79
- }
80
-
81
- System.out.println();
82
-
83
- System.out.print(sum);
84
-
85
- System.out.println();
86
-
87
- }
88
-
89
- }
90
72
 
91
73
 
92
74
 
93
- //
75
+ // プレヤー人数決め
94
76
 
95
- static int dice() {
77
+ int r[] = new int[3];
96
78
 
97
- return (int)(Math.random()*6) + 1;
98
79
 
80
+
81
+ // 値を代入
82
+
99
- }
83
+ r[0] = 1;
84
+
85
+ r[1] = 2;
86
+
87
+ r[2] = 3;
88
+
89
+
90
+
91
+
92
+
93
+ int dice = 0;
94
+
95
+ // サイコロを振る回数を代入
96
+
97
+ int count = 3;
98
+
99
+ int score = 0;
100
+
101
+
102
+
103
+ // 人数分ループする
104
+
105
+ for(int j = 0;j < r.length;j++){
106
+
107
+ System.out.print("[" + r[j] + "]" + ":");
108
+
109
+ int sum = 0;
110
+
111
+
112
+
113
+
114
+
115
+ for(int i = 0;i < count;i++){
116
+
117
+ dice = (int)(Math.random()*6)+1;
118
+
119
+ int hokan = dice;
120
+
121
+ sum += hokan;
122
+
123
+
124
+
125
+ System.out.print(hokan + " ");
100
126
 
101
127
  }
128
+
129
+ score = sum;
130
+
131
+ System.out.println();
132
+
133
+ System.out.println("合計値:" + sum);
134
+
135
+ System.out.println();
136
+
137
+
138
+
139
+
140
+
141
+ }
142
+
143
+ // 勝敗判定
144
+
145
+ int minCnt = 100;
146
+
147
+ int minCntPlayer = 0;
148
+
149
+ for(int i = 0; i < r.length; i++) {
150
+
151
+ if(minCnt > r.length + score) {
152
+
153
+ minCnt = r.length + score;
154
+
155
+ minCntPlayer = r[i];
156
+
157
+ }
158
+
159
+ }
160
+
161
+ System.out.println("勝者は" + minCntPlayer + "回目の人で、合計値は" + score + "でした。");
162
+
163
+ }
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+ }
172
+
173
+
102
174
 
103
175
 
104
176
 
@@ -106,7 +178,7 @@
106
178
 
107
179
 
108
180
 
109
- 配列と乱数を用いて合計値の求め方についてをググったなど致しましたが、せんでした。
181
+ sumを代入する変数を複数作りましたが、最後に入った値が出てしまいました。
110
182
 
111
183
 
112
184