Я создаю игру, как вдохновитель, используя формы. Моя проблема в том, что у меня есть переменная $ try, и я хочу, чтобы она увеличивалась каждый раз, когда пользователь угадывал число, но он всегда сбрасывается до нуля, поэтому число попыток всегда будет отображаться как 1. Если это помогает код, который я использую:
$black = 0; $white = 0; $answer = array(1,2,3,4); $tries = array(); $attempts = 0; if ($process == true) { $guess = str_split($_POST['guess']); if ($guess == $answer) { $black = 4; } else { for ($i=0;$i<4;$i++) { if ($guess[$i] == $answer[$i]) { $black = $black + 1; $white = $white - 1; } } $result = array(); foreach ($guess as $val) { if (($key = array_search($val, $answer))!==false) { $result[] = $val; unset($answer[$key]); } } $count = count($result); $white = $white + $count; } } $chance = implode(" ",$guess); $attempts += 1; $try = $attempts.".".$chance.".".$white.".".$black; array_push($tries, $try);
Представляете ли вы форму на каждую догадку? Если это так, вам нужно установить переменную сеанса, например:
$_SESSION['attempts'] += 1;
Просто чтобы прояснить то, что кажется, что вам не хватает. Скрипт php – это код, который запускается на сервере, создавая документ (часто html) для отправки клиенту. Поэтому это не очень интерактивные запросы. Если вы хотите, чтобы код запускался на стороне клиента, вам нужно использовать Javascript. Javascript имеет то преимущество, что не нужно передавать информацию через Интернет между клиентом и сервером.
$attempts
всегда равны одному, потому что он не внутри цикла, он объявлен в конце, и вы просто добавляете его к существующему значению (0). Вам нужно поместить его в нужное место (чуть выше последнего {
я думаю), и оно должно работать.
Кроме того, вы, кажется, используете разные методы для добавления одного, например $black + 1
и $attempts += 1;
, Используйте переменную $ variable ++, ее намного легче понять и остановить любые возникающие ошибки.