Задание из книги для начинающих

holyman

Новичок
Задание из книги для начинающих

Купив книгу http://phpclub.ru/?m=book&s=130 PHP/MySQL для начинающих Харрис КУДИЦ-ОБРАЗ столкнулся со следующим заданием:
Напишите игру "угадай число". Пусть компьютер создает любое случайное число и дает пользователю его отгадать. Сообщайте пользователю, является ли ответ слишком большим, слишком маленьким или правильным. После того, как значение будет угадано, сообщите сколько попыток ему потребовалось. Для этой игры массивы не нужны, надо хранить данные в скрытых полях.
Собственно вопрос - как написать алгоритм, чтобы в самом начале сгенерированное число на протяжении всей программы оставалось неизменным. Если необходимо использование цикла, то что туда входит. Очень надеюсь на помощь. :)
Не откажусь и от всего кода :)
 

Dreammaker

***=Ф=***
мх, а случайно это задание не в разделах о сессиях было задано? :)
p.s. На самом деле способ решений этой задачи превеликое множество.. )

update: пропустил предложение о скрытых полях.. Что здесь непонятного?
Передаём значение в скрытых полях, а скрипте IF ELSE
 

holyman

Новичок
раздел циклы и масивы, глава 4, помогите советом, я по природе очень упертый, пока этого не пойму не успокоюсь
 

msdn11

Новичок
<?
$rnd = $_GET['rnd'];
if(!$rnd){
$rnd = random(0,5);
} else{
if($rnd == $_GET['rnd']){
echo "Ugadal"
} else {
echo "Ne ugadal";
}
}
?>
+форма для отправки числа пользователем.
 

Andreika

"PHP for nubies" reader
Dreammaker holyman
самое смешное, что где хранить написано в тексте

надо хранить данные в скрытых полях

PS. Для этой игры массивы не нужны, надо хранить данные в скрытых полях
это противопоставление? или просто упомянули массивы?
 

Фанат

oncle terrible
Команда форума
Собственно вопрос - как написать алгоритм, чтобы в самом начале сгенерированное число на протяжении всей программы оставалось неизменным.
собственно, вопрос в том, что никакого протяжения всей программы НЕТУ.
 

holyman

Новичок
здесь нету ни кол-ва попыток, ни возможности угадать еще раз то же задуманное число, просто угадал не угадал
 

Фанат

oncle terrible
Команда форума
не обращай внимания на ответы msdn11
он знает ещё меньше тебя.
 

holyman

Новичок
Andreika
а данные в скрытые поля заносятся какие? результат генерации и каждая попытка?

написав данное чудо на свой манер я получил то, что я вводил число чтобы угадать число Х, которое было сгенерированно, а это число Х послее ввода генерировалось заново... так я не угадаю никогда :)
 

holyman

Новичок
"вводил" - это в скрытые поля выводил.
значит, думаю надо в скрытое поле вывести и результат генерации и данную попытку угадать, а затем сравнить?
 

Фанат

oncle terrible
Команда форума
ну попробуй.
на самом деле скрипт лучше писать в редакторе, чем на форуме.
 

Фанат

oncle terrible
Команда форума
а зачем?
если у тебя всё получилось, то просто перейди к следующей задаче.
а если не получилось, то лучше не код писать, а сформулировать вопрос и задать его
 

holyman

Новичок
<?
print "<h2>Guess my number 1-100</h2>";
funcA();
$gen = rand (1,100);
print <<<a
<input type = "hidden"
name = "gen"
value = $gen>
GENERATED NUMBER IS $gen (this is hidden)<br>
<input type = "hidden"
name = "number"
value = $number>
ENTERED NUMBER IS $number (this is hidden)<br>
a;
func1();
function func1(){
global $number, $gen;
if (empty($number))
{
print <<<Q
<h2>Welcome!</h2><br>
Q;
} else if ($number == $gen)
{
print "<h2>You have guessed</h2><br>";
} else if($number < $gen){
print "It is a bit less";
} else if($number > $gen){
print "It is a bit more";
}
}
function funcA(){
global $number, $gen;
print <<<z
<form method = "post">
<input type = "text"
name = "number"
value = "">
<input type = "submit"
value = "GO">
</form>
z;
}
?>
вопрос, почему так? число генерируется заново после каждого нажатия кнопки :(
 

Фанат

oncle terrible
Команда форума
holyman
зачем тебе столько функций? логика программы совершенно непонятна. зачем писать функцию, которая используется только один раз?
зачем тебе этот корявый хередок? почему не писать хтмл, как есть?
ты не знаешь, что к полученным через пост данным надо обращаться, как $_POST['имя поля']?

-~{}~ 04.04.06 20:22:

почему не рисовать форму одним куском?
сначала - логика, потом - форма?
зачем ты генеришь число каждый раз?
 

holyman

Новичок
на сервере register_globals = on с постом все в порядке.
про ненужные функции согласен, запутанно выходит, а вот насчет того, КАК я генерирую число каждый раз я и сам не понял.. вот тут если можно по-подробнее
 
Сверху