PHP if语句不工作hangman

时间:2017-06-16 18:40:22

标签: php

我今年开始在学校学习编码,刚进入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>

2 个答案:

答案 0 :(得分:0)

您可能会将字符与字符串进行比较。在行

$geprobeerd .= " ". $letter;

你构建一个字符串,如下所示:

A B C

稍后,您将此与用户选择的字母进行比较,这显然不是以空格分隔的字符串。

您可以使用strchrstrstr进行此比较:

 $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>";
}