Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Первый опыт в php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: создал мини-игру
Php-html.org
Отправлено: 22 Апреля, 2011 - 16:58:41
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Апр. 2011  
Откуда: Россия, Екатеринбург.


Помог: 0 раз(а)




Здравствуйте.
Я создал игру, скажите пожалуйста ошибки, пожелания и прочее...
Игра называется: "Угадай: камень, ножницы или бумага!".
Код html:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=WINDOWS-1251">
  4. <title>Игра: угадай, что задумано!</title>
  5. </head>
  6. <body>
  7. <h3>Угадайте, что загадано: камень, ножницы, бумага.</h3>
  8. <form name="form1" method="post" action="arr.php">
  9. <p><span>Введите, что вы предполагаете: </span>
  10. <input type="text" name="arr">
  11. </p>
  12. <input type="submit" value="Отослать форму">
  13. </body>
  14. </html>

Код php:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $zag = "$_POST[arr]";
  4. echo "Вы думаете, что это: ".$_POST[arr];
  5. echo "<br>";
  6. $number = "1,2,3";
  7. $arr = array('Ножницы','Бумага','Камень');  
  8.     // Генерируем загаданое
  9.     $per = "";  
  10.     for($i = 0; $i < $number; $i++)  
  11.     {  
  12.       // Вычисляем случайный индекс массива  
  13.       $index = rand(0, count($arr) - 1);  
  14.       $per .= $arr[$index];  
  15.     }
  16. echo "Было задумано:<br>";
  17.     echo "$per<br>";
  18. if ($per == "Ножницы") {
  19.    if ($zag == "Ножницы") {
  20. echo "<b>Верно!</b>";
  21. }
  22. else {
  23. echo "<b>Не верно!</b>"; }
  24. }
  25. elseif ($per == "Бумага") {
  26. if ($zag == "Бумага") {
  27. echo "<b>Верно!</b>"; }
  28. else {
  29. echo "<b>Не верно!</b>"; }
  30. }
  31. elseif ($per == "Камень") {
  32. if ($zag == "Камень") {
  33. echo "<b>Верно!</b>"; }
  34. else {
  35. echo "<b>Не верно!</b>"; }
  36. }
  37. ?>

Игра работает, вот у меня на сайте пример: arr[dot]html
Подскажите, как еще уменьшить код и улучшить игру!


-----
http://www.php-html[dot]org - мой сайт.
 
 Top
Plusminuz
Отправлено: 22 Апреля, 2011 - 17:23:07
Post Id



Частый гость


Покинул форум
Сообщений всего: 156
Дата рег-ции: Апр. 2011  
Откуда: Россия


Помог: 2 раз(а)




думаю, вручную слова в форму вводить неудобно, лучше выпадающим списком сделать


-----
учусь... Улыбка
 
 Top
koval
Отправлено: 22 Апреля, 2011 - 19:24:39
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




У вас много лишнего. Если хотите могу прокомментировать что именно.
Вот так, я думаю, будет лучше.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     echo 'Вы думаете, что это: '. $_POST['arr'];
  3.     echo '<br>';
  4.     $arr = array('Ножницы', 'Бумага', 'Камень');  
  5.  
  6. // Генерируем загаданое
  7.     $per = $arr[rand(0, count($arr)-1)];
  8.  
  9.     echo 'Было задумано:<br>';
  10.     echo $per .'<br>';
  11.  
  12.     if($_POST['arr'] == $per)
  13.         echo 'Угадал';
  14.     else
  15.         echo 'Не угадал';


И да, лучше делать выбор селектом.
Не забудьте отключить глобальные переменные для нормальной работы скрипта.
И еще, тег "<form>" - парный - его нужно обязательно закрывать.

(Отредактировано автором: 22 Апреля, 2011 - 20:18:00)

 
 Top
Php-html.org
Отправлено: 23 Апреля, 2011 - 04:53:16
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Апр. 2011  
Откуда: Россия, Екатеринбург.


Помог: 0 раз(а)




Спасибо, буду совершенствовать.
Добавил:

Код изменил, теперь вместо текстового поля - select.
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=WINDOWS-1251">
  4. <title>Игра: угадайте, что загадано!</title>
  5. </head>
  6. <body>
  7. <h3>Угадайте, что загадано: камень, наожницы, бумага.</h3>
  8. <form name="form1" method="post" action="arr.php">
  9. <p><span>Выберете, что вы предполагаете: </span>
  10. <select name=arr size=3 multiple>
  11. <option value=1 selected>Ножницы</option>
  12. <option value=2>Камень</option>
  13. <option value=3>Бумага</option>
  14. </select>
  15. </p>
  16. <input type="submit" value="Отослать форму">
  17. </form>
  18. </body>
  19. </html>

Код php теперь выглядит так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     $z = $_POST['arr'];
  3. if ($z == "1") {
  4.     echo 'Вы думаете, что это: Ножницы';
  5.     $z = "Ножницы";
  6. }
  7. elseif ($z == "3") {
  8.     echo 'Вы думаете, что это: Бумага';
  9.    $z = "Бумага";
  10. }
  11. else{
  12.     echo 'Вы думаете, что это: Камень';
  13.     $z = "Камень";
  14. }
  15.     echo '<br>';
  16.     $arr = array('Ножницы', 'Бумага', 'Камень');  
  17.  
  18. // Генерируем загаданое
  19.     $per = $arr[rand(0, count($arr)-1)];
  20.  
  21.     echo 'Было задумано:<br>';
  22.     echo $per .'<br>';
  23.  
  24.     if($z == $per) {
  25.         echo '<b>Угадал</b>'; }
  26.     else {
  27.         echo '<b>Не угадал</b>'; }
  28. ?>

Тестим - ТУТ файл arr[dot]html
П.С. Не говорите что-либо заумное, я всего пару дней в php!
П.П.С. Спасибо всем за помощь Улыбка

(Отредактировано автором: 23 Апреля, 2011 - 08:08:16)



-----
http://www.php-html[dot]org - мой сайт.
 
 Top
koval
Отправлено: 23 Апреля, 2011 - 09:38:53
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




В html можно сделать так
CODE (html):
скопировать код в буфер обмена
  1. <select name=arr size=3 multiple>
  2. <option value="Ножницы" selected>Ножницы</option>
  3. <option value="Камень">Камень</option>
  4. <option value="Бумага">Бумага</option>
  5. </select>

Тогда этот блок
PHP:
скопировать код в буфер обмена
  1. if ($z == "1") {
  2.     echo 'Вы думаете, что это: Ножницы';
  3.     $z = "Ножницы";
  4. }
  5. elseif ($z == "3") {
  6.     echo 'Вы думаете, что это: Бумага';
  7.    $z = "Бумага";
  8. }
  9. else{
  10.     echo 'Вы думаете, что это: Камень';
  11.     $z = "Камень";

будет не нужен.

А если уж хочется в штмл цифрами передавать параметр, то лучше вместо 'if-else' использовать массив.
PHP:
скопировать код в буфер обмена
  1.  
  2. $select = array(1=>'Камень',
  3.                 2=>'Ножницы',
  4.                 3=>'Бумага');
  5. $z = $select[$_POST['arr']];

(Отредактировано автором: 23 Апреля, 2011 - 09:45:10)

 
 Top
Php-html.org
Отправлено: 23 Апреля, 2011 - 09:49:53
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Апр. 2011  
Откуда: Россия, Екатеринбург.


Помог: 0 раз(а)




Спасибо большое, буду скоро еще совершенствовать)


-----
http://www.php-html[dot]org - мой сайт.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB