<?php

/**
* @package     JohnCMS
* @link        http://johncms.com
* @copyright   Copyright (C) 2008-2011 JohnCMS Community
* @license     LICENSE.txt (see attached file)
* @version     VERSION.txt (see attached file)
* @author      http://johncms.com/about
*/
/*
Взлом сейфа
Автор FoulDancer
 */
define('_IN_JOHNCMS', 1);
$headmod = 'seif';
$textl = 'Взлом сейфа';
$rootpath = '../../';
require_once ("../../incfiles/core.php");
require_once ("../../incfiles/head.php");
echo "<div class='phdr'>Взлом сейфа</div>";
if($user_id)
{
	$try_def = 4;
	//Количество попыток
	$try_cen = 100;
	//Цена одной попытки
	switch($act)
	{

		case "game" :
			$ms = mysql_fetch_array(mysql_query("SELECT *
			FROM `game`
			WHERE type='ceif' and users='".$user_id."' LIMIT 1;"));
			//Проверяем наличие попыток
			if($ms['act'] > 0)
			{
				if(isset ($_POST['submit']))
				{
					$vzlom = '0';
					$cifra = '';
					//Шифр
					$data_temp = unserialize($ms['dump']);
					//Принимаем данные
					$k[0] = abs(intval($_POST['k1']));
					if($k[0] > 9)
						$k[0] = 0;
					$k[1] = abs(intval($_POST['k2']));
					if($k[1] > 9)
						$k[1] = 0;
					$k[2] = abs(intval($_POST['k3']));
					if($k[2] > 9)
						$k[2] = 0;
					$k[3] = abs(intval($_POST['k4']));
					if($k[3] > 9)
						$k[3] = 0;


					//Проверяем угаданые цифры
					for($e = 0; $e < 4; $e++)
					{
						for($i = 0; $i < 4; $i++)
						{
							if($k[$e] == $data_temp[$i])
							{
								if($e == $i)
								{
									$cifra[$e] = $k[$e];
								}
								elseif (empty ($cifra[$e]))
								{
									$cifra[$e] = 'x';
								}
							}
						}
					}

                     //echo  join("", $data_temp).'<br/>';
					//----------------
					//Проверяем правильность ввода
					for($i = 0; $i < 4; $i++)
					{
						if($cifra[$i] == $data_temp[$i])
						{
							$vzlom++;
						}
					}
					//Сейф взломан
					if($vzlom == 4)
					{
						echo '<div class="rmenu">Взлом успешен! Шифр: '.join("", $data_temp);
						echo '</div><p align="center"><img src="open.jpg" alt="сейф"/></p>';
						// Денег в сейфе
						$file_stat = file_get_contents("temp/stat.tmp");
						$data_stat = explode(":||:", $file_stat);
						echo '<div class="rmenu">Вы получили '.morph(($data_stat[1]), array('балл', 'балла', 'баллов')).'</div>';
						echo '<div class="menu"><a href="../?">В раздел</a></div>';
						//Запись в профиль
						mysql_query("UPDATE `users` SET `balans`=`balans`+".$data_stat[1]." WHERE `id`='".$user_id."' LIMIT 1");
						mysql_query("DELETE FROM `game` WHERE  type='ceif' and `users`='".$user_id."' LIMIT 1;");
						mysql_query("OPTIMIZE TABLE `game`");
						//Кидаем в сейф 1000 баллов
						$data_stat[1] = '1000';
						for($e = 0; $e < 2; $e++)
						{
							$out_stat .= $data_stat[$e].':||:';
						}
						$fp_send = fopen("temp/stat.tmp", "a+");
						flock($fp_send, LOCK_EX);
						ftruncate($fp_send, 0);
						fputs($fp_send, $out_stat);
						flock($fp_send, LOCK_UN);
						fclose($fp_send);
						chmod("temp/stat.tmp", 0666);
						require_once ("../../incfiles/end.php");
						exit;
					}
					// Списываем подсказку
					mysql_query("UPDATE `game` SET `act`=`act`-1 WHERE type='ceif' and `users`='".$user_id."' LIMIT 1");
				}
				echo '<p align="center"><img src="closed.jpg" alt="сейф"/></p>';
				echo '<p align="center">';
				echo 'Осталось<font color="maroon"><b> '.$ms['act'].' </b></font>попыток! <br/>';
				echo 'Комбинация сейфа:<br/>';
				for($i = 0; $i < 4; $i++)
				{
					echo !empty ($cifra[$i]) ? $cifra[$i] : '<font color="red">-</font>';
				}
				echo '<br/><table><tr><td bgcolor="black">';
				echo '<form action="?act=game" method="post">';
				echo 'Введи комбинацию цифр:<br/>';
				echo '<input type="text" size="1" maxlength="1" name="k1"/>';
				echo '<input type="text" size="1" maxlength="1" name="k2"/>';
				echo '<input type="text" size="1" maxlength="1" name="k3"/>';
				echo '<input type="text" size="1" maxlength="1" name="k4"/>';
				echo '<br/><input type="submit" name="submit" value="пробовать"/></form>';
				echo '</td></tr></table>';
				echo '</p><div class="menu">';
			}
			else
			{
				echo '<div class="rmenu">Попытки закончились, попробуйте в следующий раз';
				echo '</div><div class="menu"><a href="../seif">К сейфу</a><br/>';
			}
			break;

		case "start" :
			$ms = mysql_fetch_array(mysql_query("SELECT *
			FROM `game`
			WHERE type='ceif' and users='".$user_id."' LIMIT 1;"));
			//Купленные попытки
			$try = abs(intval($_POST['try']));
			if($try > 2)
				$try = '0';
			$sum = ceil(($try * $try_cen) + ($try_cen * $try_def));
			//Проверяем наличие денег
			if($datauser['balans'] < $sum)
			{
				echo '<div class="rmenu">Ваш баланс не позволяет вам играть, повысте его';
				echo '</div><div class="menu"><a href="../seif">К сейфу</a><br/>';
			}
			else
			{
			//Генерируем шифр
				$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9);
				shuffle($arr);
				for($i = 0; $i < 4; $i++)
				{
					$s[$i] = $arr[$i];
				}
				//--------------
				if($ms['id'])
				{
					mysql_query("UPDATE `game` SET
				`time`='".time()."',
				`dump`='".serialize($s)."',
				`act`='".($try + $try_def)."'
				WHERE type='ceif' and users='".$user_id."'
				;") or die('Error: UPDATE game');
				}
				else
				{
					mysql_query("INSERT INTO `game` SET
				`time`='".time()."',
				`users`='".$user_id."',
				`dump`='".serialize($s)."',
				`act`='".($try + $try_def)."',
				`type`='ceif';") or die('Error: INSERT INTO game');
				}
				//Списываем баллы
				mysql_query("UPDATE `users` SET `balans`=`balans`-".$sum." WHERE `id`='".$user_id."' LIMIT 1");
				// Денег в сейфе
				$file_stat = file_get_contents("temp/stat.tmp");
				$data_stat = explode(":||:", $file_stat);
				//--------------
				//Запись
				$data_stat[1] = $data_stat[1] + $sum;
				$data_stat[0] = $data_stat[0] + 1;
				for($e = 0; $e < 2; $e++)
				{
					$out_stat .= $data_stat[$e].':||:';
				}
				$fp_send = fopen("temp/stat.tmp", "a+");
				flock($fp_send, LOCK_EX);
				ftruncate($fp_send, 0);
				fputs($fp_send, $out_stat);
				flock($fp_send, LOCK_UN);
				fclose($fp_send);
				chmod("temp/stat.tmp", 0666);
				//--------------
				header("Location: ?act=game");
			}
			break;

		default :
			// Денег в сейфе
			$file_stat = file_get_contents("temp/stat.tmp");
			$data_stat = explode(":||:", $file_stat);
			//--------------
			$old = ceil(time() - (3 * 24 * 3600));
			// Чистим таблицу
			mysql_query("DELETE FROM `game` WHERE  type='ceif' and `time`<='".$old."';");
			mysql_query("OPTIMIZE TABLE `game`");
			//---------------
			echo "<form action='?act=start' method='post'><div class='gmenu'>Правила игры:<br/>";
			echo "Попробуйте отгадать 4-х значный код от сейфа и забрать его содержимое. Цена игры ".morph(($try_cen * $try_def), array('балл', 'балла', 'баллов'));
			echo ". Вам дается ".$try_def." попыток, но вы можете купить дополнительно еще 2-е, цена одной попытки ".morph(($try_cen), array('балл', 'балла', 'баллов'));
			echo "<hr/>1. символ <b>-</b> означает, что введённая цифра отсутствует в коде сейфа.<br/>";
			echo "2. символ <big>x</big> означает, что цифра, которую вы ввели есть, но стоит на другом месте в шифре сейфа.<br/>";
			echo "<br/>Желаю удачи!<br/><br/>";
			echo 'В сейфе сейчас: '.morph($data_stat[1], array('балл', 'балла', 'баллов'));
			echo '<br/>Пытались взломать: '.morph($data_stat[0], array('раз', 'раза', 'раз')).'<br/>';
			if($datauser['balans'] >= 100)
			{
				echo "<b><big>Купить попытку:</big></b><br/>";
				echo "<select name='try'><option value='0'>Ненужно</option>";
				echo "<option value='1'>1</option><option value='2'>2</option>";
				echo "</select></div><div class='bmenu'>";
				echo "<input type='submit' name='submit' value='В игру'/></div></form>";
				echo "<div class='menu'>";
			}
			else
			{
				echo '<div class="rmenu">Ваш баланс не позволяет вам играть, повысте его';
				echo '</div><div class="menu">';
			}
			break;
	}
}
else
{
	echo functions :: display_error("Игра доступна только для зарегистрированых пользователей сайта").'<div class="menu">';
}
echo '<a href="../?">В раздел</a></div>';


function morph($int, $expressions)
{
	if(count($expressions) < 3)
		$expressions[2] = $expressions[1];
	$count = $int % 100;
	if($count >= 5 && $count <= 20)
		$result = 2;
	else
		$count = $count % 10;
	if($count == 1)
		$result = 0;
	elseif ($count >= 2 && $count <= 4)
		$result = 1;
	else
		$result = 2;
	return $int.' '.$expressions[$result];
}


require_once ("../../incfiles/end.php");

?>