我正在尝试制作一个刽子手游戏,我有一个包含一些单词的数组。它成功地选择一个随机单词但每次按下提交按钮时单词都会改变,我该如何阻止它?我的代码看起来像这样
<html>
<head>
<title> Hangman </title>
</head>
<body>
<h1> Hangman <h1>
<?php
session_start();
$maxAttempts = 6;
$letters = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z');
?>
<form name="lettersubmit" method="post" action="Hangman.php" >
<input name="letterguess" type= "text" value="">
<input name="submit" type="submit" value="Guess a Letter!"><br>
<p> Guesses Remaining <p>
<input name="triesRemaining" type="text" value="<?php print("$maxAttempts"); ?>">
</form>
<?php
$letterguess = $_POST["letterguess"];
if($letterguess= $word){
echo ("correct");
}
if(!isset($_POST["submit"])){
$words = array (
"giants",
"triangle",
"particle",
"birdhouse",
"minimum",
"flood",
);
}
if(isset($_POST["submit"])){
$maxAttempts--;
}
$word = $words[array_rand($words)];
echo $words[array_rand($words)];
?>
</body>
</html>
如果你能看到任何其他错误,请随时指出它们。谢谢Zac
答案 0 :(得分:0)
这是因为您向hangman.php发送了一个新请求(我假设您正在向我们展示此页面)。这会重新加载整个页面,但代码设置单词数组除外。无论新请求是否为提交,确定要使用的随机词的代码都会运行。
如果将其添加到最初应该只运行的代码块中,它只会在启动时选择一个单词。
if(!isset($_POST["submit"])){
$words = array (
"giants",
"triangle",
"particle",
"birdhouse",
"minimum",
"flood",
$word = $words[array_rand($words)];
);
一旦你完成了,你应该将它存储在某个地方,在这里评论的会话是单向的。表单中的隐藏字段是存储值的另一种(不太漂亮)方式,然后您可以在接收提交时从表单数据中读取。