prepare('SELECT * FROM `user` WHERE `id` = ?');
$_user -> execute([1]);
$user = $_user -> fetch();
$_areas = $db -> prepare('SELECT * FROM `areas`');
$_areas -> execute();
$areas = $_areas -> fetchAll();
foreach ($areas as $area) {
$dash[$area['x']][$area['y']] = $area['area'];
}
function check($x, $y, $set = array()) {
global $dash, $size;
if (!isset($dash[$x][$y])) return $set;
if ($dash[$x][$y] == '5') return false;
$set[$x . '_' . $y] = $dash[$x][$y];
if ($dash[$x][$y] == '6') return $set;
$shifts = [
[$x + 1, $y], [$x - 1, $y],
[$x, $y + 1], [$x, $y - 1]
];
for ($i = 0; $i < 4; ++$i) {
$x2 = $shifts[$i][0];
$y2 = $shifts[$i][1];
if ($x2 >= 0 && $x2 <= $size[0] && $y2 >= 0 && $y2 <= $size[1] && isset($dash[$x2][$y2]) && $dash[$x2][$y2] == $dash[$x][$y] && !isset($set[$x2.'_'.$y2])) $set = check($x2, $y2, $set);
}
return $set;
}
$_area = $db -> prepare('SELECT * FROM `area`');
$_area -> execute();
$area = $_area -> fetchAll();
foreach($area as $area2){
if($chanse > $area2['chanse']){
$rand = $area2['id'];
break;
}
}
$chanse = rand(1,100);
if(!$user['area']){
$__user = $db->prepare('UPDATE `user` SET `area` = ? WHERE `id` = ?');
$__user->execute([$rand, $user['id']]);
header('Location:/area.php');
exit;
}
if(isset($_GET['put'])){
$__user = $db->prepare('UPDATE `user` SET `area` = ?, `put` = ? WHERE `id` = ?');
$__user->execute([($user['put'] ? $user['put'] : $rand), $user['area'], $user['id']]);
header('Location:/area.php');
exit;
}
echo '
Ваша сфера:
Запасной слот:
';
if(isset($_GET['x']) and isset($_GET['y'])){
$_areas = $db -> prepare('SELECT * FROM `area` WHERE `id` = ?');
$_areas -> execute([$user['area']]);
$area = $_areas -> fetch();
if($area){
$_check = $db->prepare('SELECT * FROM `areas` WHERE `x` = ? AND `y` = ? LIMIT 1');
$_check -> execute([(int)$_GET['x'], (int)$_GET['y']]);
$check = $_check->fetch();
if($check and $area['id'] != 6){
header('Location:/area.php');
exit;
}
else{
if($area['id'] !== '6'){
$__areas = $db->prepare('INSERT INTO `areas` SET `user` = ?, `area` = ?, `x` = ?, `y` = ?');
$__areas->execute([1,$user['area'],(int)$_GET['x'],(int)$_GET['y']]);
}
$__user = $db->prepare('UPDATE `user` SET `area` = ? WHERE `id` = ?');
$__user->execute([0, $user['id']]);
$dash[(int) $_GET['x']][(int) $_GET['y']] = $user['area'];
$checker = check((int)$_GET['x'], (int)$_GET['y']);
if(count($checker) > 2 or $area['id'] == '6'){
print_r($checker);
foreach($checker as $key=>$value){
$x = $key[0];
$y = $key[2];
$__delete = $db->prepare('DELETE FROM `areas` WHERE `x` = ? AND `y` = ?');
$__delete->execute([$x, $y]);
}
switch($area['type']){
case 'attack':
break;
case 'defense':
break;
case 'heal':
break;
}
}
header('Location:/area.php');
exit;
}
}
}
for ($y = 0; $y < $size[0]; ++$y) {
for ($x = 0; $x < $size[0]; ++$x) {
echo $dash[$x][$y] ? ($user['area'] == '6' ? '
':'
'):'
';
}
echo '
';
}
echo '
Скрипт выполнялся '.round((microtime(true) - $start), 6).' сек.';
?>