teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

文法の修正

2019/08/13 09:02

投稿

javarou
javarou

スコア3

title CHANGED
File without changes
body CHANGED
@@ -4,8 +4,10 @@
4
4
  (例)JavaでDaice Gameを作っています。
5
5
 
6
6
  下記のようなプログラミングを作りたいのですが、途中でつまずいてしまいました。
7
- どなたか手助けお願いいたします。まっず
7
+ どなたか手助けお願いいたします。
8
+ このソースだと、score(所持金)が0になっても、ラウンドが経過してしまいます。
9
+ なぜでしょうか?
8
- 分からないと、2ラウン目以降の金額の反映。try catch構文の挿入です。
10
+ また、こうしたほうがいいよというアバイスがあればお願いいたします。
9
11
 
10
12
  ```
11
13
 

2

書式の改善、少しプログラムを進めました。

2019/08/13 09:01

投稿

javarou
javarou

スコア3

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,6 @@
8
8
  分からないところは、2ラウンド目以降の金額の反映。try catch構文の挿入です。
9
9
 
10
10
  ```
11
- package jp.hermes.main.game_a;
12
11
 
13
12
  import java.util.Random;
14
13
 

1

このソースだと、scoreが0になっても続いてしまうのですがなぜでしょうか?(while文で所持金が0になった時点で終了にしなければいけない。)

2019/08/13 08:58

投稿

javarou
javarou

スコア3

title CHANGED
File without changes
body CHANGED
@@ -7,42 +7,66 @@
7
7
  どなたか手助けお願いいたします。まっず
8
8
  分からないところは、2ラウンド目以降の金額の反映。try catch構文の挿入です。
9
9
 
10
+ ```
11
+ package jp.hermes.main.game_a;
12
+
10
13
  import java.util.Random;
14
+
11
15
  public class DiceGame {
12
16
 
13
17
  public static void main(String[] args) {
14
18
  // TODO 自動生成されたメソッド・スタブ
15
19
  int i = 0;
16
20
  int score = 1000;
21
+ int b;
22
+ String a;
17
- while(i<5) {
23
+ while (i < 5 || score <= 0) {
18
- Random rnd = new Random();
24
+ Random rnd = new Random();
19
25
 
20
- System.out.println((i + 1) + "回目の処理です。現在の所持金"+score+"円");
26
+ System.out.println((i + 1) + "回目の処理です。現在の所持金" + score + "円");
21
- i++;
27
+ i++;
22
- System.out.println("サイコロを2つ振ります");
28
+ System.out.println("サイコロを2つ振ります");
23
- System.out.println("合計の数が偶数(even)か奇数(odd)かを予想してください");
29
+ System.out.println("合計の数が偶数(even)か奇数(odd)かを予想してください");
24
30
 
31
+ while (true) {
25
- String a = new java.util.Scanner(System.in).nextLine();
32
+ a = new java.util.Scanner(System.in).nextLine();
26
- System.out.println("掛け金を入力してください。");
27
33
 
28
- int b = new java.util.Scanner(System.in).nextInt();
34
+ if ((a.equals("even")) || a.equals("odd")) {
29
- int num = rnd.nextInt(12);
30
- num++;
35
+ break;
36
+ }
37
+ }
38
+ System.out.println("掛け金を入力してください。");
31
39
 
40
+ while (true) {
41
+ b = new java.util.Scanner(System.in).nextInt();
42
+
43
+ if ((b > 0 && b <= score)) {
44
+ break;
45
+ }
46
+ }
47
+ int num = rnd.nextInt(12);
48
+ num++;
49
+
32
- if(num % 2 == 0) {
50
+ if (num % 2 == 0) {
33
- System.out.println("偶数"+ num +"が出ました。");
51
+ System.out.println("偶数" + num + "が出ました。");
34
- }else {
52
+ } else {
35
- System.out.println("奇数" +num+"が出ました。");
53
+ System.out.println("奇数" + num + "が出ました。");
54
+ }
55
+ if ((a.equals("even")) && (num % 2 == 0)) {
56
+ System.out.println("あなたの勝ちです。掛け金" + b + "円が増え、あなたの所持金は" + (score + b) + "円になりました。");
57
+ score = score + b;
58
+ } else if ((a.equals("odd")) && (num % 2 == 1)) {
59
+ System.out.println("あなたの勝ちです。掛け金" + b + "円が増え、あなたの所持金は" + (score + b) + "円になりました。");
60
+ score = score + b;
61
+ } else {
62
+ System.out.println("あなたの負けです。掛け金" + b + "円が減り、あなたの所持金は" + (score - b) + "円になりました。");
63
+ score = score - b;
64
+ }
36
65
  }
37
- if((a.equals("even"))&&(num % 2 == 0)) {
38
- System.out.println("あなたの勝ちです。掛け金" + b +"円が増え、あなたの所持金は"+ (score + b)+"円になりました。");
39
- }else{
40
- System.out.println("あなたの負けです。掛け金は"+ b +"円が減り、あなたの所持金は"+(score - b)+"円になりました。");
41
- }
42
- }
43
66
  }
44
67
 
45
68
  }
69
+ ```
46
70
 
47
71
 
48
72
  6面体ダイス2個の合計値が偶数であるか奇数であるかを当てる