質問編集履歴
3
メソッド化、エラー箇所の訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,9 +18,13 @@
|
|
18
18
|
|
19
19
|
よろしくお願いします。
|
20
20
|
|
21
|
+
`````````````````````````````````````````````````````````````````````
|
21
22
|
|
22
23
|
|
24
|
+
|
25
|
+
|
26
|
+
|
23
|
-
import java.io.;
|
27
|
+
import java.io.BufferedReader;
|
24
28
|
|
25
29
|
import java.io.IOException;
|
26
30
|
|
@@ -30,7 +34,7 @@
|
|
30
34
|
|
31
35
|
|
32
36
|
|
33
|
-
public class TakeStone
|
37
|
+
public class TakeStone4 {
|
34
38
|
|
35
39
|
public static void main(String[] args) throws NumberFormatException, IOException {
|
36
40
|
|
@@ -38,67 +42,47 @@
|
|
38
42
|
|
39
43
|
|
40
44
|
|
41
|
-
BufferedReader
|
45
|
+
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
|
42
46
|
|
43
47
|
System.out.println("石山の数を入力してください。");
|
44
48
|
|
45
|
-
|
46
49
|
|
47
50
|
|
48
|
-
|
49
|
-
int stone = 0;
|
50
|
-
|
51
|
-
while(stone >0 )
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
try {
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
51
|
+
int stone = inputInt(bufferedReader);
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
}catch( IOException e){
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
System.out.println("数字を入力してください。");
|
70
|
-
|
71
|
-
}
|
72
|
-
|
73
|
-
}
|
74
52
|
|
75
53
|
|
76
54
|
|
77
55
|
System.out.println("一度にとれる石の数を入力してください。");
|
78
56
|
|
79
|
-
|
57
|
+
//取れる数の入力
|
80
58
|
|
59
|
+
|
60
|
+
|
61
|
+
|
62
|
+
|
81
|
-
int take
|
63
|
+
int take = inputInt(bufferedReader);
|
64
|
+
|
65
|
+
|
82
66
|
|
83
67
|
System.out.println("石山は、" + stone + "個で");
|
84
68
|
|
85
|
-
System.out.println("取れる数は、" +
|
69
|
+
System.out.println("取れる数は、" + take + "個で開始です。");
|
86
70
|
|
87
71
|
|
88
72
|
|
89
73
|
while(stone > 1) {
|
90
74
|
|
91
|
-
Random rand = new Random();
|
92
75
|
|
76
|
+
|
93
|
-
int partner =
|
77
|
+
int partner = takePartner(take, stone);
|
78
|
+
|
79
|
+
|
94
80
|
|
95
81
|
stone= stone - partner;
|
96
82
|
|
97
83
|
System.out.println("相手は"+ partner +"個取り残り"+ stone +"個です。");
|
98
84
|
|
99
|
-
//この上の相手が取るブロックをメソッドにしたいです。
|
100
85
|
|
101
|
-
|
102
86
|
|
103
87
|
int victory = (take+1)- partner ;
|
104
88
|
|
@@ -106,9 +90,11 @@
|
|
106
90
|
|
107
91
|
System.out.println("自分がとる数を入力して下さい。");
|
108
92
|
|
109
|
-
int test = Integer.parseInt(in.readLine());
|
110
93
|
|
94
|
+
|
111
|
-
|
95
|
+
int me = takeMe(bufferedReader,take);
|
96
|
+
|
97
|
+
|
112
98
|
|
113
99
|
stone = stone - me;
|
114
100
|
|
@@ -116,11 +102,7 @@
|
|
116
102
|
|
117
103
|
}
|
118
104
|
|
119
|
-
//この上の自分が取るブロックをメソッドにしたいです。
|
120
105
|
|
121
|
-
//また、自分が取る数が最初に決めた数字以上にも入力出来てしまうため、それを修正したいです。
|
122
|
-
|
123
|
-
|
124
106
|
|
125
107
|
System.out.println("残り1個で相手に順番を回したのであなたの勝ちです。");
|
126
108
|
|
@@ -128,10 +110,80 @@
|
|
128
110
|
|
129
111
|
|
130
112
|
|
131
|
-
private static int inputInt(BufferedReadrer in) {
|
132
113
|
|
133
|
-
|
134
114
|
|
115
|
+
|
116
|
+
|
117
|
+
private static int inputInt(BufferedReader bufferedReader) {
|
118
|
+
|
119
|
+
int input = 0;
|
120
|
+
|
121
|
+
while(input == 0) {
|
122
|
+
|
123
|
+
try {
|
124
|
+
|
125
|
+
input = Integer.parseInt(bufferedReader.readLine());
|
126
|
+
|
127
|
+
}catch( NumberFormatException e){
|
128
|
+
|
129
|
+
System.out.println("数字を入力してください。");
|
130
|
+
|
131
|
+
}catch( IOException e){
|
132
|
+
|
133
|
+
System.out.println("数字を入力してください。");
|
134
|
+
|
135
|
-
}
|
135
|
+
}
|
136
|
+
|
137
|
+
}
|
138
|
+
|
139
|
+
return input;
|
140
|
+
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
private static int takePartner(int take, int stone) {
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
Random rand = new Random();
|
152
|
+
|
153
|
+
int partner = rand.nextInt(take) + 1 ;
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
return partner;
|
158
|
+
|
159
|
+
}
|
160
|
+
|
161
|
+
private static int takeMe(BufferedReader bufferedReader,int take) {
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
int me = take + 1 ;
|
166
|
+
|
167
|
+
while(me > take) {
|
168
|
+
|
169
|
+
me = inputInt(bufferedReader);
|
170
|
+
|
171
|
+
if(me > take) {
|
172
|
+
|
173
|
+
System.out.println("取れる数を超えています!");
|
174
|
+
|
175
|
+
System.out.println("再入力してください。");
|
176
|
+
|
177
|
+
}
|
178
|
+
|
179
|
+
}
|
180
|
+
|
181
|
+
return me;
|
182
|
+
|
183
|
+
}
|
184
|
+
|
185
|
+
|
136
186
|
|
137
187
|
}
|
188
|
+
|
189
|
+
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
|
2
test
CHANGED
File without changes
|
test
CHANGED
@@ -19,8 +19,6 @@
|
|
19
19
|
よろしくお願いします。
|
20
20
|
|
21
21
|
|
22
|
-
|
23
|
-
```````````````````````````````````````````````
|
24
22
|
|
25
23
|
import java.io.;
|
26
24
|
|
@@ -60,9 +58,7 @@
|
|
60
58
|
|
61
59
|
stone = Integer.parseInt(in.readLine());
|
62
60
|
|
63
|
-
|
64
|
-
|
65
|
-
|
61
|
+
|
66
62
|
|
67
63
|
|
68
64
|
|
@@ -78,11 +74,9 @@
|
|
78
74
|
|
79
75
|
|
80
76
|
|
81
|
-
|
82
|
-
|
83
77
|
System.out.println("一度にとれる石の数を入力してください。");
|
84
78
|
|
85
|
-
|
79
|
+
|
86
80
|
|
87
81
|
int take = Integer.parseInt(in.readLine());
|
88
82
|
|
@@ -102,6 +96,10 @@
|
|
102
96
|
|
103
97
|
System.out.println("相手は"+ partner +"個取り残り"+ stone +"個です。");
|
104
98
|
|
99
|
+
//この上の相手が取るブロックをメソッドにしたいです。
|
100
|
+
|
101
|
+
|
102
|
+
|
105
103
|
int victory = (take+1)- partner ;
|
106
104
|
|
107
105
|
System.out.println("勝つには"+victory+"個取りましょう");
|
@@ -118,6 +116,12 @@
|
|
118
116
|
|
119
117
|
}
|
120
118
|
|
119
|
+
//この上の自分が取るブロックをメソッドにしたいです。
|
120
|
+
|
121
|
+
//また、自分が取る数が最初に決めた数字以上にも入力出来てしまうため、それを修正したいです。
|
122
|
+
|
123
|
+
|
124
|
+
|
121
125
|
System.out.println("残り1個で相手に順番を回したのであなたの勝ちです。");
|
122
126
|
|
123
127
|
}
|
@@ -131,5 +135,3 @@
|
|
131
135
|
}
|
132
136
|
|
133
137
|
}
|
134
|
-
|
135
|
-
```````````````````````````````````````````````
|
1
test
CHANGED
File without changes
|
test
CHANGED
@@ -19,6 +19,8 @@
|
|
19
19
|
よろしくお願いします。
|
20
20
|
|
21
21
|
|
22
|
+
|
23
|
+
```````````````````````````````````````````````
|
22
24
|
|
23
25
|
import java.io.;
|
24
26
|
|
@@ -129,3 +131,5 @@
|
|
129
131
|
}
|
130
132
|
|
131
133
|
}
|
134
|
+
|
135
|
+
```````````````````````````````````````````````
|