Php游戏中的循环迭代
试着让它循环3次,第3次之后(如果猜对的话)给出正确的答案 目前-它正在进行猜测,但没有显示还剩下多少猜测(应该扣除每一次尝试) 有人吗?如果你能告诉我哪里出了问题Php游戏中的循环迭代,php,javascript,Php,Javascript,试着让它循环3次,第3次之后(如果猜对的话)给出正确的答案 目前-它正在进行猜测,但没有显示还剩下多少猜测(应该扣除每一次尝试) 有人吗?如果你能告诉我哪里出了问题 <style type="text/css"> input {border:1px solid #ADD8E6; font-size:1.2em;} input.spec {background-color:#ddd;} </style> <?php echo "<fieldset>
<style type="text/css">
input {border:1px solid #ADD8E6; font-size:1.2em;}
input.spec {background-color:#ddd;}
</style>
<?php
echo "<fieldset><h1><legend>Testing your Academy Award Trivia</h1>";
$ages['Casablanca'] = "1943";
$ages['Around The World in 80 Days'] = "1956";
$ages['Patton'] = "1970";
$ages['Annie Hall'] = "1977";
$ages['Chariots of Fire'] = "1981";
$ages['Dances With Wolves'] = "1990";
$ages['Crash'] = "2005";
$ages['The Departed'] = "2006";
$rand_keys = array_rand($ages, 1);
$guesses = 3;
?>
<form method='post' name="inputyear" onsubmit="return validate(this);">
Give the year below won academy award<br><br>
<Strong>Movie:</strong> <input type='text' name='movie' class="spec" value='<?= $rand_keys ?>' readonly='readonly' /><br><br>
<Strong>Year it Won the Oscar:</Strong> <input type='text' name='year' size="30" /><br/><br>
<strong>You have: </strong> <?php $guesses; ?> guesses left<br><br>
<input type='submit' name='submit' value="Get Result" onClick="makeGuess()" />
</form>
<?php
$movie = isset($_POST['movie']) ? $_POST['movie'] : false;
$guessedYear = isset($_POST['year']) ? (int) $_POST['year'] : false;
if ($movie && $guessedYear) {
$realyear = $ages[$movie];
}
@$_SESSION[$movie]['$guesses']++;
if ($realyear && $_SESSION[$movie]['$guesses'] < 3) {
if ($guessedYear == $realyear) {
echo "Correct! " . "during year " . $realyear;
}
if ($guessedYear < $realyear) {
echo "Wrong, year too low";
$guesses--;
}
if ($guessedYear > $realyear) {
echo "Wrong, year too high";
$guesses--;
}
} elseif ($_SESSION[$movie]['$guesses'] >= 3) {
echo "Sorry, too many tries. the answer was " . $realyear;
} else {
echo "Sorry, You managed not to pick a year. Please try again";
$_SESSION[$movie]['guesscount']--;
}
?>
输入{border:1px solid#ADD8E6;字体大小:1.2em;}
input.spec{背景色:#ddd;}
请给出以下获得奥斯卡奖的年份
电影:左边的猜测
返回语句将离开循环和脚本
去掉这两个返回语句
直流电
关于您对重复问题的评论,请访问。。。
看起来这个问题本身就是一个“家庭作业”问题,事实上,没有人会给你完整的答案,我认为他们也不应该。我们都希望提出问题的人会自行调查并理解给出的答案
现在,在您的问题中,您似乎缺少一条关于HTTP如何工作的重要信息(HTTP是驱动所有网页和internet许多其他部分的协议)
http被认为是一种无状态协议,即当您单击网页中的链接并转到另一个网页(甚至是同一网页)时,新网页会将您视为一个全新的访问者。它实际上已经忘记了你
因为这给购物车(和PHP游戏)等东西带来了问题,所以Cookie被发明了。这允许浏览器携带关于您的少量信息,这样web服务器或应用程序就会记住您。这已经扩展到这里的受访者所称的会话中
会话(通常)是存储标识符的cookie。在本例中,该标识符告诉PHP您以前去过那里,以及在哪里可以找到关于您的信息。PHP可以加载这些信息,并使程序员可以使用这些信息
每次加载页面时都会发生这种情况
现在PHP不知道在这个“会话”中存储什么,由程序员决定需要存储什么信息。您需要告诉PHP保存这些信息,以便下次加载页面时使用
在你的情况下,由你决定需要记住什么。考虑将页面重新加载为循环的一个新的“迭代”。这将引导您得出一些关于从一个迭代到下一个迭代需要传递什么的明显结论
好了。我还没有给你写答案,但希望能给你足够的答案,让你顺利通过你的课程
DC返回语句将离开循环和脚本 去掉这两个返回语句 直流电 关于您对重复问题的评论,请访问。。。 看起来这个问题本身就是一个“家庭作业”问题,事实上,没有人会给你完整的答案,我认为他们也不应该。我们都希望提出问题的人会自行调查并理解给出的答案 现在,在您的问题中,您似乎缺少一条关于HTTP如何工作的重要信息(HTTP是驱动所有网页和internet许多其他部分的协议) http被认为是一种无状态协议,即当您单击网页中的链接并转到另一个网页(甚至是同一网页)时,新网页会将您视为一个全新的访问者。它实际上已经忘记了你 因为这给购物车(和PHP游戏)等东西带来了问题,所以Cookie被发明了。这允许浏览器携带关于您的少量信息,这样web服务器或应用程序就会记住您。这已经扩展到这里的受访者所称的会话中 会话(通常)是存储标识符的cookie。在本例中,该标识符告诉PHP您以前去过那里,以及在哪里可以找到关于您的信息。PHP可以加载这些信息,并使程序员可以使用这些信息 每次加载页面时都会发生这种情况 现在PHP不知道在这个“会话”中存储什么,由程序员决定需要存储什么信息。您需要告诉PHP保存这些信息,以便下次加载页面时使用 在你的情况下,由你决定需要记住什么。考虑将页面重新加载为循环的一个新的“迭代”。这将引导您得出一些关于从一个迭代到下一个迭代需要传递什么的明显结论 好了。我还没有给你写答案,但希望能给你足够的答案,让你顺利通过你的课程
DC在修复DeveloperChris所说的内容之后,您仍然需要将guesscount放入as会话或表单字段,并在每次尝试时递增。在修复DeveloperChris所说的内容之后,您仍然需要将guesscount放入as会话或表单字段,并在每次尝试时递增。
如果($guesscount<3&$guessedYear>$realyear){
if($guesscount < 3 && $guessedYear > $realyear){
echo "Wrong, year too high";
}
if($guesscount < 3 && $guessedYear > $realyear){
echo "Wrong, year too high";
}
回音“错,年份太高”;
}
如果($guesscount<3&$guessedYear>$realyear){
回音“错,年份太高”;
}
那里有重复的代码。另外,我认为您正在寻找if{…}else if{…}else if{…}else{…}
您的问题与javascript无关。if($guesscount<3&&$guessedYear>$realyear){
回音“错,年份太高”;
}
如果($guesscount<3&$guessedYear>$realyear){
回音“错,年份太高”;
}
那里有重复的代码。另外,我认为您正在寻找if{…}else if{…}else if{…}else{…}
你的问题与javascript无关。我认为你的问题在于这行代码
if($_POST['submit']) {
$movie = $_POST['movie'];
$guessedYear = $_POST['year'];
if ($guessedYear == $ages[$movie]) {
// well done you got it right, next movie
$rand_keys = array_rand($ages, 1);
}
else if ($guessedYear == $ages[$movie] && $_POST['tries'] >= 3) {
// took over 3 tries and didn't get it right, next movie
$rand_keys = array_rand($ages, 1);
}
else {
// find $movie index from $ages and use that
}
// you have one less try
$tries = $_POST['tries'] - 1;
}
else {
$rand_keys = array_rand($ages, 1);
$tries = 3;
}
$movie = isset($_POST['movie']) ? $_POST['movie'] : false;
$guessedYear = isset($_POST['year']) ? (int) $_POST['year'] : false;
if ($movie && $guessedYear) {
$realyear = $ages[$movie];
}
@$_SESSION[$movie]['guesscount']++;
if ($realyear && $_SESSION[$movie]['guesscount'] < 3) {
if ($guessedYear == $realyear) {
echo "Correct! " . "during year " . $realyear;
}
if ($guessedYear < $realyear) {
echo "Wrong, year too low";
}
if ($guessedYear > $realyear) {
echo "Wrong, year too high";
}
} elseif ($_SESSION[$movie]['guesscount'] >= 3) {
echo "Sorry, too many tries. the answer was " . $realyear;
} else {
echo "Sorry, You managed not to pick a year. Please try again";
$_SESSION[$movie]['guesscount']--;
}