我今年开始在学校学习编码,刚进入PHP。我似乎无法弄清楚如何使if语句工作。目前我正在制作一个Hangman PHP游戏,并且需要让字母只能被选择一次。所以这就是我所拥有的:
if($letter == $tried)
echo "You've already tried that one!";
到目前为止,其他一切似乎都运转正常。
我已将整个代码放在pastebin中,但它全部都是荷兰语。我所引用的if语句位于第122和123行。https://pastebin.com/SD5js9p4
if($letter == $geprobeerd)
echo "<b>Die heb je al geprobeerd!</b> <font color=red></font>";
代码
<html>
<link rel="stylesheet" href="http://www.1618sergeairapetjan.in-mc.nl/po4/css/style.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Comfortaa">
<body>
</br><h2>Inleiding</h2>
<p>Welkom bij ons PO. Voor ons vierde PO hebben wij het spel galgje gemaakt met HTML en PHP. Hier kun je het spel uitproberen. Veel plezier!</p></br>
<?php
$foutmelding=NULL;
$woordenlijst=array("quiz", "archeoloog", "aquarium", "spinazie", "elftal", "grafsteen", "maquette", "zuivel", "verzekeringsmaatschappij", "algebra", "exponentieel", "pythagoras",
"ezelsbruggetje", "oscilloscoop", "lasciviteit", "illuminatie", "afasie", "kunstmatig", "cytologie", "pragmatisch", "confabuleren", "urinoir", "xenofobie", "onderscheiden",
"organismen", "cocosnoot", "mandarijneend", "pauwenveren", "voetschimmel", "vloekwaardig", "anthithese", "zenig", "kersenbonbon", "natuurkundige", "bioloog", "koolstofmonoxide",
"distikstoftetraoxide", "achterlijk", "vermenigvuldiging", "verwachtingen", "quarantaine", "turquoise", "aquarel", "aquaduct");
if(isset($_POST["gekozen"]))
{
$gekozen_=$_POST["gekozen"];
foreach($woordenlijst as $w)
{
if (md5($w)==$gekozen_)
{
$woord=$w;
}
}
}
else
{
$woord=$woordenlijst[array_rand($woordenlijst,1)];
$gekozen_=md5($woord);
}
if(isset($_POST["geprobeerd"]))
{
$geprobeerd=$_POST["geprobeerd"];
}
else
{
$geprobeerd=NULL;
}
if(isset($_POST["pogingen"]))
{
$poging=$_POST["pogingen"];
}
else
{
$poging=0;
}
if(isset($_POST["bezig"]))
{
$punten=$_POST["bezig"];
}
else
{
$lengte=strlen($woord);
$x=0;
if(!isset($punten))
{
$punten=NULL;
while(($x < $lengte))
{
$punten .= ".";
$x++;
}
}
}
if(isset($_POST["letter"]) and ($_POST["letter"]!=NULL))
{
$letter=$_POST["letter"];
$offset=0;
$positie = 0;
$positie = strpos($woord,$letter,$offset);
while($positie!== false)
{
$positie = strpos($woord,$letter,$offset);
$offset=$positie+1;
if($positie != '0')
{
$punten = substr_replace($punten,$letter,$positie,1);
}
else
{
if(strpos($woord,$letter,0)=='0')
{
$punten = substr_replace($punten,$letter,0,1);
}
}
}
if((strpos($woord,$letter)===false) and (isset($letter)))
{
$foutmelding="<font color=red>Niet voorkomende letter:</font> ";
$poging++;
}
}
else
{
if(isset($_POST["gekozen"]))
{
echo "<font color=red>Je hebt geen letter ingevuld</font>";
}
$letter=NULL;
}
if($poging==8)
{
echo "Helaas, het woord was: <b>".$woord."</b>";
echo '<img src="/img/8.png"><br><br>';
exit;
}
echo $foutmelding;
unset($foutmelding);
$geprobeerd .= " ". $letter;
echo "<b>".$letter."</b>";
echo "<h2>".$punten."</h2>";
echo "<b>Fouten:</b> <font color=red>".$poging."</font>";
echo "<br>";
echo "<b>Geprobeerde letters:</b> <font color=red>".$geprobeerd."</font>";
if($letter == $geprobeerd)
echo "<b>Die heb je al geprobeerd!</b> <font color=red></font>";
$zelf = $_SERVER['PHP_SELF'];
if($punten==$woord)
{
echo "<br><br><b>Gefeliciteerd, je hebt het geraden!</b>";
exit;
}
echo '<br>
<form action="'.$zelf.'" width="150" method="POST">
<b>Probeer de letter:<br>
<input type="text" name="letter" size="1" maxlength="1">
<input type="hidden" name="gekozen" value="'.$gekozen_.'">
<input type="hidden" name="bezig" value="'.$punten.'">
<input type="hidden" name="pogingen" value="'.$poging.'">
<input type="hidden" name="geprobeerd" value="'.$geprobeerd.'">
<input type="submit" value="Probeer"></b>';
switch ($poging) {
case "1":
echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/1.png'>";
break;
case "2":
echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/2.png'>";
break;
case "3":
echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/3.png'>";
break;
case "4":
echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/4.png'>";
break;
case "5":
echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/5.png'>";
break;
case "6":
echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/6.png'>";
break;
case "7":
echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/7.png'>";
break;
case "8":
echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/8.png'>";
break;
default:
echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/0.png'>";
break;
}
?>
</body>
</html>
答案 0 :(得分:0)
您可能会将字符与字符串进行比较。在行
$geprobeerd .= " ". $letter;
你构建一个字符串,如下所示:
A B C
稍后,您将此与用户选择的字母进行比较,这显然不是以空格分隔的字符串。
$found = strstr($geprobeerd, $letter);
if($found !== false){
}
您也可以像在脚本开头一样使用strpos,或使用数组存储以前选择的字母并与in_array进行比较。
答案 1 :(得分:0)
我会说你忘了那里的{ ... }
括号:
if($letter == $geprobeerd) {
echo "<b>Die heb je al geprobeerd!</b> <font color=red></font>";
}