質問編集履歴
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
|
-
|
10
|
+
また、ここはこうしたほうがいいよというアドバイスがあればお願いいたします。
|
9
11
|
|
10
12
|
```
|
11
13
|
|
2
書式の改善、少しプログラムを進めました。
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になった時点で終了にしなければいけない。)
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
|
-
|
24
|
+
Random rnd = new Random();
|
19
25
|
|
20
|
-
|
26
|
+
System.out.println((i + 1) + "回目の処理です。現在の所持金" + score + "円");
|
21
|
-
|
27
|
+
i++;
|
22
|
-
|
28
|
+
System.out.println("サイコロを2つ振ります");
|
23
|
-
|
29
|
+
System.out.println("合計の数が偶数(even)か奇数(odd)かを予想してください");
|
24
30
|
|
31
|
+
while (true) {
|
25
|
-
|
32
|
+
a = new java.util.Scanner(System.in).nextLine();
|
26
|
-
System.out.println("掛け金を入力してください。");
|
27
33
|
|
28
|
-
|
34
|
+
if ((a.equals("even")) || a.equals("odd")) {
|
29
|
-
int num = rnd.nextInt(12);
|
30
|
-
|
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
|
-
|
50
|
+
if (num % 2 == 0) {
|
33
|
-
|
51
|
+
System.out.println("偶数" + num + "が出ました。");
|
34
|
-
|
52
|
+
} else {
|
35
|
-
|
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個の合計値が偶数であるか奇数であるかを当てる
|