Exemplo n.º 1
0
            }
            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 />
Exemplo n.º 2
0
        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));