Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запутаный код Web-игры: как формируется переменная?
 
 автор: Богдан   (23.03.2011 в 15:47)   письмо автору
 
 

Народ Хелп плз. Код рабочий (хоть и кривоват) Не могу понять как работает особенно с как генерируеться $petals.
<html>
<body bgcolor="tan">
<center>
<font face="Comic Sans MS">
<h1>Petails Around the rose</h1>
<?
function greeting()
{
  global 
$petals,$guess;
  if (empty(
$guess))
  {
    echo 
"<h3>Welcom to game</h3>";
  }
  else if (
$guess==$petals)
  {
    echo 
"You got it";
  }
  else
  {
    echo <<<HERE
<h3>From the last try</h3>
you gassed 
$guess<br>
and the correct answer was 
$petals around the rouse
HERE;
  }
}
function 
showDice()
{
  global 
$petals;
  echo 
"<h3>New Roll</h3>";

  
$petals=0;

  
$die1=rand(1,6);
  
$die2=rand(1,6);
  
$die3=rand(1,6);
  
$die4=rand(1,6);
  
$die5=rand(1,6);

  
show($die1);
  
show($die2);
  
show($die3);
  
show($die4);
  
show($die5);

  
calcnumpetals($die1);
  
calcnumpetals($die2);
  
calcnumpetals($die3);
  
calcnumpetals($die4);
  
calcnumpetals($die5);
}


function 
show($value)
{
  echo<<<PRINT
<img src="Кости/die$value.jpg">
PRINT;
}

function 
calcnumpetals($value)
{
  global 
$petals;

  switch (
$value)
  {
    case 
3:
      
$petals +=2;
      break;

    case 
5:
      
$petals +=4;
      break;
   }
}

function 
printform()
{
  global 
$petals;

  echo<<<HERE
<h3>Hom many petals around the rose?</h3>
<form method="post">
<input type="text" name="guess" value="0">
<input type="hidden" name="petals" value="
$petals"><br>
<input type="submit">
</form>
HERE;
}

greeting();
showDice();
printform();
?>
</font>
</center>
</body>
</html>

  Ответить  
 
 автор: cheops   (23.03.2011 в 16:29)   письмо автору
 
   для: Богдан   (23.03.2011 в 15:47)
 

А в чем дело? Т.е. что делает скрипт?

PS У нас изображений нет, поэтому не очень понятно, в чем задача Web-приложения.

  Ответить  
 
 автор: Богдан   (23.03.2011 в 19:29)   письмо автору
 
   для: cheops   (23.03.2011 в 16:29)
 

В двух словах.Прога являеться игрой (Из учебника Энди Харриса).Когда мы обращаемься на даную страницу генерируеться форма в которой есть текстовое поле, в это поле надо ввести цифру, обозначающу предполагаемое количесвто лепестков потом отправляем на сервер эту форму если мы угадали тогда пишет "You got it" если нет тогда you gassed $guess<br>
and the correct answer was $petals around the rouse.
саму игру можна найти вот здесь http://www.borrett.id.au/computing/petals-j.htm
из этого кода мне не понятно как генерируеться перемення $petals.
Вот в чем проблема.
п.с.
В изображении должни быть рисунки с игральными костяшками.

  Ответить  
 
 автор: cheops   (23.03.2011 в 19:41)   письмо автору
 
   для: Богдан   (23.03.2011 в 19:29)
 

$petals объявлена глобальной (global) во всех функциях - т.е. её состояние запоминается по мере вызова функции. Начало находится в функции showDice(), где ей присваивается нулевое значение
$petals=0;
После этого генерируются 5 случайных чисел от 1 до 6, показываются и в дело вступает функция calcnumpetals(), которая принимают в качестве параметра одно из этих случайных чисел. Если это случайное число равно 1, 2, 4 или 6, то работа функции calcnumpetals() не отражается на переменной $petals, если случайное число равно 3, то $petals увеличивается на 2, если случайное число равно 5, то $petals увеличивается на 4. Вызовов calcnumpetals() всего 5 штук, в конце концов $petals принимает значения в зависимости от случайных чисел. Ниже представлен один из возможных сценариев
rand petals
 1     0
 3     2
 3     4
 6     4
 5     8

  Ответить  
 
 автор: Богдан   (23.03.2011 в 19:45)   письмо автору
 
   для: cheops   (23.03.2011 в 19:41)
 

СПАСИБО огромное

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования