Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Вычитание числа (http://www.flasher.ru/forum/showthread.php?t=99979)

Xantalion 16.08.2007 18:33

Вычитание числа
 
Может для кого-то этот вопрос покажется идиотским +), но всеже я его задам.
Допустим нам дано какое-то число (20 например). Как сделать так, чтоб из него вычеслялось случайное число до тех пор, пока 20 не стнет меньше 0 --->>> Но так чтоб каждое вычитание происходило При нажатии на кнопку. ---<<<

У меня получилось сделать тольк, что при нажатии он считает от начала до конца, т.е. если использовать while или же только первое вычитание ( взависимости от условия)...я непойму как сделать так, нажал (к примеру выпало случаное 2) , тогда 20-2=18, потом опять надал ( случ к примеру 4), тогда 18-4=14 и тд....
случайное кстати делал через mt_rand(min,max).


Вот мой код ( я нуп в php =) ? хочу понять просто)...

Цитата:

<html>
<head>
<title> Случайные числа </title>
</head>
<body>
<?php
$pl1=40;
$hp1=$pl1;

echo "<font color=green>Число:</font><br>";


if ($number) {

while ($pl1>0) {
$ur1=mt_rand(1,10);
$pl1-=$ur1;
echo "<font color=red>Вычитаемое число: $ur1</font><br>";
}
echo "<font color=blue>Стало: $pl1/ Было: $hp1</font><br>";
?>
<form>
<input type=submit name="number" value="Сгенерировать число">
</form>
<?


} else {
echo "<font color=blue>Было: $pl1/Стало: $hp1</font><br>";

?>
<form>
<input type=submit name="number" value="Сгенерировать число">
</form>
<?}?>

</body>
</html>

†‡Paladin‡† 16.08.2007 19:49

заместо while напишите if и будет вам счастье.

Xantalion 16.08.2007 21:59

Цитата:

Сообщение от †‡Paladin‡†
заместо while напишите if и будет вам счастье.

Наверно вы недопоняли моей проблемы. Дело в том, что если заменить while на if мы будем получать в результате при каждом (первом, втором третьем и т.д) нажатии --> 40 - x (где x случайное число)
А моя задача сделать так:
Нажали на кнопку первый раз - итог (40- (скажем 5) = 35)
Нажали на кнопку второй раз - тиог (уже не 40, а получившееся из первого нажатия 35 - (скажем 2) =33 .... и тд до числа, которое меньше 0 или рано 0.:umnik2:

Самурай 17.08.2007 01:45

рекурсия + rand

Skubent 17.08.2007 03:30

Самурай, топикстартеру счас дурно станет :)

Xantalion, осталось понять, что скрипт отрабатывает ДО того, как вывалит пользователю информацию. И, соотвественно, один прогон скрипта - одно вычитание - один показ пользователю. Нажали кнопку - второй прогон скрипта - второе вычитание - второй показ пользователю. Ну и так далее.

Xantalion 17.08.2007 14:00

Цитата:

Сообщение от Самурай
рекурсия + rand

Ты думаешь нуб может знать что такое рекурсия =) надо тогда было хоть ссылку дать, где моно про нее почитать.

Цитата:

Сообщение от Skubent
один прогон скрипта - одно вычитание - один показ пользователю

. Я это уже понял +) Мне бы узнать каким образом это сделать +)

†‡Paladin‡† 17.08.2007 14:44

Цитата:

Сообщение от Xantalion
Наверно вы недопоняли моей проблемы. Дело в том, что если заменить while на if мы будем получать в результате при каждом (первом, втором третьем и т.д) нажатии --> 40 - x (где x случайное число)
А моя задача сделать так:
Нажали на кнопку первый раз - итог (40- (скажем 5) = 35)
Нажали на кнопку второй раз - тиог (уже не 40, а получившееся из первого нажатия 35 - (скажем 2) =33 .... и тд до числа, которое меньше 0 или рано 0.:umnik2:

Я тебя понял. В пределах одного пхп скрипта у тебя неполучится так сделать. Храни переменную в какомнить соседнем текстовике и записывай туда значения и забирай обратно. Вариант использовать печенюшки кстати.

Skubent 17.08.2007 17:17

Простые варианты:
1. Число можно передавать в скрытом поле формы.
2. Число можно передавать в гет-запросе.
Посложнее:
3. Использовать кукисы.
4. Использовать сессию.

Я думаю, что вариант 1 - самое оно.

chpoc 17.08.2007 18:04

Тытс тытс...

etc 17.08.2007 18:19

Цитата:

Сообщение от chpoc
Тытс тытс...

chpoc, и какой смысл в этих двух словах?


Часовой пояс GMT +4, время: 14:28.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.