電子書籍の厳選無料作品が豊富!

PHPでじゃんけん勝負ができるプログラムを作成しました。ラジオボタンから選択した値(「グー」あるいは「チョキ」あるいは「パー」)をPOSTで送信し、ユーザと相手(コンピュータ)が選んだ手と、じゃんけんの勝敗を表示します。ラジオボタンで選択をしなくても最初からあいこが表示された状態になります。どの部分を修正すればいいですか


<?php
$arry_hand = array('グー', 'チョキ', 'パー');
$me = ''; //取得したい3つ(グー、チョキ、パー)をそれぞれ定義して、文字列を初期化する
$you = '';
$result = '';

if (isset($_POST['hand']) === TRUE) {
$me = htmlspecialchars($_POST['hand'], ENT_QUOTES, 'UTF-8');
$you = $arry_hand[array_rand($arry_hand)];
} //最初からあいこが表示された状態になる
if ($me === $you) {
$result = 'あいこ';
}
else if ($me === 'グー' && $you === 'チョキ' || $me === 'チョキ' && $you === 'パー' || $me === 'パー' && $you === 'グー') {
$result = '勝ち';
}
else{
$result = '負け';
}
?>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>じゃんけん</title>
</head>
<body>
<h1>じゃんけん勝負</h1>
自分: <?php print $me; ?><br>
相手: <?php print $you; ?><br>
結果: <?php print $result; ?><br>
<form method="post">
<label><input type="radio" name="hand" value="グー" <?php if ($me === 'グー')
{ print "checked";} ?> >グー</label>
<label><input type="radio" name="hand" value="チョキ" <?php if ($me === 'チョキ'){ print "checked";} ?> >チョキ</label>
<label><input type="radio" name="hand" value="パー" <?php if ($me === 'パー')
{ print "checked";} ?> >パー</label>
<input type="submit" value="勝負!!" >
</form>
</body>
</html>

A 回答 (1件)

ifの閉じ位置が違います(もっと全体を囲む感じ)



if (isset($_POST['hand']) === TRUE) {
$me = htmlspecialchars($_POST['hand'], ENT_QUOTES, 'UTF-8');
$you = $arry_hand[array_rand($arry_hand)];
if ($me === $you) {
$result = 'あいこ';
}
else if ($me === 'グー' && $you === 'チョキ' || $me === 'チョキ' && $you === 'パー' || $me === 'パー' && $you === 'グー') {
$result = '勝ち';
}
else{
$result = '負け';
}
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!