質問編集履歴

6

2019/11/10 02:46

投稿

series207
series207

スコア49

test CHANGED
@@ -1 +1 @@
1
- じゃんけんの結果によって異なるメッセージを表示するダイアログを作りたい
1
+ 結果によって異なるメッセージを表示するダイアログを作りたい
test CHANGED
@@ -1,6 +1,6 @@
1
1
  #困っていること
2
2
 
3
- じゃんけんプログラムを作っているのですが、10回ボタンが押されたときにそれまでの勝敗状況に応じて異なるメッセージを表示するダイアログを作りたいのですが、どうすればいいかわかりません。
3
+ プログラムを作っているのですが、10回ボタンが押されたときにそれまでの勝敗状況に応じて異なるメッセージを表示するダイアログを作りたいのですが、どうすればいいかわかりません。
4
4
 
5
5
 
6
6
 

5

変更

2019/11/10 02:46

投稿

series207
series207

スコア49

test CHANGED
File without changes
test CHANGED
@@ -298,7 +298,7 @@
298
298
 
299
299
  if(youcount[0]<comcount[0]){
300
300
 
301
- int r = JOptionPane.showConfirmDiarog(
301
+ int r = JOptionPane.showConfirmDialog(
302
302
 
303
303
  f,
304
304
 
@@ -316,7 +316,7 @@
316
316
 
317
317
  } else if(youcount[0]==comcount[0]) {
318
318
 
319
- int r = JOptionPane.showConfirmDiarog(
319
+ int r = JOptionPane.showConfirmDialog(
320
320
 
321
321
  f,
322
322
 
@@ -332,7 +332,7 @@
332
332
 
333
333
  } else {
334
334
 
335
- int r = JOptionPane.showConfirmDiarog(
335
+ int r = JOptionPane.showConfirmDialog(
336
336
 
337
337
  f,
338
338
 
@@ -526,7 +526,7 @@
526
526
 
527
527
  if(tencount==10){ //ボタンが10回押されたらダイアログを表示する
528
528
 
529
- int r = JOptionPane.showConfirmDiarog(
529
+ int r = JOptionPane.showConfirmDialog(
530
530
 
531
531
  f,
532
532
 

4

変更

2019/11/10 01:43

投稿

series207
series207

スコア49

test CHANGED
@@ -1 +1 @@
1
- じゃんけんの結果によって異なるメッセージを表示するダイアログを作りたい 【追記】ダイアログ作成のところでエラーが出る
1
+ じゃんけんの結果によって異なるメッセージを表示するダイアログを作りたい
test CHANGED
@@ -4,16 +4,6 @@
4
4
 
5
5
 
6
6
 
7
- 【追記】回答のようにプログラムを書き換えてみましたが、今度はその部分で出たエラーが解決できません。
8
-
9
- エラーメッセージに関しては、該当箇所にコメントで記しています。
10
-
11
-
12
-
13
- JOptionPaneに構文エラーがあるとのことですが、何度見ても打ち間違いなどは見当たらなかったのですが・・・
14
-
15
-
16
-
17
7
  #該当のソースコード
18
8
 
19
9
  ```java
@@ -46,7 +36,7 @@
46
36
 
47
37
 
48
38
 
49
- public class Repjanken2 {
39
+ public class A2 {
50
40
 
51
41
  JLabel lb1,lb2,lb3,lb4;
52
42
 
@@ -92,11 +82,11 @@
92
82
 
93
83
  public static void main(String[] args) {
94
84
 
95
- new Repjanken2();
85
+ new A2();
96
86
 
97
87
  }
98
88
 
99
- public Repjanken2(){
89
+ public A2(){
100
90
 
101
91
 
102
92
 

3

変更

2019/11/10 01:33

投稿

series207
series207

スコア49

test CHANGED
File without changes
test CHANGED
@@ -10,6 +10,10 @@
10
10
 
11
11
 
12
12
 
13
+ JOptionPaneに構文エラーがあるとのことですが、何度見ても打ち間違いなどは見当たらなかったのですが・・・
14
+
15
+
16
+
13
17
  #該当のソースコード
14
18
 
15
19
  ```java

2

変更

2019/11/10 01:12

投稿

series207
series207

スコア49

test CHANGED
File without changes
test CHANGED
@@ -342,7 +342,7 @@
342
342
 
343
343
  f,
344
344
 
345
- "引き分けです。もう一度ゲームをしますか?"
345
+ "あなたの負けです。もう一度ゲームをしますか?"
346
346
 
347
347
  JOptionPane.YES_NO_OPTION);
348
348
 
@@ -538,7 +538,11 @@
538
538
 
539
539
  if(youcount[0]<comcount[0]){
540
540
 
541
- "あなたの勝ちです。\nもう1度ゲームをしますか?"
541
+ "あなたの勝ちです。\nもう1度ゲームをしますか?"
542
+
543
+ //Yes_NO_OPTIONは解決できないか、フィールドではありません。
544
+
545
+ //トークン "JOptionPane"に構文エラーがあります。このトークンを削除してください。
542
546
 
543
547
  } else if(youcount[0]==comcount[0]){
544
548
 

1

変更

2019/11/10 01:09

投稿

series207
series207

スコア49

test CHANGED
@@ -1 +1 @@
1
- じゃんけんの結果によって異なるメッセージを表示するダイアログを作りたい
1
+ じゃんけんの結果によって異なるメッセージを表示するダイアログを作りたい 【追記】ダイアログ作成のところでエラーが出る
test CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  じゃんけんプログラムを作っているのですが、10回ボタンが押されたときにそれまでの勝敗状況に応じて異なるメッセージを表示するダイアログを作りたいのですが、どうすればいいかわかりません。
4
4
 
5
+
6
+
7
+ 【追記】回答のようにプログラムを書き換えてみましたが、今度はその部分で出たエラーが解決できません。
8
+
9
+ エラーメッセージに関しては、該当箇所にコメントで記しています。
10
+
11
+
12
+
5
13
  #該当のソースコード
6
14
 
7
15
  ```java
@@ -46,6 +54,8 @@
46
54
 
47
55
  JButton b1,b2,b3,b4;
48
56
 
57
+ JFrame f;
58
+
49
59
  private String[] img = {"gu2.gif","choki2.gif","pa2.gif"};
50
60
 
51
61
  private String[] name = {"グー","チョキ","パー"};
@@ -84,7 +94,7 @@
84
94
 
85
95
  public Repjanken2(){
86
96
 
87
- JFrame f;
97
+
88
98
 
89
99
  JPanel p1,p2,p3,p4,p5,p6,p7;
90
100
 
@@ -262,7 +272,7 @@
262
272
 
263
273
  int youhand,comhand,tencount=0;
264
274
 
265
- tencount += 1; //ボタンが押されるごとに1増やす
275
+ tencount += 1;
266
276
 
267
277
  if (source.getText().equals(name[0])) {
268
278
 
@@ -290,9 +300,239 @@
290
300
 
291
301
  enzan(two, youcount, comcount, sum, youmes, commes);
292
302
 
303
+ if(tencount==10){
304
+
305
+ if(youcount[0]<comcount[0]){
306
+
307
+ int r = JOptionPane.showConfirmDiarog(
308
+
309
+ f,
310
+
311
+ "あなたの勝ちです。もう一度ゲームをしますか?"
312
+
313
+ JOptionPane.YES_NO_OPTION); //Yes_NO_OPTIONは解決できないか、フィールドではありません。
314
+
315
+ //トークン "JOptionPane"に構文エラーがあります。このトークンを削除してください。
316
+
317
+ if (r==1) {
318
+
319
+ System.exit(0);
320
+
321
+ }
322
+
323
+ } else if(youcount[0]==comcount[0]) {
324
+
325
+ int r = JOptionPane.showConfirmDiarog(
326
+
327
+ f,
328
+
329
+ "引き分けです。もう一度ゲームをしますか?"
330
+
331
+ JOptionPane.YES_NO_OPTION);
332
+
333
+ if (r==1) {
334
+
335
+ System.exit(0);
336
+
337
+ }
338
+
339
+ } else {
340
+
341
+ int r = JOptionPane.showConfirmDiarog(
342
+
343
+ f,
344
+
345
+ "引き分けです。もう一度ゲームをしますか?"
346
+
347
+ JOptionPane.YES_NO_OPTION);
348
+
349
+ if (r==1) {
350
+
351
+ System.exit(0);
352
+
353
+ }
354
+
355
+
356
+
357
+ }
358
+
359
+ }
360
+
361
+ }
362
+
363
+ }
364
+
365
+ class Repjankenliset implements ActionListener {
366
+
367
+ public void actionPerformed(ActionEvent e){
368
+
369
+ lb7.setText("何出すのかな?");
370
+
371
+ lb5.setText("");
372
+
373
+ lb6.setText("");
374
+
375
+ }
376
+
377
+ }
378
+
379
+
380
+
381
+ public void judge(int youhand,int comhand,int two[],int youcount[],int comcount[]){
382
+
383
+ if(youhand==comhand){
384
+
385
+ lb7.setText("あいこです。");
386
+
387
+ two[2] = 1;
388
+
389
+ youcount[2] += 1;
390
+
391
+ comcount[2] += 1;
392
+
393
+ } else if(youhand==0 && comhand==1 ||
394
+
395
+ youhand==1 && comhand==2 ||
396
+
397
+ youhand==2 && comhand==0){
398
+
399
+ lb7.setText("あなたの勝ちです。");
400
+
401
+ two[0] = 1;
402
+
403
+ youcount[0] += 1;
404
+
405
+ comcount[0] += 1;
406
+
407
+ } else {
408
+
409
+ lb7.setText("あなたの負けです。");
410
+
411
+ two[1] = 1;
412
+
413
+ youcount[1] += 1;
414
+
415
+ comcount[1] += 1;
416
+
417
+ }
418
+
419
+
420
+
421
+ }
422
+
423
+
424
+
425
+ public void enzan(int two[],int youcount[],int comcount[],int sum,String youmes[],String commes[])
426
+
427
+ {
428
+
429
+ sum = two[0]+two[1]+two[2];
430
+
431
+
432
+
433
+ if(sum==1)
434
+
435
+ {
436
+
437
+ for(int i=0; i<=2; i++)
438
+
439
+ {
440
+
441
+ if(two[i]==1)
442
+
443
+ {
444
+
445
+ lb5.setText("あなた"+youcount[i]+youmes[i]);
446
+
447
+ lb6.setText("わたし"+comcount[i]+commes[i]);
448
+
449
+ }
450
+
451
+ }
452
+
453
+ }
454
+
455
+ else if(sum==2)
456
+
457
+ {
458
+
459
+ for(int x=0; x<=2; x++)
460
+
461
+ {
462
+
463
+ for(int y=x+1; y<=2; y++)
464
+
465
+ {
466
+
467
+ if(two[x]==1 && two[y]==1)
468
+
469
+ {
470
+
471
+ lb5.setText("あなた"+youcount[x]+youmes[x]+youcount[y]+youmes[y]);
472
+
473
+ lb6.setText("わたし"+comcount[x]+commes[x]+comcount[y]+commes[y]);
474
+
475
+ }
476
+
477
+ }
478
+
479
+ }
480
+
481
+ }
482
+
483
+ else
484
+
485
+ {
486
+
487
+ lb5.setText("あなた"+youcount[0]+youmes[0]+youcount[1]+youmes[1]+youcount[2]+youmes[2]);
488
+
489
+ lb6.setText("わたし"+comcount[1]+commes[1]+comcount[0]+commes[0]+comcount[2]+commes[2]);
490
+
491
+ }
492
+
493
+ }
494
+
495
+ }
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+ ```
510
+
511
+ #プログラム内の変数について
512
+
513
+ youcount・・・プレイヤーの勝敗分をカウントする.youcount[0]=勝ち youcount[1]=負け youcount[2]=あいこ
514
+
515
+
516
+
517
+ comcount・・・コンピュータの勝敗分をカウントする
518
+
519
+
520
+
521
+ tencount・・・ボタンが押された回数をカウントする。10回押されたらダイアログを表示する。
522
+
523
+
524
+
525
+ #ダイアログ表示部分
526
+
527
+ 144~157行目
528
+
529
+ この部分をカットして実行するとじゃんけんプログラムをプレイできます。
530
+
531
+ ```java
532
+
293
- if(tencount==10){ //ボタンが10回押されたらダイアログを表示する
533
+ if(tencount==10){ //ボタンが10回押されたらダイアログを表示する
294
-
534
+
295
- int r = JOptionPane.showConfirmDiarog(
535
+ int r = JOptionPane.showConfirmDiarog(
296
536
 
297
537
  f,
298
538
 
@@ -320,198 +560,4 @@
320
560
 
321
561
  }
322
562
 
323
-
324
-
325
- }
326
-
327
- }
328
-
329
- class Repjankenliset implements ActionListener {
330
-
331
- public void actionPerformed(ActionEvent e){
332
-
333
- lb7.setText("何出すのかな?");
334
-
335
- lb5.setText("");
336
-
337
- lb6.setText("");
338
-
339
- }
340
-
341
- }
342
-
343
-
344
-
345
- public void judge(int youhand,int comhand,int two[],int youcount[],int comcount[]){
346
-
347
- if(youhand==comhand){
348
-
349
- lb7.setText("あいこです。");
350
-
351
- two[2] = 1;
352
-
353
- youcount[2] += 1;
354
-
355
- comcount[2] += 1;
356
-
357
- } else if(youhand==0 && comhand==1 ||
358
-
359
- youhand==1 && comhand==2 ||
360
-
361
- youhand==2 && comhand==0){
362
-
363
- lb7.setText("あなたの勝ちです。");
364
-
365
- two[0] = 1;
366
-
367
- youcount[0] += 1;
368
-
369
- comcount[0] += 1;
370
-
371
- } else {
372
-
373
- lb7.setText("あなたの負けです。");
374
-
375
- two[1] = 1;
376
-
377
- youcount[1] += 1;
378
-
379
- comcount[1] += 1;
380
-
381
- }
382
-
383
-
384
-
385
- }
386
-
387
-
388
-
389
- public void enzan(int two[],int youcount[],int comcount[],int sum,String youmes[],String commes[])
390
-
391
- {
392
-
393
- sum = two[0]+two[1]+two[2];
394
-
395
-
396
-
397
- if(sum==1)
398
-
399
- {
400
-
401
- for(int i=0; i<=2; i++)
402
-
403
- {
404
-
405
- if(two[i]==1)
406
-
407
- {
408
-
409
- lb5.setText("あなた"+youcount[i]+youmes[i]);
410
-
411
- lb6.setText("わたし"+comcount[i]+commes[i]);
412
-
413
- }
414
-
415
- }
416
-
417
- }
418
-
419
- else if(sum==2)
420
-
421
- {
422
-
423
- for(int x=0; x<=2; x++)
424
-
425
- {
426
-
427
- for(int y=x+1; y<=2; y++)
428
-
429
- {
430
-
431
- if(two[x]==1 && two[y]==1)
432
-
433
- {
434
-
435
- lb5.setText("あなた"+youcount[x]+youmes[x]+youcount[y]+youmes[y]);
436
-
437
- lb6.setText("わたし"+comcount[x]+commes[x]+comcount[y]+commes[y]);
438
-
439
- }
440
-
441
- }
442
-
443
- }
444
-
445
- }
446
-
447
- else
448
-
449
- {
450
-
451
- lb5.setText("あなた"+youcount[0]+youmes[0]+youcount[1]+youmes[1]+youcount[2]+youmes[2]);
452
-
453
- lb6.setText("わたし"+comcount[1]+commes[1]+comcount[0]+commes[0]+comcount[2]+commes[2]);
454
-
455
- }
456
-
457
- }
458
-
459
- }
460
-
461
-
462
-
463
563
  ```
464
-
465
- #プログラム内の変数について
466
-
467
- youcount・・・プレイヤーの勝敗分をカウントする.youcount[0]=勝ち youcount[1]=負け youcount[2]=あいこ
468
-
469
-
470
-
471
- comcount・・・コンピュータの勝敗分をカウントする
472
-
473
-
474
-
475
- tencount・・・ボタンが押された回数をカウントする。10回押されたらダイアログを表示する。
476
-
477
-
478
-
479
- #ダイアログ表示部分
480
-
481
- 144~157行目
482
-
483
- この部分をカットして実行するとじゃんけんプログラムをプレイできます。
484
-
485
- ```java
486
-
487
- if(tencount==10){ //ボタンが10回押されたらダイアログを表示する
488
-
489
- int r = JOptionPane.showConfirmDiarog(
490
-
491
- f,
492
-
493
- if(youcount[0]<comcount[0]){
494
-
495
- "あなたの勝ちです。\nもう1度ゲームをしますか?"
496
-
497
- } else if(youcount[0]==comcount[0]){
498
-
499
- "引き分けです。\nもう1度ゲームをしますか?"
500
-
501
- } else {
502
-
503
- "あなたの負けです。\nもう1度ゲームをしますか?"
504
-
505
- }
506
-
507
- JOptionPane.YES_NO_OPTION);
508
-
509
- if (r==1) {
510
-
511
- System.exit(0);
512
-
513
- }
514
-
515
- }
516
-
517
- ```