質問編集履歴

6

再度コードを修正しました。

2020/04/17 08:21

投稿

thx1139
thx1139

スコア4

test CHANGED
@@ -1 +1 @@
1
- NEW Java ブラックジャックを作成しています。ユーザーの引くカードを引く際に値が安定しません。
1
+ NEW Java ブラックジャックを作成しています。
test CHANGED
@@ -6,8 +6,6 @@
6
6
 
7
7
  ・エースは1と11がありますが、1で固定しています。
8
8
 
9
- ・クラスは、BlackJack,Human,User,Dealerの4つです。
10
-
11
9
  ゲームの流れ
12
10
 
13
11
  ・ディーラーがカードを2枚引く
@@ -16,7 +14,7 @@
16
14
 
17
15
  ・ユーザーがカードを2枚引く。
18
16
 
19
- ・ディーラーは手札の合計が16以上になるまでカードを引き続ける。
17
+ ・ディーラーは手札の合計が17以上になるまでカードを引き続ける。
20
18
 
21
19
  ・ディーラーとユーザーのスコアを比べる。
22
20
 
@@ -26,25 +24,231 @@
26
24
 
27
25
 
28
26
 
29
- ### 発生している問題・エラーメッセージ
27
+ ### 発生している問題
30
-
31
-
32
-
33
- エラーは発生していません。
28
+
34
-
35
- しかし、実行の際に、ユーザーとディーラーの引いたカードの値が常に一定になってしまいます。
36
-
37
- また、常にユの合計コアがディーラーの合計スコアの2倍になっしまます
29
+ ・ディがバトしたとき、ディーラーがもう一枚カードを引いてい
38
-
30
+
39
- 恐らくremoveメソッドを用いると考えましたどこ記述すればよいか分かりません
31
+ ・ディーラーがバストしたときユーザーはバストしていないの、負け判定になる
32
+
33
+ ・ディーラーとユーザーは17以上になるまでカードを引き続けるようにしたいが、3枚目を引いた時点で終了してしまう。(この点は恐らくループ処理を用いるべきだと考えています。)
34
+
35
+
40
36
 
41
37
 
42
38
 
43
39
  ※初めての質問で大変恐縮ですが、質問の仕方、入力場所等に誤りがあるかもしれませんが、その際は遠慮なくご指摘ください。
44
40
 
41
+
42
+
45
- ```ここに言語を入力
43
+ ```java
46
-
44
+
47
- package Camp;
45
+ package home;
46
+
47
+ import java.util.ArrayList;
48
+
49
+ abstract class Human {
50
+
51
+ ArrayList<Integer> myCards = new ArrayList<>(); //両プレイヤーの手札の情報
52
+
53
+
54
+
55
+
56
+
57
+ abstract protected int open(); //手札の合計値を計算
58
+
59
+ abstract protected void setCard(ArrayList<Integer>drawnCards); //引いたカードを手札に追加
60
+
61
+ abstract protected boolean checkSum(); //まだカードを引くべきか判断する
62
+
63
+ }
64
+
65
+ //Human,User,Dealerクラスにおいて、全てのメソッドにpublic,全てのフィールドにprotected.
66
+
67
+ //ディーラーが3枚引いて終了してしまう.
68
+
69
+ ```
70
+
71
+ ```java
72
+
73
+ package home;
74
+
75
+ import java.util.ArrayList;
76
+
77
+
78
+
79
+ public class User extends Human {
80
+
81
+
82
+
83
+ protected int total=0;
84
+
85
+ @Override
86
+
87
+ public int open() { //手札の合計値を計算
88
+
89
+ int result =0;
90
+
91
+ for(int i =0;i<myCards.size();i++) {
92
+
93
+ result+= myCards.get(i);
94
+
95
+ }
96
+
97
+ return result;//戻り値は手札の合計値
98
+
99
+ }
100
+
101
+
102
+
103
+ @Override//引いたカードを手札に追加するメソッド
104
+
105
+ public void setCard(ArrayList<Integer>drawnCards) {
106
+
107
+ myCards.addAll(drawnCards);
108
+
109
+ }
110
+
111
+
112
+
113
+ @Override
114
+
115
+ public boolean checkSum() {
116
+
117
+ if(total<17) {
118
+
119
+ return true;
120
+
121
+ }else {
122
+
123
+ return false;
124
+
125
+ }
126
+
127
+ }
128
+
129
+ }
130
+
131
+ ```
132
+
133
+ ```java
134
+
135
+ package home;
136
+
137
+ import java.util.ArrayList;
138
+
139
+ import java.util.Collections;
140
+
141
+
142
+
143
+ public class Dealer extends Human {
144
+
145
+ ArrayList<Integer> cards = new ArrayList<>(); //山札のデッキ
146
+
147
+ protected int total=0;
148
+
149
+ @Override //手札の合計値を計算
150
+
151
+ public int open() {
152
+
153
+ int result =0;
154
+
155
+ for(int i =0;i<myCards.size();i++) {
156
+
157
+ result+= myCards.get(i);
158
+
159
+ }
160
+
161
+ return result;//戻り値は手札の合計値
162
+
163
+ }
164
+
165
+ @Override //引いたカードを手札に追加するメソッド
166
+
167
+ public void setCard(ArrayList<Integer> drawnCards) {
168
+
169
+ myCards.addAll(drawnCards);
170
+
171
+ }
172
+
173
+ @Override
174
+
175
+ public boolean checkSum() {
176
+
177
+ if(total<=17) {
178
+
179
+ return true;
180
+
181
+ }else {
182
+
183
+ return false;
184
+
185
+ }
186
+
187
+ }
188
+
189
+ //コンストラクタ
190
+
191
+ //山札に全カードを追加
192
+
193
+ //最後に山札をシャッフル
194
+
195
+ public Dealer() {
196
+
197
+ for (int m =1;m<=4;m++) {
198
+
199
+ for(int n =1;n<=13;n++) {
200
+
201
+ cards.add(n);
202
+
203
+ }
204
+
205
+ }
206
+
207
+ Collections.shuffle(cards);
208
+
209
+ }
210
+
211
+ //山札から2枚引き、引いたカードを戻り値にする
212
+
213
+ //引いたカードを山札からremoveする
214
+
215
+ public ArrayList<Integer> deal() {
216
+
217
+ ArrayList<Integer> drawnCards = new ArrayList<>();//両プレイヤーの引いたカード//
218
+
219
+ drawnCards.add(cards.get(0));
220
+
221
+ cards.remove(0);
222
+
223
+ drawnCards.add(cards.get(1));
224
+
225
+ cards.remove(1);
226
+
227
+ return drawnCards;
228
+
229
+ }
230
+
231
+ //山札から1枚引き、ひいたカードを戻り値とする。
232
+
233
+ public ArrayList<Integer> hit() {
234
+
235
+ ArrayList<Integer> hit= new ArrayList<>();
236
+
237
+ hit.add(cards.get(0));
238
+
239
+ cards.remove(0);
240
+
241
+ return hit;
242
+
243
+ }
244
+
245
+ }
246
+
247
+ ```
248
+
249
+ ```java
250
+
251
+ package home;
48
252
 
