Форумы портала PHP.SU » PHP » Уроки php » Создание игры "Угадай число"

Страниц (2): [1] 2 »
 

1. 3d quattro - 05 Июня, 2010 - 14:51:26 - перейти к сообщению
http://3dqscripts[dot]22web[dot]net/game1/ - Результат урока
Для выполнения урока нам понадобится установленный Денвер или просто бесплатный хостинг,текстовый редактор с подсветкой кода PHP,у меня это - NuSphere PhpED,можно notepad++,для html интерфейса я использовал Adobe Dreamweaver CS3.Выполнение урока занимает не больше 5 минут.Игра состоит из 2 файлов!index.html (Визуал) и game.php (Обработчик)
Приступим!
Визуал игры - Html делается по вашему вкусу и соображениям,единственное что нам понадобится,чтобы игра работала,это вот этот код
CODE (html):
скопировать код в буфер обмена
  1. <form id="form1" name="form1" method="post" action="game.php">
  2.       <label>Число
  3.       <select name="choose" id="choose">
  4.         <option value="0">0</option>
  5.         <option value="1">1</option>
  6.         <option value="2">2</option>
  7.         <option value="3">3</option>
  8.         <option value="4">4</option>
  9.         <option value="5">5</option>
  10.         <option value="6">6</option>
  11.         <option value="7">7</option>
  12.         <option value="8">8</option>
  13.         <option value="9">9</option>
  14.         <option value="10">10</option>
  15.             </select>
  16.       </label>
  17.             <label>
  18.             <input type="submit" name="submit" id="submit" value="Играть!" />
  19.             </label>
  20.  

Можно сделать выбор числа полем,но мне по душе select Улыбка
Обработчик
С обработчиком тоже не так трудно.Алгоритм игры у нас такой:Пользователь выбирает число,нажимает кнопку Играть!,скрипт-обработчик генерирует число функцией rand (*,#),где "*" -нижний барьер генерации числа,а "#" - верхний,я знаю что есть функция seed,но я использую rand(Подробнее о функции rand можете почитать здесь http://www.php.su/functions/?rand ),берёт число,выбраное пользователем,затем скрипт сравнивает случайное и выбранное пользователем число и в зависимости от того,угадал человек или нет выводит результат.
Вот код обработчика
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $comp = rand(0, 10);  // Генерируем случайное число от 0 до 10
  3. if ($comp == $_POST['choose'])   //Инициализируем число которое выбрал человек в переменную и сравниваем числа
  4. {
  5.     echo 'Поздравляю,вы угадали!';
  6. }
  7. else
  8. {
  9.     echo 'Извините,вы проиграли,число которое загадал компьютер это - '.$comp ;
  10. }
  11. ?>
  12.  

Спасибо за то,что прочитали,мне очень приятно.
(Добавление)
Я понимаю,что статьи писать мне рано,но раз уж сделал,так почему же не поделится?
Большая просьба выполнившим урок отписаться здесь,если делали на хостинге,то киньте ссылку на игру,вам нетрудно,а мне приятно Закатив глазки .
2. Cube - 28 Июня, 2010 - 09:14:57 - перейти к сообщению
При нажатии на кнопку "Играть", у меня в поле браузера отображается код из файла game.php... Хм
3. AdMeen - 28 Июня, 2010 - 11:55:28 - перейти к сообщению
Cube пишет:
При нажатии на кнопку "Играть", у меня в поле браузера отображается код из файла game.php... Хм


apache+php не настроен
4. Cube - 28 Июня, 2010 - 11:55:40 - перейти к сообщению
Разобрался. Если запускать игру путем двойного клика по файлу Index.html, то будет ситуация, как я описал выше, т.к. в строке адреса в таком случае будет что-то вроде: file://localhost/C:/www/Index.html
Но если запустить игру, набрав в адресной строке http://localhost/Index[dot]html , то всё работает Ниндзя
5. Максим21 - 16 Июля, 2010 - 11:38:59 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.       <select name="choose" id="choose">
  2.  
  3.             <input type="submit" name="submit" id="submit" value="Играть!" />



Добрый день!

А зачем нужен id="submit" и id="choose"? Для идентификации если кнопок несколько?

Заранее спасибо!
6. ZeiZ - 16 Июля, 2010 - 13:20:21 - перейти к сообщению
Максим21 пишет:
PHP:
скопировать код в буфер обмена
  1.       <select name="choose" id="choose">
  2.  
  3.             <input type="submit" name="submit" id="submit" value="Играть!" />



Добрый день!

А зачем нужен id="submit" и id="choose"? Для идентификации если кнопок несколько?

Заранее спасибо!


можно убрать =) для CSS и для JS это.

используйте лучше
mt_rand() -- Generate a better random value
вместо rand()

а так супер урок для новичков.
7. 3d quattro - 22 Июля, 2010 - 15:59:09 - перейти к сообщению
Спасибо,очень рад хоть что-то полезное сделать!Ну визуал делался в дримвивере,там код вышел вот такой,я не стал с html заморачиваться))))
P.s:Извините что долго не было меня Закатив глазки
8. Yashko - 16 Августа, 2010 - 17:24:00 - перейти к сообщению
Мне понравился урок, простой и понятный Улыбка Хочу еще, желательно в таком же стиле, и в этом же направлении.
9. Delf - 17 Августа, 2010 - 14:45:22 - перейти к сообщению
Спасибо. Это помогло начатьУлыбка
10. DeathStalker - 19 Августа, 2010 - 01:36:45 - перейти к сообщению
помогите устранить ошибку, уже пол третьего ночи, и возможно я уже просто устал и не вижу очевидное.
Вот фрагмент кода
PHP:
скопировать код в буфер обмена
  1.  
  2. function calc(){
  3. global $rand, $i, $I, $j, $J;
  4.         do {
  5.                 if (empty($rand)) {
  6.                         echo "Вам понадобилось $i попыток";
  7.                         $j == 1;
  8.                         $j = $J;
  9.                 } elseif {
  10.                         $I++;
  11.                         $i = $I;
  12.                 }
  13.  
  14.         }while ($j == 2);
  15. }
  16.  


вот выдает такую ошибку:Parse error: syntax error, unexpected '{', expecting '(' in C:\xampplite\htdocs\hwRandChar.php on line 45

линия 45 здесь это 9 линия.
11. SAD - 19 Августа, 2010 - 01:44:03 - перейти к сообщению
$j == 1; а надо $j = 1; и псоле while ($j == 2); точки с запятой не должно быть
12. DeathStalker - 19 Августа, 2010 - 01:49:17 - перейти к сообщению
SAD пишет:
$j == 1; а надо $j = 1; и псоле while ($j == 2); точки с запятой не должно быть

в книжке и спровочнике стоит точка с запятой. и $j=1 не помогло. Там ведь пунктационная ошибка стоит.
13. SAD - 19 Августа, 2010 - 01:51:14 - перейти к сообщению
надо не elseif , а else
14. DeathStalker - 19 Августа, 2010 - 01:53:53 - перейти к сообщению
до точки с запятой не доходит дело, указывает на строку elseif. В ней все норм и выше по строкам тоже вроде.
Да пробывал убирать. не помогло.
(Добавление)
SAD пишет:
надо не elseif , а else


точно!!! Радость то просто в функции ранее был у мну многоусловный оператор, вот я и гасанул))) спасибо!

з.ы ; все таки нужно)
15. SAD - 19 Августа, 2010 - 01:56:43 - перейти к сообщению
ложись спать )

 

Powered by ExBB FM 1.0 RC1