我正在尝试使用布尔值res做一个子手游戏,以检测用户输入的字母是否等于索引i上的单词,如果不是,则res保持为假。当我在单词中输入字母时,正确的字母返回true,其余字母返回false。
我的计划是减1岁。仅当返回的错误数量等于单词的长度时,但我不知道如何存储返回的错误数量才能将其与单词的长度进行比较<?php
include "databaseconn.php";
$movieid = $_GET['id'];
$sql = "DELETE FROM movies WHERE movieid = '$movieid'";
$query = mysqli_query($conn, $sql);
if($query){
header('location: ../admin.php');
}
else{
echo "error";
}
?>
我希望它在用户输入正确的情况下可以打印True,并使int保持其原始值;在用户输入错误的情况下,可以打印false并从int生命中减去1。实际输入只是停留在9点的生命数
答案 0 :(得分:1)
我不知道我是否理解你正确。但是您有一个等于9的变量'lives'。这里的问题是您的while循环中初始化了'lives'。这意味着在每次猜测之后生命将再次变为9。要解决此问题,您可能应该在循环之前初始化变量(第9-15行):
int guessedLetters = 0;
int lives = 9;
while(guessedLetters<lives) {
...
}
倒计时还存在一个问题。 在“ livesLeft”方法中,您有一个for循环,该循环遍历单词的每个字母。现在,如果字母不正确,您可以减去一个。
for(int i =0; i<word.length();i++) {
...
if{
...
}else {
res =false;
lives--; // <--- right here
}
}
例如,单词“ Hello”,玩家猜到了字母“ A”,游戏将每个字母重复一个字母,最终您将失去5条生命,我想这不是您想要的。要解决此问题,您应该在for循环之后减去:
for(int i =0; i<word.length();i++) {
...
}
lives--;
我希望这对您有所帮助。
答案 1 :(得分:0)
您的while循环设置了lives=9
,因此,即使您的方法在下次循环时更改lives
的值,生命值也会被重置为9。 lives
进入while循环