回答編集履歴

3

見直し

2019/05/29 09:48

投稿

退会済みユーザー
test CHANGED
@@ -309,3 +309,131 @@
309
309
  </html>
310
310
 
311
311
  ```
312
+
313
+
314
+
315
+ 配列を使うと見通しがぐっと良くなるケース。
316
+
317
+ ```php
318
+
319
+ <?php
320
+
321
+ // 192036.php
322
+
323
+
324
+
325
+ define('GGG', 'ぐー');
326
+
327
+ define('CCC', 'ちょき');
328
+
329
+ define('PPP', 'ぱー');
330
+
331
+
332
+
333
+ define('GAME_WIN', '勝ち');
334
+
335
+ define('GAME_LOSE', '負け');
336
+
337
+ define('GAME_DRAW', 'あいこ');
338
+
339
+
340
+
341
+ $battle = array(GGG, CCC, PPP);
342
+
343
+ $judge = array(
344
+
345
+ GGG => array(
346
+
347
+ GGG => GAME_DRAW,
348
+
349
+ CCC => GAME_WIN,
350
+
351
+ PPP => GAME_LOSE,
352
+
353
+ ),
354
+
355
+ CCC => array(
356
+
357
+ GGG => GAME_LOSE,
358
+
359
+ CCC => GAME_DRAW,
360
+
361
+ PPP => GAME_WIN,
362
+
363
+ ),
364
+
365
+ PPP => array(
366
+
367
+ GGG => GAME_WIN,
368
+
369
+ CCC => GAME_LOSE,
370
+
371
+ PPP => GAME_DRAW,
372
+
373
+ ),
374
+
375
+ );
376
+
377
+ $pc = '';
378
+
379
+ $my = '';
380
+
381
+ $result ='';
382
+
383
+
384
+
385
+
386
+
387
+ if (isset($_POST['my']) === TRUE) {
388
+
389
+ $my = $_POST['my'];
390
+
391
+ $pc = $battle[array_rand($battle)];
392
+
393
+ $result = $judge[$my][$pc];
394
+
395
+ }
396
+
397
+ ?>
398
+
399
+ <!DOCTYPE html>
400
+
401
+ <html lang="ja">
402
+
403
+ <head>
404
+
405
+ <meta charset="UTF-8">
406
+
407
+ <title>じゃんけん勝負</title>
408
+
409
+ </head>
410
+
411
+ <body>
412
+
413
+ <h1>じゃんけん勝負</h1>
414
+
415
+ <label>自分: <?php print $my; ?></label>
416
+
417
+ <label>相手: <?php print $pc; ?></label>
418
+
419
+ <label>結果: <?php print $result; ?></label>
420
+
421
+
422
+
423
+ <form method="post">
424
+
425
+ <input type="radio" name="my" value="<?=GGG?>"<?php if ($my === GGG) { print ' checked'; } ?>/><?=GGG?>
426
+
427
+ <input type="radio" name="my" value="<?=CCC?>"<?php if ($my === CCC) { print ' checked'; } ?>/><?=CCC?>
428
+
429
+ <input type="radio" name="my" value="<?=PPP?>"<?php if ($my === PPP) { print ' checked'; } ?>/><?=PPP?>
430
+
431
+ <input type="submit" value="勝負">
432
+
433
+ </form>
434
+
435
+ </body>
436
+
437
+ </html>
438
+
439
+ ```

2

見直し

2019/05/29 09:48

投稿

退会済みユーザー
test CHANGED
@@ -4,11 +4,21 @@
4
4
 
5
5
  ・全角空白は論外。半角空白に直す。
6
6
 
7
+
8
+
7
- ・POST送信するパラメータがbattleで、ぐーちょきぱーを収めるのもbattleってのはややこしい。なので、POST送信するパラメータの名前をbattleでなくmyにしてみる。
9
+ ・POST送信するパラメータがbattleで、ぐーちょきぱーを収めるのもbattleってのはややこしい。
10
+
11
+ なので、POST送信するパラメータの名前をbattleでなくmyにしてみる。
12
+
13
+
8
14
 
9
15
  ・if()で判定後に$pcに再度代入するのは無駄。
10
16
 
17
+
18
+
11
- ・コード中になんども「ぐー」「ちょき」「ぱー」「勝ち」「負け」「あいこ」が出てくるが見づらく感じたので、ユーザー定義定数にしてみる。
19
+ ・コード中になんども「ぐー」「ちょき」「ぱー」「勝ち」「負け」「あいこ」が
20
+
21
+ 何度も出てくるが見づらく感じたので、ユーザー定義定数にしてみる。
12
22
 
13
23
 
14
24
 
@@ -144,4 +154,158 @@
144
154
 
145
155
 
146
156
 
147
- で、判定のif文群も、switch文にすればもうちょっと洗練されるだろうけど、まぁいいか
157
+ で、判定のif文群も、switch文にすればもうちょっと洗練されるだろう
158
+
159
+
160
+
161
+ ```php
162
+
163
+ <?php
164
+
165
+ // 192036.php
166
+
167
+
168
+
169
+ define('GGG', 'ぐー');
170
+
171
+ define('CCC', 'ちょき');
172
+
173
+ define('PPP', 'ぱー');
174
+
175
+
176
+
177
+ define('GAME_WIN', '勝ち');
178
+
179
+ define('GAME_LOSE', '負け');
180
+
181
+ define('GAME_DRAW', 'あいこ');
182
+
183
+
184
+
185
+ $battle = array(GGG, CCC, PPP);
186
+
187
+ $pc = '';
188
+
189
+ $my = '';
190
+
191
+ $result ='';
192
+
193
+
194
+
195
+
196
+
197
+ if (isset($_POST['my']) === TRUE) {
198
+
199
+ $my = $_POST['my'];
200
+
201
+ $pc = $battle[array_rand($battle)];
202
+
203
+ switch($my) {
204
+
205
+ case GGG:
206
+
207
+ switch($pc) {
208
+
209
+ case GGG:
210
+
211
+ $result = GAME_DRAW; break;
212
+
213
+ case CCC:
214
+
215
+ $result = GAME_WIN; break;
216
+
217
+ case PPP:
218
+
219
+ $result = GAME_LOSE; break;
220
+
221
+ }
222
+
223
+ break;
224
+
225
+ case CCC:
226
+
227
+ switch($pc) {
228
+
229
+ case GGG:
230
+
231
+ $result = GAME_LOSE; break;
232
+
233
+ case CCC:
234
+
235
+ $result = GAME_DRAW; break;
236
+
237
+ case PPP:
238
+
239
+ $result = GAME_WIN; break;
240
+
241
+ }
242
+
243
+ break;
244
+
245
+ case PPP:
246
+
247
+ switch($pc) {
248
+
249
+ case GGG:
250
+
251
+ $result = GAME_WIN; break;
252
+
253
+ case CCC:
254
+
255
+ $result = GAME_LOSE; break;
256
+
257
+ case PPP:
258
+
259
+ $result = GAME_DRAW; break;
260
+
261
+ }
262
+
263
+ break;
264
+
265
+ }
266
+
267
+ }
268
+
269
+ ?>
270
+
271
+ <!DOCTYPE html>
272
+
273
+ <html lang="ja">
274
+
275
+ <head>
276
+
277
+ <meta charset="UTF-8">
278
+
279
+ <title>じゃんけん勝負</title>
280
+
281
+ </head>
282
+
283
+ <body>
284
+
285
+ <h1>じゃんけん勝負</h1>
286
+
287
+ <label>自分: <?php print $my; ?></label>
288
+
289
+ <label>相手: <?php print $pc; ?></label>
290
+
291
+ <label>結果: <?php print $result; ?></label>
292
+
293
+
294
+
295
+ <form method="post">
296
+
297
+ <input type="radio" name="my" value="<?=GGG?>"<?php if ($my === GGG) { print ' checked'; } ?>/><?=GGG?>
298
+
299
+ <input type="radio" name="my" value="<?=CCC?>"<?php if ($my === CCC) { print ' checked'; } ?>/><?=CCC?>
300
+
301
+ <input type="radio" name="my" value="<?=PPP?>"<?php if ($my === PPP) { print ' checked'; } ?>/><?=PPP?>
302
+
303
+ <input type="submit" value="勝負">
304
+
305
+ </form>
306
+
307
+ </body>
308
+
309
+ </html>
310
+
311
+ ```

1

見直し

2019/05/29 09:34

投稿

退会済みユーザー
test CHANGED
@@ -18,9 +18,11 @@
18
18
 
19
19
  ```php
20
20
 
21
- // 192036.php
21
+ <?php
22
22
 
23
- <?php
23
+ // 192036.php
24
+
25
+
24
26
 
25
27
  define('GGG', 'ぐー');
26
28