Esempio n. 1
0
<?php

error_reporting(E_ALL ^ E_NOTICE);
require 'Maze.php';
require 'AStar.php';
$maze = new Maze();
$aStar = new AStar();
$w = $_POST['w'] ? $_POST['w'] : 6;
// 迷宫宽
$h = $_POST['h'] ? $_POST['h'] : 6;
// 迷宫高
$maze->set($w, $h);
$maze->create();
$grids = $maze->get();
// 寻路
$aStar->set($w, $h, $grids);
$path = $aStar->search(0, $w * $h - 1);
// 从零开始找到35
// 画迷宫方法
function div($x, $y, $v)
{
    global $w, $h, $path;
    //if ( $y > 4 ) $v = 0;
    $k = $y * $w + $x;
    //if ( array_key_exists($k, $this->_enable) ) {
    //echo "<div class=\"grid cell_enable_{$this->_enable[$k]}\" style=\"";
    //} else {
    echo "<div class=\"grid cell_{$v}\" style=\"";
    //}
    echo 'top:' . 34 * $y . 'px;';
    echo 'left:' . 34 * $x . 'px;';
Esempio n. 2
0
 static function search($source, $target, &$routes)
 {
     $star = new AStar($routes);
     return $star->findCheapestRoute($source, $target);
 }
Esempio n. 3
0
<?php

require "astar.php";
$paths = array(array("Таганрог", "Ростов", 110), array("Ростов", "Новочеркасск", 50), array("Неклиновка", "Таганрог", 23), array("Ростов", "Самбек", 70), array("Ростов", "Москва", 1000), array("Питер", "Москва", 1300), array("Питер", "Таганрог", 2500), array("Самбек", "Таганрог", 30));
$result = AStar::search("Таганрог", "Питер", $paths);
// var_dump($result);
print "Цена вопроса: " . $result['price'];
print "Путь: " . implode(" -> ", $result['route']);