View file XO/XO.php

File size: 12.38Kb
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Ласкаво прошу до гри XorO! Або просто: Хрестики-Нолики! =)</title>
  <style>
  body {background-color: #000000; color: #00BFFF;}
  a:link {}
  a:visited {color: #FF8C00;}
  </style>
 </head>
 <body>

<?
    #----------------------------------------------------#
	#                                                    #
    #              ******* X or O ******                 #
	#                                                    #
    #           Made by :   Xakep (Володимир)            #
    #            E-mail :   [email protected]           #
    #               ICQ :   800-30-97                    #
	#                                                    #
    #     Ви не можете вносити зміни в код скрипта!      #
    # Ви можете БЕЗКОШТОВНО розповсюджувати даний скрипт #
	#  за умови збереження цієї інформації про автора    #
	#     даного скрипта та його контактних даних!       #
	#                                                    #
	#                Бажаю гарної гри! =)                #
	#           Якщо щось не так - вибачайте!            #
	#     Це мій третій, написаний з нуля, скрипт. =)    #
	#      Це перша версія 1.00. Якщо буду мати час      #
	#     і бажання - буду щось удосконалювати!... =)    #
	#                                                    #
    #----------------------------------------------------#

   $xoro = array("___", "_X_", "_O_");  // Знаки гри

   echo ("<span style=color:#32CD32><b>Ласкаво прошу до гри XorO!</b><br/>Або просто: Хрестики-Нолики! =)</br></span>");  // Підпис зверху

   if (!empty($_GET['set']))  // Якщо хтось надумає вписати замість змінної SET щось інше
   {
      if (!preg_match("/[1-9]/",$_GET['set']))
      {
      echo ("<b>Я знав, що тебе руки засверблять свої криві пальці сюди всунути!</br>За Такі Дії Колись Руки ПО САМІ ЛОКТІ ОБРУБУВАЛИ!!!</b>");
      $win = 1;
      }
   }

   if ($_GET['set'] == 0)  // Функція Ще раз

   {
    $file = fopen ("XO.txt","w");  // Створюємо новий файл і вписуємо початкові дані
	fputs ($file, $xoro[0]."\r\n");
	fputs ($file, $xoro[0]."\r\n");
	fputs ($file, $xoro[0]."\r\n");
	fputs ($file, $xoro[0]."\r\n");
	fputs ($file, $xoro[0]."\r\n");
	fputs ($file, $xoro[0]."\r\n");
	fputs ($file, $xoro[0]."\r\n");
	fputs ($file, $xoro[0]."\r\n");
	fputs ($file, $xoro[0]."\r\n");
   }
   else  // Гра
   {
   $file_massive = file("XO.txt");  // Данні файлу - в масив
      if ($file_massive[$_GET['set'] - 1] == $xoro[1]."\r\n")  // Якщо гравець обрав поле, яке вже було НИМ обране
      {
      echo ("<font color=red><b>Такий Хід ЗАБОРОНЕНИЙ!!!</b></font>");
      $_GET['set'] = 0;  // Завершити гру
      $error = 1;
      }
      else
      {
         if ($file_massive[$_GET['set'] - 1] == $xoro[2]."\r\n")  // Якщо гравець обрав поле, яке вже було обране КОМП`ЮТЕРОМ
         {
         echo ("<font color=red><b>Для Тих, Хто В Танку:<br/>ТАКИЙ ХІД ЗАБОРОНЕНИЙ!!!</b></font>");
         $_GET['set'] = 0;  // Завершити гру
         $error = 1;
         }
         else
         {
         $file_massive[$_GET['set'] - 1] = $xoro[1]."\r\n";  // Змінюємо початкову строку в файлі на знак гри гравця
         $file = fopen ("XO.txt","r+");  // Перезаписуємо файл
            {
   	        fputs ($file, $file_massive[0]);
	        fputs ($file, $file_massive[1]);
	        fputs ($file, $file_massive[2]);
	        fputs ($file, $file_massive[3]);
	        fputs ($file, $file_massive[4]);
	        fputs ($file, $file_massive[5]);
	        fputs ($file, $file_massive[6]);
	        fputs ($file, $file_massive[7]);
	        fputs ($file, $file_massive[8]);
	        }
	     $file = fopen ("XO.txt","a");  // Дописуємо хід гравця
	     $file_massive[9] = $_GET['set'];
	        {
	        fputs ($file, $file_massive[9].":");
	        }
         }
      }
   }
   if ($error = 1)
   {}
   else
   {
   fclose ($file);
   }


   if (!empty($_GET['set']))  // Хід комп`ютера
   {
   $file_massive = file("XO.txt");
   $game = explode(":", $file_massive[9]);
   }

   do
   {
   $opponent_pc = rand(0, 9);  // Генератор випадкових чисел

   if ($game[0] == $opponent_pc)  // Якщо таке число вже записане - генерувати знову!
   {$step0 = true;} else {$step0 = false;}
   if ($game[1] == $opponent_pc)
   {$step1 = true;} else {$step1 = false;}
   if ($game[2] == $opponent_pc)
   {$step2 = true;} else {$step2 = false;}
   if ($game[3] == $opponent_pc)
   {$step3 = true;} else {$step3 = false;}
   if ($game[4] == $opponent_pc)
   {$step4 = true;} else {$step4 = false;}
   if ($game[5] == $opponent_pc)
   {$step5 = true;} else {$step5 = false;}
   if ($game[6] == $opponent_pc)
   {$step6 = true;} else {$step6 = false;}
   if ($game[7] == $opponent_pc)
   {$step7 = true;} else {$step7 = false;}
   if ($game[8] == $opponent_pc)
   {$step8 = true;} else {$step8 = false;}
   
      if ($step0||$step1||$step2||$step3||$step4||$step5||$step6||$step7||$step8)
      {$steps = true;} else {$steps = false;}
    }
    while ($steps == true);


   if (!empty($_GET['set']))  // Хід комп`ютера
   {
   $file_massive = file("XO.txt");  // Данні файлу - в масив
   $file_massive[$opponent_pc - 1] = $xoro[2]."\r\n";  // Змінюємо початкову строку в файлі на знак гри комп`ютера

   $file = fopen ("XO.txt","r+");  // Перезаписуємо файл
      {
   	  fputs ($file, $file_massive[0]);
	  fputs ($file, $file_massive[1]);
	  fputs ($file, $file_massive[2]);
	  fputs ($file, $file_massive[3]);
	  fputs ($file, $file_massive[4]);
	  fputs ($file, $file_massive[5]);
	  fputs ($file, $file_massive[6]);
	  fputs ($file, $file_massive[7]);
	  fputs ($file, $file_massive[8]);
	  }
	$file = fopen ("XO.txt","a");  // Дописуємо ходи гри комп`ютера
	$file_massive[9] = $opponent_pc;
	     {
	     fputs ($file, $file_massive[9].":");
	     }
      fclose ($file);
   }


   if (!empty($_GET['set']))  // Якщо був здійснений хід
   {
   $file_massive = file("XO.txt");
   $meorit = explode(":", $file_massive[9]);  // Беремо всі ходи гри і розділяємо на:
   $meorit_me = "$meorit[0]$meorit[2]$meorit[4]$meorit[6]$meorit[8]";  // ходи гравця
   $meorit_pc = "$meorit[1]$meorit[3]$meorit[5]$meorit[7]$meorit[9]";  // ходи комп`ютера

   // Ходи я розділив, щоб визначити чи присутня у гравця або у комп`ютера виграшна комбінація...

   $val = array( // В масиві записані виграшні комбінації для гравця, а саме: 123 або 456||789||147||258||369||159||357
   "1:2:3" => array("num1" => "1", "num2" => "2", "num3" => "3"),
   "4:5:6" => array("num1" => "4", "num2" => "5", "num3" => "6"),
   "7:8:9" => array("num1" => "7", "num2" => "8", "num3" => "9"),
   "1:4:7" => array("num1" => "1", "num2" => "4", "num3" => "7"),
   "2:5:8" => array("num1" => "2", "num2" => "5", "num3" => "8"),
   "3:6:9" => array("num1" => "3", "num2" => "6", "num3" => "9"),
   "1:5:9" => array("num1" => "1", "num2" => "5", "num3" => "9"),
   "3:5:7" => array("num1" => "3", "num2" => "5", "num3" => "7"),
   );
      foreach ($val as $key => $type)
      {
         foreach ($type as $val => $val1)
         {
         $$val = substr_count($meorit_me, "$val1");  // Цей багатомірний масив перевіряє кожну комбінацію на наявність і ній виграшу гравця
         }
            if ($num1&&$num2&&$num3)  // Якщо співпала виграшна комбінація
            {
            echo ("<font color=lime><b><blink>ВИ ПЕРЕМОГЛИ!</blink> =)</b></font>");
            $win = 1;  // Завершити поточну гру, щоб гравець не міг грати далі після закінчення поточної гри
            }
      }

      if ($win == 0)
      {
         if ($opponent_pc == 0)  // Якщо всі ходи вичерпано і переможеця не визначено
         {
	     echo ("<font color=grey><b><blink>НІЧИЯ!</blink> Ні Ваше, Ні Наше! =|</b></font>");
	     $win = 1;
         }
      }

      {
      $val = array(  // В масиві записані виграшні комбінації для гравця, а саме: 123 або 456||789||147||258||369||159||357
      "1:2:3" => array("num1" => "1", "num2" => "2", "num3" => "3"),
      "4:5:6" => array("num1" => "4", "num2" => "5", "num3" => "6"),
      "7:8:9" => array("num1" => "7", "num2" => "8", "num3" => "9"),
      "1:4:7" => array("num1" => "1", "num2" => "4", "num3" => "7"),
      "2:5:8" => array("num1" => "2", "num2" => "5", "num3" => "8"),
      "3:6:9" => array("num1" => "3", "num2" => "6", "num3" => "9"),
      "1:5:9" => array("num1" => "1", "num2" => "5", "num3" => "9"),
      "3:5:7" => array("num1" => "3", "num2" => "5", "num3" => "7"),
      );
         foreach ($val as $key => $type)
         {
            foreach ($type as $val => $val1)
            {
            $$val = substr_count($meorit_pc, "$val1");  // Цей багатомірний масив перевіряє кожну комбінацію на наявність і ній виграшу комп`ютера
            }
               if ($num1&&$num2&&$num3)  // Якщо співпала виграшна комбінація для комп`ютера
               {
	              if ($win == 0)
	              {
                  echo ("<font color=red><b><blink>ВИ ПРОГРАЛИ!</blink> =(</b></font>");
                  $win = 1;
                  }
               }
         }
      }
   }

   $file_massive = file("XO.txt");  // Показуємо гру гравцю

   if (!$win)  // Якщо переможець ще не визначений
   {
      {
      echo ("<br/>");
      echo "<table border=1><tr>";
      echo "<td><a href=XO.php?set=1>$file_massive[0]</a></td>
            <td><a href=XO.php?set=2>$file_massive[1]</a></td>
	        <td><a href=XO.php?set=3>$file_massive[2]</a></td></tr><tr>
            <td><a href=XO.php?set=4>$file_massive[3]</a></td>
	        <td><a href=XO.php?set=5>$file_massive[4]</a></td>
	        <td><a href=XO.php?set=6>$file_massive[5]</a></td></tr><tr>
            <td><a href=XO.php?set=7>$file_massive[6]</a></td>
	        <td><a href=XO.php?set=8>$file_massive[7]</a></td>
	        <td><a href=XO.php?set=9>$file_massive[8]</a></td>";
      echo "</tr></table><br/>";
      echo ("<a href=XO.php?set=0>Ще раз</a>");
      }
   }
   else
   {
   echo "<table border=1><tr>
         <td><u><blink>$file_massive[0]</blink></u></td>
         <td><u><blink>$file_massive[1]</blink></u></td>
	     <td><u><blink>$file_massive[2]</blink></u></td></tr><tr>
         <td><u><blink>$file_massive[3]</blink></u></td>
	     <td><u><blink>$file_massive[4]</blink></u></td>
	     <td><u><blink>$file_massive[5]</blink></u></td></tr><tr>
         <td><u><blink>$file_massive[6]</blink></u></td>
	     <td><u><blink>$file_massive[7]</blink></u></td>
	     <td><u><blink>$file_massive[8]</blink></u></td>
         </tr></table><br/>";
   echo ("<a href=XO.php?set=0>Ще раз</a>");
   }
?>

 </body>
</html>