Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Скрипт игры в города (https://forum.antichat.xyz/showthread.php?t=42298)

Лео 15.06.2007 20:25

Скрипт игры в города
 
Все знают игру в города, а вот родилась идея поиграть с компьютером, может комуто знаком такой скрипт? Причем хотелось бы эту игру воткнуть в чат, чтобы играли пользователи а компьютер брал слова из базы, в принципе которая у меня есть. Единственное, надо чтобы слова не повторялись и в результате начислялись какието очки, которые можно было бы ввести в таблицу. Может кто делал такое?

Linuxoid 16.06.2007 04:52

1. Нафига тут бот я вообще не пойму... Лучше сделать просто чтоб юзеры играли... Без ботофф...
2. Какой чат? Нечто ужасТное типа chat.mail.ru или IRC?

hhover 16.06.2007 08:27

Код:

<?php
session_start();

if ( ! $_SESSION['game'] )
{

  $file_with_city = 'city.txt';
  $main = file ( $file_with_city );

  foreach ( $main as $city )
  {
    $city = trim ( $city );
    if ( strlen ( $city ) < 2 )
      continue;

    $first_symb = substr ( $city, 0, 1 );
    $city_array[$first_symb][] = $city;

  }

  $_SESSION['city'] = $city_array;
  echo "<pre>";
  print_r($_SESSION['city']);
  echo "</pre>";
  $_SESSION['game'] = 1;
  $_SESSION['last_symb'] = "а";
 
}

if ( $_POST['text'] != '' )
{

  echo "Вы ввели Город {$_POST['text']}.<br />";
  $first_symb = substr ( $_POST['text'], 0, 1 );

  if ( $first_symb != $_SESSION['last_symb'] )
  {
    echo "Вы должны ввести город на букву <b>{$_SESSION['last_symb']}</b><br />";
  }
  else
  {

    if ( !isset ( $_SESSION['city'][$first_symb] ) or ! @in_array ( $_POST['text'], $_SESSION['city'][$first_symb] ) )
    {
      echo "Такого города не существует.";
    }
    else
    {
     
      $delete_key = array_search ( $_POST['text'], $_SESSION['city'][$first_symb] );
      unset ( $_SESSION['city'][$first_symb][$delete_key] );

      $last_symb = substr ( $_POST['text'], -1 );
      $_SESSION['last_symb'] = $last_symb;

      $answer_count = count ( $_SESSION['city'][$last_symb] );

      if ( $answer_count == 0 )
      {
        session_unset();
        die ( "Вы победили!" );
      }
      else
      {
     
        $rand = rand ( 0, $answer_count - 1 );
        $answer = $_SESSION['city'][$last_symb][$rand];
        unset ( $_SESSION['city'][$last_symb][$rand] );
        echo "Компьютер отвечает: <b>$answer</b><br />";
        $ls = substr ( $answer, -1 );
        $_SESSION['last_symb'] = $ls;
       
        if ( count ( $_SESSION['city'][$ls] ) < 1 )
        {
          session_unset();
          die ( "Вы проиграли!" );
        }

      }
     
    }
   
  }
 
}

echo "<form action='' method='post'>
Введите Город:
<input type='text' name='text' value='' />
<input type='submit' name='submit' value='submit' />
</form>";

?>

На, поиграй с компьютером в города. Без очков, чисто на интерес. %)

Kallisto 16.06.2007 08:32

Бот он имел ввиду для чата...
В принципе в чате все можно реализовать на стадии РНР, нет необходимости создавать для этого бота, который бы входил парсил чат и т.д.

Схема проста, в списках онлайн сидит бот с Id=0, если пишут Id=0, смотрит на город, если города нет в базе - игнор, если есть, отвечает на последнюю букву и запоминает последнюю букву в том что бот сказал... При следующем ответе сверяет первую букву с ожидаемой.

такой алгоритм...

Лео 16.06.2007 17:50

Цитата:

Сообщение от Linuxoid
2. Какой чат? Нечто ужасТное типа chat.mail.ru или IRC?

чат вот, если уж интересно, http://umnyichat.chatz.ru/, хочется оживить его именно игрой, пусть пока города, потом может и викторина получится типа поля чудес

Piflit 16.06.2007 17:59

Цитата:

Сообщение от Лео
викторина получится типа поля чудес

только не поле чудес! нееееееееет!...

имхо ботом и игрой в города ты людей не привлечешь, уж лучше анекдоты...

Лео 16.06.2007 19:02

анекдоты на форуме, там скрипт стоит они все время меняются на новые


Время: 19:47