} if (isset($_POST['boy_type4'])) { $boy_type41 = '1'; } if (!isset($_POST['boy_type4'])) { $boy_type41 = '0'; } if (isset($_POST['boy_type5'])) { $boy_type51 = '1'; } if (!isset($_POST['boy_type5'])) { $boy_type51 = '0'; } myquery("INSERT INTO game_maps (name,dolina,not_exp,not_gp,boy_type1,boy_type2,boy_type3,boy_type4,boy_type5,not_win,not_lose,maze,count_npc,exp_maze,gp_maze) VALUES ('" . $_POST['name_maze'] . "','" . $dolina1 . "','" . $not_exp1 . "','" . $not_gp1 . "','" . $boy_type11 . "','" . $boy_type21 . "','" . $boy_type31 . "','" . $boy_type41 . "','" . $boy_type51 . "','" . $not_win1 . "'," . $not_lose1 . ",1,'" . $_POST['npc_count'] . "','" . $_POST['exp_win'] . "','" . $_POST['gp_win'] . "')"); $id_maze = mysql_insert_id(); generate_maze($id_maze, $_POST); echo 'Лабиринт <span STYLE="font-size:12px;font-weight:bold;color:#FF0000">' . $_POST['name_maze'] . '</span> сгенерирован'; break; case 'newmaze': echo ' <form name="mazegen" action="""" method="post" autocomplete="off"> Имя лабиринта: <input type="text" name="name_maze" size="30" maxlength="30"><br /> Размер лабиринта: X - <input type="text" name="XSize" value="0" align="right" size="4" maxlength="3">, Y - <input type="text" name="YSize" value="0" align="right" size="4" maxlength="3"><br /> (Вход в лабиринт всегда находится в позиции 0,0. Выход - всегда в нижнем правом углу)<br /> <font color="yellow" face="Courier"><b>ВНИМАНИЕ! Максимальное кол-во ячеек лабиринта = 1600-1800</b></font><br /> <input name="dolina" type="checkbox" value="dolina"> Долина смерти (Все ограничения на атаку снимаются)<br /> <input name="not_exp" type="checkbox" value="not_exp"> Не давать на карте опыт за победу<br /> <input name="not_gp" type="checkbox" value="not_gp"> Не давать на карте деньги за победу<br /> <input name="not_win" type="checkbox" value="not_win"> Не давать на карте очки WIN за победу<br /> <input name="not_lose" type="checkbox" value="not_lose"> Не давать на карте очки LOSE за проигрыш<br />
for ($j = 0; $j < $dim; $j++) { if ($i == 0 && $j == 0) { array_push($maze[$i], "S"); } else { if ($i == $dim - 1 && $j == $dim - 1) { array_push($maze[$i], "G"); } else { array_push($maze[$i], "" . intval(floor(rand(0, 8) / 8))); } //make sure that the start is in the upper left corner and the goal is at the lower right corner } } } return $maze; } $maze = generate_maze($d); function calc_h($i, $j, $add, $dim, $maze) { // echo "<script>alert('hit! i=$i, j=$j, h=$h, g=$g');</script>"; $h = $add + 1; $g = $dim * 2 - $i - $j - 2; $maze[$i][$j] = $h + $g; $res = array('i' => $i, 'j' => $j, 'h' => $h, 'g' => $g); return $res; } function fetch_children($m, $n, $add, $maze, $dim, $visited) { // if ($m-1>0 && $maze[$m-1][$n]==0) array_push($visited, calc_h($m-1,$n,$add, $dim, $maze)); // if ($m-1>0 && $n-1>0 && $maze[$m-1][$n-1]==0) array_push($visited, calc_h($m-1,$n-1,$add, $dim, $maze)); // if ($n-1>0 && $maze[$m][$n-1]==0) array_push($visited, calc_h($m,$n-1,$add, $dim, $maze)); // if ($m-1>0 && $n+1<$dim && $maze[$m-1][$n+1]==0) array_push($visited, calc_h($m-1,$n+1,$add, $dim, $maze));