49
253
 
50
254
 
@@ -52,55 +256,63 @@
52
256
 
53
257
  public static void main(String[] args) {
54
258
 
55
- User a = new User();
259
+ User user1 = new User();
56
-
260
+
57
- Dealer b = new Dealer();
261
+ Dealer dealer1 = new Dealer();
58
262
 
59
263
  System.out.println("ブラックジャックを始めます。");
60
264
 
61
- b.setCard(b.deal());
265
+ user1.setCard(dealer1.deal());
62
-
266
+
63
- a.setCard(b.deal());
267
+ dealer1.setCard(dealer1.deal());
64
-
268
+
65
- System.out.println("ディーラーのカードは"+b.myCards.get(0)+","+b.myCards.get(1)+"です。");
269
+ System.out.println("ディーラーのカードは"+dealer1.myCards.get(0)+","+dealer1.myCards.get(1)+"です。");
66
-
270
+
67
- if(b.checkSum()==true) {
271
+ if(dealer1.checkSum()==true) {
68
272
 
69
273
  System.out.println("ディーラーはもう一枚引きます。");
70
274
 
275
+ dealer1.setCard(dealer1.hit());
276
+
277
+ System.out.println("ディーラーの引いたカードは"+dealer1.myCards.get(0)+","+dealer1.myCards.get(1)+","+dealer1.myCards.get(2)+"です。");
278
+
279
+ System.out.println("ディーラーのスコアは合計で"+dealer1.open()+"です。");
280
+
71
281
  }else {
72
282
 
73
- System.out.println("ディーラーのスコアは確定しました。.");
283
+ System.out.println("ディーラーのスコアは確定しました。");
74
-
284
+
75
- }
285
+ }
76
-
286
+
77
- System.out.println("あなたのカードは"+a.myCards.get(0)+","+a.myCards.get(1)+"です。");
287
+ System.out.println("あなたのカードは"+user1.myCards.get(0)+","+user1.myCards.get(1)+"です。");
78
-
288
+
79
- if (a.checkSum()==true) {
289
+ if (user1.checkSum()==true) {
80
-
290
+
81
- System.out.println("あなたはもう一枚引きます");
291
+ System.out.println("あなたはもう一枚引きます");
292
+
293
+ user1.setCard(dealer1.hit());
82
294
 
83
295
  }else {
84
296
 
85
- System.out.println("あなたのスコアは確定しました");
297
+ System.out.println("あなたのスコアは確定しました");
86
-
298
+
87
- }
299
+ }
88
-
300
+
89
- System.out.println("ディーラーの合計スコアは"+b.open()+"です。");
301
+ System.out.println("ディーラーの合計スコアは"+dealer1.open()+"です。");
90
-
302
+
91
- System.out.println("あなたの合計スコアは"+a.open()+"です");
303
+ System.out.println("あなたの合計スコアは"+user1.open()+"です");
92
-
304
+
93
- if (a.open()>21) {
305
+ if(user1.open()>21) {
94
-
306
+
95
- System.out.println("あなたはバーストしました。あなたの負けです。");
307
+ System.out.println("あなたはバーストしました。あなたの負けです。");
96
-
308
+
97
- }else if(b.open()>b.open()) {
309
+ }else if (user1.open()>dealer1.open()) {
98
-
310
+
99
- System.out.println("あなたの勝です");
311
+ System.out.println("あなたの勝です");
100
-
312
+
101
- }else {
313
+ }else {
102
-
314
+
103
- System.out.println("あなたの負けです。");
315
+ System.out.println("あなたの負けです。");
104
316
 
105
317
  }
106
318
 
@@ -110,190 +322,26 @@
110
322
 
111
323
  ```
112
324
 
113
- ```ここに言語を入力
114
-
115
- package Camp;
116
-
117
- import java.util.ArrayList;
118
-
119
-
120
-
121
- abstract class Human {
122
-
123
- ArrayList <Integer>myCards=new ArrayList<>();
124
-
125
- ArrayList<Integer>drawnCards=new ArrayList<>();
126
-
127
- abstract protected int open();
128
-
129
- abstract protected void setCard(ArrayList<Integer>drawnCards);
130
-
131
- abstract protected boolean checkSum();
132
-
133
- }
134
-
135
- ```
325
+ ```java
136
-
137
- ```ここに言語を入力
138
-
139
- package Camp;
140
-
141
- import java.util.ArrayList;
142
-
143
-
144
-
145
- public class User extends Human {
146
-
147
- protected int total =0;
148
-
149
- public int open() {
150
-
151
- int result=0;
152
-
153
- for(int i=0;i<myCards.size();i++) {
154
-
155
- result+=myCards.get(i);
156
-
157
- }
158
-
159
- return result;
160
-
161
- }
162
-
163
- public void setCard(ArrayList<Integer>drawnCards) {
164
-
165
- myCards.addAll(drawnCards);
166
-
167
- }
168
-
169
- public boolean checkSum() {
170
-
171
- total =open();
172
-
173
- if(total <=16) {
174
-
175
- return true;
176
-
177
- }else {
178
-
179
- return false;
180
-
181
- }
182
-
183
- }
184
-
185
- }
186
-
187
- ```
188
-
189
- ```ここに言語を入力
190
-
191
- package Camp;
192
-
193
- import java.util.ArrayList;
194
-
195
- import java.util.Collections;
196
-
197
-
198
-
199
- public class Dealer extends Human {
200
-
201
- protected ArrayList<Integer>cards=new ArrayList<>();
202
-
203
- public int total =0;
204
-
205
-
206
-
207
- public int open() {
208
-
209
- int result =0;
210
-
211
- for(int i=0;i<myCards.size();i++) {
212
-
213
- result+= myCards.get(i);
214
-
215
- }
216
-
217
- return result;
218
-
219
- }
220
-
221
- public void setCard(ArrayList<Integer>drawnCards) {
222
-
223
- myCards.addAll(drawnCards);
224
-
225
- }
226
-
227
- public boolean checkSum() {
228
-
229
- total = open();
230
-
231
- if(total <=21) {
232
-
233
- return true;
234
-
235
- }else {
236
-
237
- return false;
238
-
239
- }
240
-
241
- }
242
-
243
- public Dealer() {
244
-
245
- for(int j=1;j<=4;j++) {
246
-
247
- for(int i=1;i<=13;i++) {
248
-
249
- cards.add(i);
250
-
251
- }
252
-
253
- }
254
-
255
- Collections.shuffle(cards);
256
-
257
- }
258
-
259
- public ArrayList<Integer>deal() {
260
-
261
- for(int i =0;i<2;i++) {
262
-
263
- drawnCards.add(cards.get(i));
264
-
265
- }
266
-
267
- return drawnCards;
268
-
269
- }
270
-
271
- public void hit() {
272
-
273
- drawnCards.add(cards.get(0));
274
-
275
- }
276
-
277
- }
278
-
279
- ```
280
-
281
- ```ここに言語を入力
282
326
 
283
327
  ブラックジャックを始めます。
284
328
 
285
- ディーラーのカードは8,9です。
329
+ ディーラーのカードは6,12です。
286
330
 
287
331
  ディーラーはもう一枚引きます。
288
332
 
333
+ ディーラーの引いたカードは6,12,9です。
334
+
335
+ ディーラーのスコアは合計で27です。
336
+
289
- あなたのカードは8,9です。
337
+ あなたのカードは4,13です。
290
-
338
+
291
- あなたのスコア確定しした
339
+ あなたはもう一枚引きす。
292
-
340
+
293
- ディーラーの合計スコアは17です。
341
+ ディーラーの合計スコアは27です。
294
-
342
+
295
- あなたの合計スコアは34点です
343
+ あなたの合計スコアは19です
296
-
344
+
297
- あなたはバーストしました。あなたの負けです。
345
+ あなたの負けです。
298
-
346
+
299
- ```
347
+ ```

5

再度質問方法を変更

2020/04/17 08:21

投稿

thx1139
thx1139

スコア4

test CHANGED
@@ -1 +1 @@
1
- Java ブラックジャックを作成しています。ディーラーとユーザーの引くカードが同じになってしまいます
1
+ NEW Java ブラックジャックを作成しています。ユーザーの引くカードを引く際に値安定しません
test CHANGED
File without changes

4

再度コード画面を掲載しました。

2020/04/16 05:32

投稿

thx1139
thx1139

スコア4

test CHANGED
@@ -1 +1 @@
1
- Javaブラックジャックを作成しています。
1
+ Java ブラックジャックを作成しています。ディーラーとユーザーの引くカードが同じになってしまいます。
test CHANGED
@@ -1,16 +1,26 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
-
4
-
5
-
6
-
7
3
  Javaでブラックジャックを作成しています。
8
4
 
9
5
  ・トランプの絵柄は今回無視しています。
10
6
 
11
7
  ・エースは1と11がありますが、1で固定しています。
12
8
 
13
- ・クラスは、BlackJack,Huaman,User,Dealerの4つです。
9
+ ・クラスは、BlackJack,Human,User,Dealerの4つです。
10
+
11
+ ゲームの流れ
12
+
13
+ ・ディーラーがカードを2枚引く
14
+
15
+ ・ディーラーは手札の合計が17以上になるまでカードを引き続ける。
16
+
17
+ ・ユーザーがカードを2枚引く。
18
+
19
+ ・ディーラーは手札の合計が16以上になるまでカードを引き続ける。
20
+
21
+ ・ディーラーとユーザーのスコアを比べる。
22
+
23
+ ・ユーザーのバースト、勝ち、負け、いずれかの結果を発表する。
14
24
 
15
25
 
16
26
 
@@ -26,20 +36,264 @@
26
36
 
27
37
  また、常にユーザーの合計スコアがディーラーの合計スコアの2倍になってしまいます。
28
38
 
39
+ 恐らくremoveメソッドを用いると考えましたが、どこに記述すればよいか分かりません。
40
+
29
41
 
30
42
 
31
43
  ※初めての質問で大変恐縮ですが、質問の仕方、入力場所等に誤りがあるかもしれませんが、その際は遠慮なくご指摘ください。
32
44
 
33
-
34
-
35
- ![イメージ説明](777ff1eeaed177ab48b7f5551c9478be.png)
36
-
37
- ![イメージ説明](79cdefd68a691c458182544d95a35089.png)
38
-
39
- ![イメージ説明](51e45d418e094299fdf63091d0cf07e8.png)
40
-
41
- ![イメージ説明](e8b54f546c38ac2eaf83867ab2da11a7.png)
42
-
43
- ![イメージ説明](481ac4f927621b035dc2eeafd9b2db5c.png)
44
-
45
- ![イメージ説明](4c7f6db50a74a397d1f4527cabe8e29b.png)
45
+ ```ここに言語を入力
46
+
47
+ package Camp;
48
+
49
+
50
+
51
+ public class BlackJack {
52
+
53
+ public static void main(String[] args) {
54
+
55
+ User a = new User();
56
+
57
+ Dealer b = new Dealer();
58
+
59
+ System.out.println("ブラックジャックを始めます。");
60
+
61
+ b.setCard(b.deal());
62
+
63
+ a.setCard(b.deal());
64
+
65
+ System.out.println("ディーラーのカードは"+b.myCards.get(0)+","+b.myCards.get(1)+"です。");
66
+
67
+ if(b.checkSum()==true) {
68
+
69
+ System.out.println("ディーラーはもう一枚引きます。");
70
+
71
+ }else {
72
+
73
+ System.out.println("ディーラーのスコアは確定しました。.");
74
+
75
+ }
76
+
77
+ System.out.println("あなたのカードは"+a.myCards.get(0)+","+a.myCards.get(1)+"です。");
78
+
79
+ if (a.checkSum()==true) {
80
+
81
+ System.out.println("あなたはもう一枚引きます");
82
+
83
+ }else {
84
+
85
+ System.out.println("あなたのスコアは確定しました");
86
+
87
+ }
88
+
89
+ System.out.println("ディーラーの合計スコアは"+b.open()+"点です。");
90
+
91
+ System.out.println("あなたの合計スコアは"+a.open()+"点です");
92
+
93
+ if (a.open()>21) {
94
+
95
+ System.out.println("あなたはバーストしました。あなたの負けです。");
96
+
97
+ }else if(b.open()>b.open()) {
98
+
99
+ System.out.println("あなたの勝利です");
100
+
101
+ }else {
102
+
103
+ System.out.println("あなたの負けです。");
104
+
105
+ }
106
+
107
+ }
108
+
109
+ }
110
+
111
+ ```
112
+
113
+ ```ここに言語を入力
114
+
115
+ package Camp;
116
+
117
+ import java.util.ArrayList;
118
+
119
+
120
+
121
+ abstract class Human {
122
+
123
+ ArrayList <Integer>myCards=new ArrayList<>();
124
+
125
+ ArrayList<Integer>drawnCards=new ArrayList<>();
126
+
127
+ abstract protected int open();
128
+
129
+ abstract protected void setCard(ArrayList<Integer>drawnCards);
130
+
131
+ abstract protected boolean checkSum();
132
+
133
+ }
134
+
135
+ ```
136
+
137
+ ```ここに言語を入力
138
+
139
+ package Camp;
140
+
141
+ import java.util.ArrayList;
142
+
143
+
144
+
145
+ public class User extends Human {
146
+
147
+ protected int total =0;
148
+
149
+ public int open() {
150
+
151
+ int result=0;
152
+
153
+ for(int i=0;i<myCards.size();i++) {
154
+
155
+ result+=myCards.get(i);
156
+
157
+ }
158
+
159
+ return result;
160
+
161
+ }
162
+
163
+ public void setCard(ArrayList<Integer>drawnCards) {
164
+
165
+ myCards.addAll(drawnCards);
166
+
167
+ }
168
+
169
+ public boolean checkSum() {
170
+
171
+ total =open();
172
+
173
+ if(total <=16) {
174
+
175
+ return true;
176
+
177
+ }else {
178
+
179
+ return false;
180
+
181
+ }
182
+
183
+ }
184
+
185
+ }
186
+
187
+ ```
188
+
189
+ ```ここに言語を入力
190
+
191
+ package Camp;
192
+
193
+ import java.util.ArrayList;
194
+
195
+ import java.util.Collections;
196
+
197
+
198
+
199
+ public class Dealer extends Human {
200
+
201
+ protected ArrayList<Integer>cards=new ArrayList<>();
202
+
203
+ public int total =0;
204
+
205
+
206
+
207
+ public int open() {
208
+
209
+ int result =0;
210
+
211
+ for(int i=0;i<myCards.size();i++) {
212
+
213
+ result+= myCards.get(i);
214
+
215
+ }
216
+
217
+ return result;
218
+
219
+ }
220
+
221
+ public void setCard(ArrayList<Integer>drawnCards) {
222
+
223
+ myCards.addAll(drawnCards);
224
+
225
+ }
226
+
227
+ public boolean checkSum() {
228
+
229
+ total = open();
230
+
231
+ if(total <=21) {
232
+
233
+ return true;
234
+
235
+ }else {
236
+
237
+ return false;
238
+
239
+ }
240
+
241
+ }
242
+
243
+ public Dealer() {
244
+
245
+ for(int j=1;j<=4;j++) {
246
+
247
+ for(int i=1;i<=13;i++) {
248
+
249
+ cards.add(i);
250
+
251
+ }
252
+
253
+ }
254
+
255
+ Collections.shuffle(cards);
256
+
257
+ }
258
+
259
+ public ArrayList<Integer>deal() {
260
+
261
+ for(int i =0;i<2;i++) {
262
+
263
+ drawnCards.add(cards.get(i));
264
+
265
+ }
266
+
267
+ return drawnCards;
268
+
269
+ }
270
+
271
+ public void hit() {
272
+
273
+ drawnCards.add(cards.get(0));
274
+
275
+ }
276
+
277
+ }
278
+
279
+ ```
280
+
281
+ ```ここに言語を入力
282
+
283
+ ブラックジャックを始めます。
284
+
285
+ ディーラーのカードは8,9です。
286
+
287
+ ディーラーはもう一枚引きます。
288
+
289
+ あなたのカードは8,9です。
290
+
291
+ あなたのスコアは確定しました
292
+
293
+ ディーラーの合計スコアは17点です。
294
+
295
+ あなたの合計スコアは34点です
296
+
297
+ あなたはバーストしました。あなたの負けです。
298
+
299
+ ```

3

再度コード画面を掲載しました。

2020/04/16 03:25

投稿

thx1139
thx1139

スコア4

test CHANGED
File without changes
test CHANGED
@@ -32,260 +32,14 @@
32
32
 
33
33
 
34
34
 
35
- ```ここに言語を入力
35
+ ![イメージ説明](777ff1eeaed177ab48b7f5551c9478be.png)
36
36
 
37
- package Camp;
37
+ ![イメージ説明](79cdefd68a691c458182544d95a35089.png)
38
38
 
39
+ ![イメージ説明](51e45d418e094299fdf63091d0cf07e8.png)
39
40
 
41
+ ![イメージ説明](e8b54f546c38ac2eaf83867ab2da11a7.png)
40
42
 
41
- public class BlackJack {
43
+ ![イメージ説明](481ac4f927621b035dc2eeafd9b2db5c.png)
42
44
 
43
- public static void main(String[] args) {
44
-
45
- User a = new User();
46
-
47
- Dealer b = new Dealer();
48
-
49
- System.out.println("ブラックジャックを始めます。");
50
-
51
- b.setCard(b.deal());
52
-
53
- a.setCard(b.deal());
54
-
55
- System.out.println("ディーラーのカードは"+b.myCards.get(0)+","+b.myCards.get(1)+"です。");
56
-
57
- if(b.checkSum()==true) {
58
-
59
- System.out.println("ディーラーはもう一枚引きます。");
45
+ ![イメージ説明](4c7f6db50a74a397d1f4527cabe8e29b.png)
60
-
61
- }else {
62
-
63
- System.out.println("ディーラーのスコアは確定しました。.");
64
-
65
- }
66
-
67
- System.out.println("あなたのカードは"+a.myCards.get(0)+","+a.myCards.get(1)+"です。");
68
-
69
- if (a.checkSum()==true) {
70
-
71
- System.out.println("あなたはもう一枚引きます");
72
-
73
- }else {
74
-
75
- System.out.println("あなたのスコアは確定しました");
76
-
77
- }
78
-
79
- System.out.println("ディーラーの合計スコアは"+b.open()+"点です。");
80
-
81
- System.out.println("あなたの合計スコアは"+a.open()+"点です");
82
-
83
- if (a.open()>21) {
84
-
85
- System.out.println("あなたはバーストしました。あなたの負けです。");
86
-
87
- }else if(b.open()>b.open()) {
88
-
89
- System.out.println("あなたの勝利です");
90
-
91
- }else {
92
-
93
- System.out.println("あなたの負けです。");
94
-
95
- }
96
-
97
- }
98
-
99
- }
100
-
101
- ```
102
-
103
-
104
-
105
- ```ここに言語を入力
106
-
107
- package Camp;
108
-
109
- import java.util.ArrayList;
110
-
111
-
112
-
113
- abstract class Human {
114
-
115
- ArrayList <Integer>myCards=new ArrayList<>();
116
-
117
- ArrayList<Integer>drawnCards=new ArrayList<>();
118
-
119
- abstract protected int open();
120
-
121
- abstract protected void setCard(ArrayList<Integer>drawnCards);
122
-
123
- abstract protected boolean checkSum();
124
-
125
- }
126
-
127
- ```
128
-
129
- ```ここに言語を入力
130
-
131
- package Camp;
132
-
133
- import java.util.ArrayList;
134
-
135
-
136
-
137
- public class User extends Human {
138
-
139
- protected int total =0;
140
-
141
- public int open() {
142
-
143
- int result=0;
144
-
145
- for(int i=0;i<myCards.size();i++) {
146
-
147
- result+=myCards.get(i);
148
-
149
- }
150
-
151
- return result;
152
-
153
- }
154
-
155
- public void setCard(ArrayList<Integer>drawnCards) {
156
-
157
- myCards.addAll(drawnCards);
158
-
159
- }
160
-
161
- public boolean checkSum() {
162
-
163
- total =open();
164
-
165
- if(total <=16) {
166
-
167
- return true;
168
-
169
- }else {
170
-
171
- return false;
172
-
173
- }
174
-
175
- }
176
-
177
- }
178
-
179
- ```
180
-
181
- ```ここに言語を入力
182
-
183
- package Camp;
184
-
185
- import java.util.ArrayList;
186
-
187
- import java.util.Collections;
188
-
189
-
190
-
191
- public class Dealer extends Human {
192
-
193
- protected ArrayList<Integer>cards=new ArrayList<>();
194
-
195
- public int total =0;
196
-
197
-
198
-
199
- public int open() {
200
-
201
- int result =0;
202
-
203
- for(int i=0;i<myCards.size();i++) {
204
-
205
- result+= myCards.get(i);
206
-
207
- }
208
-
209
- return result;
210
-
211
- }
212
-
213
- public void setCard(ArrayList<Integer>drawnCards) {
214
-
215
- myCards.addAll(drawnCards);
216
-
217
- }
218
-
219
- public boolean checkSum() {
220
-
221
- total = open();
222
-
223
- if(total <=21) {
224
-
225
- return true;
226
-
227
- }else {
228
-
229
- return false;
230
-
231
- }
232
-
233
- }
234
-
235
- public Dealer() {
236
-
237
- for(int j=1;j<=4;j++) {
238
-
239
- for(int i=1;i<=13;i++) {
240
-
241
- cards.add(i);
242
-
243
- }
244
-
245
- }
246
-
247
- Collections.shuffle(cards);
248
-
249
- }
250
-
251
- public ArrayList<Integer>deal() {
252
-
253
- for(int i =0;i<2;i++) {
254
-
255
- drawnCards.add(cards.get(i));
256
-
257
- }
258
-
259
- return drawnCards;
260
-
261
- }
262
-
263
- public void hit() {
264
-
265
- drawnCards.add(cards.get(0));
266
-
267
- }
268
-
269
- }
270
-
271
- ```
272
-
273
- ```ここに言語を入力
274
-
275
- ブラックジャックを始めます。
276
-
277
- ディーラーのカードは13,9です。
278
-
279
- ディーラーのスコアは確定しました。.
280
-
281
- あなたのカードは13,9です。
282
-
283
- あなたのスコアは確定しました
284
-
285
- ディーラーの合計スコアは22点です。
286
-
287
- あなたの合計スコアは44点です
288
-
289
- あなたはバーストしました。あなたの負けです。
290
-
291
- ```

2

念のため、コードが動くことを確認したうえで、新しくコードを書き換えました。

2020/04/15 11:24

投稿

thx1139
thx1139

スコア4

test CHANGED
File without changes
test CHANGED
@@ -32,11 +32,7 @@
32
32
 
33
33
 
34
34
 
35
-
36
-
37
- ```
35
+ ```ここに言語を入力
38
-
39
-
40
36
 
41
37
  package Camp;
42
38
 
@@ -106,7 +102,7 @@
106
102
 
107
103
 
108
104
 
109
- ```
105
+ ```ここに言語を入力
110
106
 
111
107
  package Camp;
112
108
 
@@ -128,8 +124,6 @@
128
124
 
129
125
  }
130
126
 
131
-
132
-
133
127
  ```
134
128
 
135
129
  ```ここに言語を入力
@@ -182,6 +176,10 @@
182
176
 
183
177
  }
184
178
 
179
+ ```
180
+
181
+ ```ここに言語を入力
182
+
185
183
  package Camp;
186
184
 
187
185
  import java.util.ArrayList;
@@ -270,30 +268,24 @@
270
268
 
271
269
  }
272
270
 
273
- ```コンソール画面
274
-
275
-
276
-
277
- ```
271
+ ```
272
+
278
-
273
+ ```ここに言語を入力
279
-
280
-
274
+
281
- コードブラックジャックを始めます。
275
+ ブラックジャックを始めます。
282
-
276
+
283
- ディーラーのカードは1,13です。
277
+ ディーラーのカードは13,9です。
284
-
278
+
285
- ディーラーはもう一枚引き
279
+ ディーラーのスコア確定しした.
286
-
280
+
287
- あなたのカードは1,13です。
281
+ あなたのカードは13,9です。
288
282
 
289
283
  あなたのスコアは確定しました
290
284
 
291
- ディーラーの合計スコアは14点です。
285
+ ディーラーの合計スコアは22点です。
292
-
286
+
293
- あなたの合計スコアは28点です
287
+ あなたの合計スコアは44点です
294
288
 
295
289
  あなたはバーストしました。あなたの負けです。
296
290
 
297
-
298
-
299
- ```
291
+ ```

1

ご指摘ありがとうございます

2020/04/15 10:45

投稿

thx1139
thx1139

スコア4

test CHANGED
@@ -1 +1 @@
1
- Javaでブラックジャックを作成し!
1
+ Javaでブラックジャックを作成し
test CHANGED
@@ -30,93 +30,155 @@
30
30
 
31
31
  ※初めての質問で大変恐縮ですが、質問の仕方、入力場所等に誤りがあるかもしれませんが、その際は遠慮なくご指摘ください。
32
32
 
33
+
34
+
35
+
36
+
37
+ ```
38
+
39
+
40
+
33
- ### 該当のソースコード
41
+ package Camp;
42
+
43
+
44
+
45
+ public class BlackJack {
46
+
47
+ public static void main(String[] args) {
48
+
49
+ User a = new User();
50
+
51
+ Dealer b = new Dealer();
52
+
53
+ System.out.println("ブラックジャックを始めます。");
54
+
55
+ b.setCard(b.deal());
56
+
57
+ a.setCard(b.deal());
58
+
59
+ System.out.println("ディーラーのカードは"+b.myCards.get(0)+","+b.myCards.get(1)+"です。");
60
+
61
+ if(b.checkSum()==true) {
62
+
63
+ System.out.println("ディーラーはもう一枚引きます。");
64
+
65
+ }else {
66
+
67
+ System.out.println("ディーラーのスコアは確定しました。.");
68
+
69
+ }
70
+
71
+ System.out.println("あなたのカードは"+a.myCards.get(0)+","+a.myCards.get(1)+"です。");
72
+
73
+ if (a.checkSum()==true) {
74
+
75
+ System.out.println("あなたはもう一枚引きます");
76
+
77
+ }else {
78
+
79
+ System.out.println("あなたのスコアは確定しました");
80
+
81
+ }
82
+
83
+ System.out.println("ディーラーの合計スコアは"+b.open()+"点です。");
84
+
85
+ System.out.println("あなたの合計スコアは"+a.open()+"点です");
86
+
87
+ if (a.open()>21) {
88
+
89
+ System.out.println("あなたはバーストしました。あなたの負けです。");
90
+
91
+ }else if(b.open()>b.open()) {
92
+
93
+ System.out.println("あなたの勝利です");
94
+
95
+ }else {
96
+
97
+ System.out.println("あなたの負けです。");
98
+
99
+ }
100
+
101
+ }
102
+
103
+ }
104
+
105
+ ```
106
+
107
+
108
+
109
+ ```
110
+
111
+ package Camp;
112
+
113
+ import java.util.ArrayList;
114
+
115
+
116
+
117
+ abstract class Human {
118
+
119
+ ArrayList <Integer>myCards=new ArrayList<>();
120
+
121
+ ArrayList<Integer>drawnCards=new ArrayList<>();
122
+
123
+ abstract protected int open();
124
+
125
+ abstract protected void setCard(ArrayList<Integer>drawnCards);
126
+
127
+ abstract protected boolean checkSum();
128
+
129
+ }
130
+
131
+
132
+
133
+ ```
34
134
 
35
135
  ```ここに言語を入力
36
136
 
37
- コード 
38
-
39
- package Camp;
40
-
41
-
42
-
43
- public class BlackJack {
44
-
45
- public static void main(String[] args) {
46
-
47
- User a = new User();
48
-
49
- Dealer b = new Dealer();
50
-
51
- System.out.println("ブラックジャックを始めます。");
52
-
53
- b.setCard(b.deal());
54
-
55
- a.setCard(b.deal());
56
-
57
- System.out.println("ディーラーのカードは"+b.myCards.get(0)+","+b.myCards.get(1)+"です。");
58
-
59
- if(b.checkSum()==true) {
60
-
61
- System.out.println("ディーラーはもう一枚引きます。");
62
-
63
- }else {
64
-
65
- System.out.println("ディーラーのスコアは確定しました。.");
66
-
67
- }
68
-
69
- System.out.println("あなたのカードは"+a.myCards.get(0)+","+a.myCards.get(1)+"です。");
70
-
71
- if (a.checkSum()==true) {
72
-
73
- System.out.println("あなたはもう一枚引きます");
74
-
75
- }else {
76
-
77
- System.out.println("あなたのスコアは確定しました");
78
-
79
- }
80
-
81
- System.out.println("ディーラーの合計スコアは"+b.open()+"点です。");
82
-
83
- System.out.println("あなたの合計スコアは"+a.open()+"点です");
84
-
85
- if (a.open()>21) {
86
-
87
- System.out.println("あなたはバーストしました。あなたの負けです。");
88
-
89
- }else if(b.open()>b.open()) {
90
-
91
- System.out.println("あなたの勝利です");
92
-
93
- }else {
94
-
95
- System.out.println("あなたの負けです。");
96
-
97
- }
98
-
99
- }
100
-
101
- }
102
-
103
137
  package Camp;
104
138
 
105
139
  import java.util.ArrayList;
106
140
 
107
141
 
108
142
 
109
- abstract class Human {
143
+ public class User extends Human {
110
-
111
- ArrayList <Integer>myCards=new ArrayList<>();
144
+
112
-
113
- ArrayList<Integer>drawnCards=new ArrayList<>();
114
-
115
- abstract protected int open();
145
+ protected int total =0;
146
+
116
-
147
+ public int open() {
148
+
149
+ int result=0;
150
+
151
+ for(int i=0;i<myCards.size();i++) {
152
+
153
+ result+=myCards.get(i);
154
+
155
+ }
156
+
157
+ return result;
158
+
159
+ }
160
+
117
- abstract protected void setCard(ArrayList<Integer>drawnCards);
161
+ public void setCard(ArrayList<Integer>drawnCards) {
162
+
118
-
163
+ myCards.addAll(drawnCards);
164
+
165
+ }
166
+
119
- abstract protected boolean checkSum();
167
+ public boolean checkSum() {
168
+
169
+ total =open();
170
+
171
+ if(total <=16) {
172
+
173
+ return true;
174
+
175
+ }else {
176
+
177
+ return false;
178
+
179
+ }
180
+
181
+ }
120
182
 
121
183
  }
122
184
 
@@ -124,19 +186,25 @@
124
186
 
125
187
  import java.util.ArrayList;
126
188
 
127
-
189
+ import java.util.Collections;
128
-
190
+
191
+
192
+
129
- public class User extends Human {
193
+ public class Dealer extends Human {
194
+
130
-
195
+ protected ArrayList<Integer>cards=new ArrayList<>();
196
+
131
- protected int total =0;
197
+ public int total =0;
198
+
199
+
132
200
 
133
201
  public int open() {
134
202
 
135
- int result=0;
203
+ int result =0;
136
204
 
137
205
  for(int i=0;i<myCards.size();i++) {
138
206
 
139
- result+=myCards.get(i);
207
+ result+= myCards.get(i);
140
208
 
141
209
  }
142
210
 
@@ -152,9 +220,9 @@
152
220
 
153
221
  public boolean checkSum() {
154
222
 
155
- total =open();
223
+ total = open();
156
-
224
+
157
- if(total <=16) {
225
+ if(total <=21) {
158
226
 
159
227
  return true;
160
228
 
@@ -166,60 +234,6 @@
166
234
 
167
235
  }
168
236
 
169
- }
170
-
171
- package Camp;
172
-
173
- import java.util.ArrayList;
174
-
175
- import java.util.Collections;
176
-
177
-
178
-
179
- public class Dealer extends Human {
180
-
181
- protected ArrayList<Integer>cards=new ArrayList<>();
182
-
183
- public int total =0;
184
-
185
-
186
-
187
- public int open() {
188
-
189
- int result =0;
190
-
191
- for(int i=0;i<myCards.size();i++) {
192
-
193
- result+= myCards.get(i);
194
-
195
- }
196
-
197
- return result;
198
-
199
- }
200
-
201
- public void setCard(ArrayList<Integer>drawnCards) {
202
-
203
- myCards.addAll(drawnCards);
204
-
205
- }
206
-
207
- public boolean checkSum() {
208
-
209
- total = open();
210
-
211
- if(total <=21) {
212
-
213
- return true;
214
-
215
- }else {
216
-
217
- return false;
218
-
219
- }
220
-
221
- }
222
-
223
237
  public Dealer() {
224
238
 
225
239
  for(int j=1;j<=4;j++) {
@@ -256,13 +270,15 @@
256
270
 
257
271
  }
258
272
 
259
- //コンソール画面```ここに言語を入力
273
+ ```コンソール画面
260
-
261
- コード
274
+
262
-
275
+
276
+
263
- ```
277
+ ```
264
-
278
+
279
+
280
+
265
- ブラックジャックを始めます。
281
+ コードブラックジャックを始めます。
266
282
 
267
283
  ディーラーのカードは1,13です。
268
284
 
@@ -278,12 +294,6 @@
278
294
 
279
295
  あなたはバーストしました。あなたの負けです。
280
296
 
281
-
282
-
283
-
284
-
285
-
286
-
287
-
288
-
297
+
298
+
289
- ```
299
+ ```