<!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>