質問編集履歴

1

コードを載せました

2018/02/14 12:54

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -9,3 +9,315 @@
9
9
  インスタンスを生成したメソッドとは別のメソッドで
10
10
 
11
11
  インスタンスのメソッドを呼び出したいです。
12
+
13
+
14
+
15
+ 追記:今書いてるコードを載せました。3人じゃんけんのゲームです。
16
+
17
+
18
+
19
+ ```lang-java
20
+
21
+ public class BattleField implements Call {
22
+
23
+
24
+
25
+ // 配列と多態化を使ってないときはここでインスタンス生成出来た
26
+
27
+ //
28
+
29
+ // Player p = new Player();
30
+
31
+ // Enemy1 e1 = new Enemy1();
32
+
33
+ // Enemy2 e2 = new Enemy2();
34
+
35
+
36
+
37
+ // これだとsyntax error on token";",{・・・ などがいっぱい出る
38
+
39
+ //
40
+
41
+ // Character[]c=new Character[3];
42
+
43
+ //
44
+
45
+ // c[0]=new Player();
46
+
47
+ // c[1]=new Enemy1();
48
+
49
+ // c[2]=new Enemy2();
50
+
51
+ public void Battle( int rounds) {
52
+
53
+
54
+
55
+ Character[] c = new Character[3];
56
+
57
+
58
+
59
+ c[0] = new Player();
60
+
61
+ c[1] = new Enemy1();
62
+
63
+ c[2] = new Enemy2();
64
+
65
+
66
+
67
+ int i = 1;
68
+
69
+
70
+
71
+ while ( i <= rounds) {
72
+
73
+ System.out.println( "●ラウンド" + i);
74
+
75
+ c[0].Hand();
76
+
77
+ c[1].Hand();
78
+
79
+ c[2].Hand();
80
+
81
+ i = Judge( c[0].getPlayHand(), c[1].getEnemy1Hand(), c[2].getEnemy2Hand(), i);
82
+
83
+
84
+
85
+ }
86
+
87
+
88
+
89
+ }
90
+
91
+
92
+
93
+ public int Judge( int playHand, int enemy1Hand, int enemy2Hand, int i) {
94
+
95
+
96
+
97
+ if ( playHand == enemy1Hand && playHand == enemy2Hand && enemy1Hand == enemy2Hand) {
98
+
99
+ System.out.println( "あいこです");
100
+
101
+ }
102
+
103
+ else if ( !(playHand == enemy1Hand) && !(playHand == enemy2Hand) && !(enemy1Hand == enemy2Hand)) {
104
+
105
+ System.out.println( "あいこです");
106
+
107
+ }
108
+
109
+ else {
110
+
111
+ if ( !(playHand == ROCK) && !(enemy1Hand == ROCK) && !(enemy2Hand == ROCK)) {
112
+
113
+ switch ( playHand) {
114
+
115
+ case SCISSORS:
116
+
117
+ c[0].addWin();
118
+
119
+ System.out.println( "勝ちました");
120
+
121
+ break;
122
+
123
+ case PAPER:
124
+
125
+ System.out.println( "負けました");
126
+
127
+ break;
128
+
129
+ }
130
+
131
+ switch ( enemy1Hand) {
132
+
133
+ case SCISSORS:
134
+
135
+ c[1].addWin();
136
+
137
+ }
138
+
139
+ switch ( enemy2Hand) {
140
+
141
+ case SCISSORS:
142
+
143
+ c[2].addWin();
144
+
145
+ }
146
+
147
+ }
148
+
149
+ else if ( !(playHand == SCISSORS) && !(enemy1Hand == SCISSORS) && !(enemy2Hand == SCISSORS)) {
150
+
151
+ switch ( playHand) {
152
+
153
+ case PAPER:
154
+
155
+ c[0].addWin();
156
+
157
+ System.out.println( "勝ちました");
158
+
159
+ break;
160
+
161
+ case ROCK:
162
+
163
+ System.out.println( "負けました");
164
+
165
+ break;
166
+
167
+ }
168
+
169
+ switch ( enemy1Hand) {
170
+
171
+ case PAPER:
172
+
173
+ c[1].addWin();
174
+
175
+ }
176
+
177
+ switch ( enemy2Hand) {
178
+
179
+ case PAPER:
180
+
181
+ c[2].addWin();
182
+
183
+ }
184
+
185
+ }
186
+
187
+ else if ( !(playHand == PAPER) && !(enemy1Hand == PAPER) && !(enemy2Hand == PAPER)) {
188
+
189
+ switch ( playHand) {
190
+
191
+ case ROCK:
192
+
193
+ c[0].addWin();
194
+
195
+ System.out.println( "勝ちました");
196
+
197
+ break;
198
+
199
+ case SCISSORS:
200
+
201
+ System.out.println( "負けました");
202
+
203
+ break;
204
+
205
+ }
206
+
207
+ switch ( enemy1Hand) {
208
+
209
+ case ROCK:
210
+
211
+ c[1].addWin();
212
+
213
+ }
214
+
215
+ switch ( enemy2Hand) {
216
+
217
+ case ROCK:
218
+
219
+ c[2].addWin();
220
+
221
+ }
222
+
223
+ }
224
+
225
+
226
+
227
+ i++;
228
+
229
+ }
230
+
231
+ return i;
232
+
233
+ }
234
+
235
+
236
+
237
+ public void Result( int rounds) {
238
+
239
+
240
+
241
+ System.out.println( "-------------結果------------");
242
+
243
+ System.out.println( "あなた:" + c[0].getWinCount() + "勝" + (rounds - c[0].getWinCount()) + "敗" + "勝率" + 100 * c[0].getWinCount() / rounds + "%");
244
+
245
+ System.out
246
+
247
+ .println( "プレイヤー1:" + c[1].getWinCount() + "勝" + (rounds - c[1].getWinCount()) + "敗" + "勝率" + 100 * c[1].getWinCount() / rounds + "%");
248
+
249
+ System.out
250
+
251
+ .println( "プレイヤー2:" + c[2].getWinCount() + "勝" + (rounds - c[2].getWinCount()) + "敗" + "勝率" + 100 * c[2].getWinCount() / rounds + "%");
252
+
253
+ }
254
+
255
+
256
+
257
+ }
258
+
259
+
260
+
261
+
262
+
263
+ public class Jyanken {
264
+
265
+
266
+
267
+ public void play() {
268
+
269
+
270
+
271
+ System.out.print( "aゲーム回数を入力してください:");
272
+
273
+
274
+
275
+ @SuppressWarnings( "all")
276
+
277
+ int rounds = new java.util.Scanner( System.in).nextInt();
278
+
279
+
280
+
281
+ System.out.println( "ジャンケンゲームを開始します。");
282
+
283
+ System.out.println( "----------------------------------------------------------");
284
+
285
+ System.out.println( "0:グー 1:チョキ 2:パー");
286
+
287
+ System.out.println( "----------------------------------------------------------");
288
+
289
+
290
+
291
+ BattleField battle = new BattleField();
292
+
293
+ battle.Battle(rounds);
294
+
295
+ battle.Result(rounds);
296
+
297
+
298
+
299
+ // プレイヤーを3人作る
300
+
301
+ // 継承と多様性をつかう
302
+
303
+ // それぞれのプレイヤーの手を作る
304
+
305
+ // 判定プログラムで判定する
306
+
307
+ // それぞれの手をプレイヤーで記憶する
308
+
309
+ // ゲーム回数繰り返す
310
+
311
+ // 結果 全員の結果と勝率を求める
312
+
313
+
314
+
315
+ }
316
+
317
+
318
+
319
+ }
320
+
321
+
322
+
323
+ ```