自分なりに書き直してみて、
・全角空白は論外。半角空白に直す。
・POST送信するパラメータがbattleで、ぐーちょきぱーを収めるのもbattleってのはややこしい。
なので、POST送信するパラメータの名前をbattleでなくmyにしてみる。
・if()で判定後に$pcに再度代入するのは無駄。
・コード中になんども「ぐー」「ちょき」「ぱー」「勝ち」「負け」「あいこ」が
何度も出てくるが見づらく感じたので、ユーザー定義定数にしてみる。
してみた。
php
1<?php
2 // 192036.php
3
4 define('GGG', 'ぐー');
5 define('CCC', 'ちょき');
6 define('PPP', 'ぱー');
7
8 define('GAME_WIN', '勝ち');
9 define('GAME_LOSE', '負け');
10 define('GAME_DRAW', 'あいこ');
11
12 $battle = array(GGG, CCC, PPP);
13 $pc = '';
14 $my = '';
15 $result ='';
16
17
18 if (isset($_POST['my']) === TRUE) {
19 $my = $_POST['my'];
20 $pc = $battle[array_rand($battle)];
21 if ($my === GGG && $pc === GGG) {
22 $result = GAME_DRAW;
23 } else if ($my === GGG && $pc === CCC) {
24 $result = GAME_WIN;
25 } else if ($my === GGG && $pc === PPP) {
26 $result = GAME_LOSE;
27 } else if ($my === CCC && $pc === GGG) {
28 $result = GAME_LOSE;
29 } else if ($my === CCC && $pc === CCC) {
30 $result = GAME_DRAW;
31 } else if ($my === CCC && $pc === PPP) {
32 $result = GAME_WIN;
33 } else if ($my === PPP && $pc === GGG) {
34 $result = GAME_WIN;
35 } else if ($my === PPP && $pc === CCC) {
36 $result = GAME_LOSE;
37 } else if ($my === PPP && $pc === PPP) {
38 $result = GAME_DRAW;
39 }
40 }
41?>
42<!DOCTYPE html>
43<html lang="ja">
44<head>
45 <meta charset="UTF-8">
46 <title>じゃんけん勝負</title>
47</head>
48<body>
49 <h1>じゃんけん勝負</h1>
50 <label>自分: <?php print $my; ?></label>
51 <label>相手: <?php print $pc; ?></label>
52 <label>結果: <?php print $result; ?></label>
53
54 <form method="post">
55 <input type="radio" name="my" value="<?=GGG?>"<?php if ($my === GGG) { print ' checked'; } ?>/><?=GGG?>
56 <input type="radio" name="my" value="<?=CCC?>"<?php if ($my === CCC) { print ' checked'; } ?>/><?=CCC?>
57 <input type="radio" name="my" value="<?=PPP?>"<?php if ($my === PPP) { print ' checked'; } ?>/><?=PPP?>
58 <input type="submit" value="勝負">
59 </form>
60</body>
61</html>
で、判定のif文群も、switch文にすればもうちょっと洗練されるだろうと。
php
1<?php
2 // 192036.php
3
4 define('GGG', 'ぐー');
5 define('CCC', 'ちょき');
6 define('PPP', 'ぱー');
7
8 define('GAME_WIN', '勝ち');
9 define('GAME_LOSE', '負け');
10 define('GAME_DRAW', 'あいこ');
11
12 $battle = array(GGG, CCC, PPP);
13 $pc = '';
14 $my = '';
15 $result ='';
16
17
18 if (isset($_POST['my']) === TRUE) {
19 $my = $_POST['my'];
20 $pc = $battle[array_rand($battle)];
21 switch($my) {
22 case GGG:
23 switch($pc) {
24 case GGG:
25 $result = GAME_DRAW; break;
26 case CCC:
27 $result = GAME_WIN; break;
28 case PPP:
29 $result = GAME_LOSE; break;
30 }
31 break;
32 case CCC:
33 switch($pc) {
34 case GGG:
35 $result = GAME_LOSE; break;
36 case CCC:
37 $result = GAME_DRAW; break;
38 case PPP:
39 $result = GAME_WIN; break;
40 }
41 break;
42 case PPP:
43 switch($pc) {
44 case GGG:
45 $result = GAME_WIN; break;
46 case CCC:
47 $result = GAME_LOSE; break;
48 case PPP:
49 $result = GAME_DRAW; break;
50 }
51 break;
52 }
53 }
54?>
55<!DOCTYPE html>
56<html lang="ja">
57<head>
58 <meta charset="UTF-8">
59 <title>じゃんけん勝負</title>
60</head>
61<body>
62 <h1>じゃんけん勝負</h1>
63 <label>自分: <?php print $my; ?></label>
64 <label>相手: <?php print $pc; ?></label>
65 <label>結果: <?php print $result; ?></label>
66
67 <form method="post">
68 <input type="radio" name="my" value="<?=GGG?>"<?php if ($my === GGG) { print ' checked'; } ?>/><?=GGG?>
69 <input type="radio" name="my" value="<?=CCC?>"<?php if ($my === CCC) { print ' checked'; } ?>/><?=CCC?>
70 <input type="radio" name="my" value="<?=PPP?>"<?php if ($my === PPP) { print ' checked'; } ?>/><?=PPP?>
71 <input type="submit" value="勝負">
72 </form>
73</body>
74</html>
配列を使うと見通しがぐっと良くなるケース。
php
1<?php
2 // 192036.php
3
4 define('GGG', 'ぐー');
5 define('CCC', 'ちょき');
6 define('PPP', 'ぱー');
7
8 define('GAME_WIN', '勝ち');
9 define('GAME_LOSE', '負け');
10 define('GAME_DRAW', 'あいこ');
11
12 $battle = array(GGG, CCC, PPP);
13 $judge = array(
14 GGG => array(
15 GGG => GAME_DRAW,
16 CCC => GAME_WIN,
17 PPP => GAME_LOSE,
18 ),
19 CCC => array(
20 GGG => GAME_LOSE,
21 CCC => GAME_DRAW,
22 PPP => GAME_WIN,
23 ),
24 PPP => array(
25 GGG => GAME_WIN,
26 CCC => GAME_LOSE,
27 PPP => GAME_DRAW,
28 ),
29 );
30 $pc = '';
31 $my = '';
32 $result ='';
33
34
35 if (isset($_POST['my']) === TRUE) {
36 $my = $_POST['my'];
37 $pc = $battle[array_rand($battle)];
38 $result = $judge[$my][$pc];
39 }
40?>
41<!DOCTYPE html>
42<html lang="ja">
43<head>
44 <meta charset="UTF-8">
45 <title>じゃんけん勝負</title>
46</head>
47<body>
48 <h1>じゃんけん勝負</h1>
49 <label>自分: <?php print $my; ?></label>
50 <label>相手: <?php print $pc; ?></label>
51 <label>結果: <?php print $result; ?></label>
52
53 <form method="post">
54 <input type="radio" name="my" value="<?=GGG?>"<?php if ($my === GGG) { print ' checked'; } ?>/><?=GGG?>
55 <input type="radio" name="my" value="<?=CCC?>"<?php if ($my === CCC) { print ' checked'; } ?>/><?=CCC?>
56 <input type="radio" name="my" value="<?=PPP?>"<?php if ($my === PPP) { print ' checked'; } ?>/><?=PPP?>
57 <input type="submit" value="勝負">
58 </form>
59</body>
60</html>