欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

PHP樹的深度編歷生成迷宮及A*自動尋路算法實例分析_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:PHP實現扎金花游戲之大小比賽的方法
這篇文章主要介紹了PHP實現扎金花游戲之大小比賽的方法,實例分析了扎金花游戲的實現原理與相關算法技巧,具有一定參考借鑒價值,需要的朋友可以參考下 本文實例講述了PHP實現扎金花游戲之大小比賽的方法。分享給大家供大家參考。具體分析如下: 程序離不開算法,前面討論

 這篇文章主要介紹了PHP樹的深度編歷生成迷宮及A*自動尋路算法,實例分析了php實現A*尋路算法的技巧,具有一定參考借鑒價值,需要的朋友可以參考下

   

本文實例講述了PHP樹的深度編歷生成迷宮及A*自動尋路算法。分享給大家供大家參考。具體分析如下:

有一同事推薦了三思的迷宮算法,看了感覺還不錯,就轉成php
三思的迷宮算法是采用樹的深度遍歷原理,這樣生成的迷宮相當的細,而且死胡同數量相對較少!
任意兩點之間都存在唯一的一條通路。

至于A*尋路算法是最大眾化的一全自動尋路算法

廢話不多說,貼上帶代碼

迷宮生成類:

代碼如下: class Maze{
// Maze Create
private $_w;
private $_h;
private $_grids;
private $_walkHistory;
private $_walkHistory2;
private $_targetSteps;
// Construct
public function Maze() {
$this->_w = 6;
$this->_h = 6;
$this->_grids = array();
}
// 設置迷宮大小
public function set($width = 6, $height = 6) {
if ( $width > 0 ) $this->_w = $width;
if ( $height > 0 ) $this->_h = $height;
return $this;
}
// 取到迷宮
public function get() {
return $this->_grids;
}
// 生成迷宮
public function create() {
$this->_init();
return $this->_walk(rand(0, count($this->_grids) -1 ));
}
// 獲取死胡同點
public function block($n = 0, $rand = false) {
$l = count($this->_grids);
for( $i = 1; $i < $l; $i++ ) {
$v = $this->_grids[$i];
if ( $v == 1 || $v == 2 || $v == 4 || $v == 8 ) {
$return[] = $i;
}
}
// 隨機取點
if ( $rand ) shuffle($return);

if ( $n == 0 ) return $return;

if ( $n == 1 ) {
return array_pop($return);
} else {
return array_slice($return, 0, $n);
}
}
/**
|---------------------------------------------------------------
| 生成迷宮的系列函數
|---------------------------------------------------------------
*/
private function _walk($startPos) {
$this->_walkHistory = array();
$this->_walkHistory2 = array();
$curPos = $startPos;
while ($this->_getNext0() != -1) {
$curPos = $this->_step($curPos);
if ( $curPos === false ) break;
}
return $this;
}
private function _getTargetSteps($curPos) {
$p = 0;
$a = array();
$p = $curPos - $this->_w;
if ($p > 0 && $this->_grids[$p] === 0 && ! $this->_isRepeating($p)) {
array_push($a, $p);
} else {
array_push($a, -1);
}
$p = $curPos + 1;
if ($p % $this->_w != 0 && $this->_grids[$p] === 0 && ! $this->_isRepeating($p)) {
array_push($a, $p);
} else {
array_push($a, -1);
}
$p = $curPos + $this->_w;
if ($p < count($this->_grids) && $this->_grids[$p] === 0 && ! $this->_isRepeating($p)) {
array_push($a, $p);
} else {
array_push($a, -1);
}
$p = $curPos - 1;
if (($curPos % $this->_w) != 0 && $this->_grids[$p] === 0 && ! $this->_isRepeating($p)) {
array_push($a, $p);
} else {
array_push($a, -1);
}
return $a;
}
private function _noStep() {
$l = count($this->_targetSteps);
for ($i = 0; $i < $l; $i ++) {
if ($this->_targetSteps[$i] != -1) return false;
}
return true;
}
private function _step($curPos) {
$this->_targetSteps = $this->_getTargetSteps($curPos);
if ( $this->_noStep() ) {
if ( count($this->_walkHistory) > 0 ) {
$tmp = array_pop($this->_walkHistory);
} else {
return false;
}
array_push($this->_walkHistory2, $tmp);
return $this->_step($tmp);
}
$r = rand(0, 3);
while ( $this->_targetSteps[$r] == -1) {
$r = rand(0, 3);
}
$nextPos = $this->_targetSteps[$r];
$isCross = false;
if ( $this->_grids[$nextPos] != 0)
$isCross = true;
if ($r == 0) {
$this->_grids[$curPos] ^= 1;
$this->_grids[$nextPos] ^= 4;
} elseif ($r == 1) {
$this->_grids[$curPos] ^= 2;
$this->_grids[$nextPos] ^= 8;
} elseif ($r == 2) {
$this->_grids[$curPos] ^= 4;
$this->_grids[$nextPos] ^= 1;
} elseif ($r == 3) {
$this->_grids[$curPos] ^= 8;
$this->_grids[$nextPos] ^= 2;
}
array_push($this->_walkHistory, $curPos);
return $isCross ? false : $nextPos;
}
private function _isRepeating($p) {
$l = count($this->_walkHistory);
for ($i = 0; $i < $l; $i ++) {
if ($this->_walkHistory[$i] == $p) return true;
}
$l = count($this->_walkHistory2);
for ($i = 0; $i < $l; $i ++) {
if ($this->_walkHistory2[$i] == $p) return true;
}
return false;
}
private function _getNext0() {
$l = count($this->_grids);

for ($i = 0; $i <= $l; $i++ ) {
if ( $this->_grids[$i] == 0) return $i;
}
return -1;
}
private function _init() {
$this->_grids = array();
for ($y = 0; $y < $this->_h; $y ++) {
for ($x = 0; $x < $this->_w; $x ++) {
array_push($this->_grids, 0);
}
}
return $this;
}
}

 

分享:php獲取本周開始日期和結束日期的方法
這篇文章主要介紹了php獲取本周開始日期和結束日期的方法,實例分析了php操作日期的技巧,具有一定參考借鑒價值,需要的朋友可以參考下 本文實例講述了php獲取本周開始日期和結束日期的方法。分享給大家供大家參考。具體如下: 代碼如下://當前日期 $sdefaultDate = date(

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:PHP教程/更新時間:2015-03-11
相關PHP教程
在线亚洲午夜片av大片| 国模娜娜一区二区三区| 黄色一区二区在线| 91tv亚洲精品香蕉国产一区7ujn| 91视频最新入口| 7799精品视频天天看| 日本一区二区高清不卡| 自拍偷拍欧美精品| 久久人人97超碰精品888| 成年网站在线免费观看| 在线免费观看一区二区| 欧美韩日精品| 欧美性猛交xxxx富婆| 国产精品人人做人人爽| 午夜激情影院在线观看| 范冰冰一级做a爰片久久毛片| 亚洲尤物在线| 欧美喷潮久久久xxxxx| 成人午夜电影免费在线观看| 久久丫精品国产亚洲av不卡| 天堂久久一区| ww久久中文字幕| 久久久国产一区| 欧美日韩性生活片| 亚洲天堂中文在线| 99视频精品免费观看| 欧美日韩大陆一区二区| 国产视频不卡| 免费精品在线视频| 美女福利一区| 亚洲婷婷综合色高清在线| 国内精品免费午夜毛片| 中国黄色片一级| 日韩中文影院| 成人免费三级在线| 久久在线免费观看视频| 国产日韩成人内射视频| 亚洲毛片在线播放| 激情深爱一区二区| 亚洲精品一区二三区不卡| 一级黄色片播放| 国产视频1区2区| 亚洲区第一页| 欧美成人一区二区三区| 亚洲日本japanese丝袜| 国产精品久久久久久人| 在线精品福利| 日韩一区二区三区免费看| 日韩妆和欧美的一区二区| 伊人久久综合视频| 国内自拍视频一区二区三区| 在线播放欧美女士性生活| 欧美成ee人免费视频| 日本亚洲色大成网站www久久| 中文不卡在线| 欧美丰满一区二区免费视频| 日韩欧美在线电影| 99久热在线精品996热是什么| 欧美午夜视频| 欧美一级片免费看| 伊人狠狠色丁香综合尤物| 姑娘第5集在线观看免费好剧| 一本一本久久| 亚洲高清福利视频| 国产女主播自拍| 亚洲第一天堂影院| 成人看片黄a免费看在线| 久久国产加勒比精品无码| 91亚洲免费视频| 亚洲伊人精品酒店| 国产精品久久久久久久第一福利 | 91影院在线免费观看| 欧美精品videos另类日本| 在线观看一区二区三区视频| 亚洲高清在线一区| 亚洲第一福利一区| 欧美精品国产精品久久久| 久久人妻免费视频| 日本在线播放一区二区三区| 在线午夜精品自拍| 亚洲欧美一区二区三区不卡| 中文字幕久久精品一区二区| 性欧美疯狂xxxxbbbb| 久久精品丝袜高跟鞋| 日本视频免费观看| 精品亚洲国产成人av制服丝袜 | 欧美一区视频在线| 无码人妻aⅴ一区二区三区69岛| heyzo久久| 在线成人免费视频| 日韩美女爱爱视频| 免费电影日韩网站| 国产精品久久久久久久久久免费看 | 日韩高清一级| 精品国产31久久久久久| 成人免费视频网| 91香蕉视频污在线观看| 杨幂一区二区三区免费看视频| 欧美性xxxx在线播放| 欧美精品二区三区四区免费看视频| 久久久久亚洲av成人毛片韩| 久久久成人网| 亚洲欧美www| 99久久国产宗和精品1上映| 日本肉肉一区| 亚洲啪啪综合av一区二区三区| 国产精品免费观看在线| 男人天堂av电影| 青青草成人影院| 欧美日韩国产美女| 欧美国产视频一区| 国产高中女学生第一次| 99久久99久久精品国产片果冻| 欧美亚洲国产视频小说| 免费一级做a爰片久久毛片潮| 国产精品久久久久久影院8一贰佰| 欧美精品亚洲一区二区在线播放| 免费日韩在线观看| 无码精品黑人一区二区三区 | 久久久久天天天天| 青青艹在线观看| 国产91精品露脸国语对白| 2019亚洲日韩新视频| 国产精品成人无码免费| 一区二区三区午夜探花| 亚洲精品91美女久久久久久久| 亚洲色精品三区二区一区| 免费观看性欧美大片无片| 亚洲欧美日韩精品久久久久| 91九色国产视频| 黄色在线免费观看| 日韩—二三区免费观看av| 欧美理论电影在线观看| 岛国av免费观看| 999精品色在线播放| 精品久久久久久久久久久久久久久 | 久久字幕精品一区| 欧美岛国在线观看| 99热成人精品热久久66| 在线精品自拍| 欧美亚洲一区二区在线| 日韩精品综合在线| 国产精品天堂蜜av在线播放| 国产精品久久毛片| 精品国产电影| 国产黄色免费大片| 91视频一区二区三区| 日本精品视频在线| 久久综合加勒比| 国产在线麻豆精品观看| 国产成人精品一区二区| 久久久久久久久97| 激情文学综合插| 国产国语videosex另类| 农村妇女精品一区二区| 美女一区二区久久| 2020国产精品视频| 国产亚洲精久久久久久无码77777| 蜜臀久久99精品久久久久宅男| 欧美激情视频在线观看| 一级性生活免费视频| 日韩高清中文字幕一区| 88xx成人精品| 天天干天天舔天天操| 老鸭窝毛片一区二区三区| 久久久久久久久久av| 国产精品视频一区二区三| 国产精品亚洲产品| 日韩在线高清视频| 欧美成人国产精品一区二区| 亚洲专区一区| 91精品国产亚洲| 香蕉免费毛片视频| 国产一区二区三区国产| 国产欧美日韩精品在线观看| 夜夜爽妓女8888视频免费观看| 99国产精品99久久久久久| 国产精品.com| 人人妻人人玩人人澡人人爽| 亚洲国产成人av网| 制服诱惑一区| 污污的视频网站在线观看| 精品国产乱码久久久久久天美| 青青草国产精品视频| 精品久久对白| 日韩精品视频在线播放| 亚洲国产精品成人综合久久久| 综合激情视频| 日韩最新免费不卡| 国产午夜手机精彩视频| 国产精品一二一区| 亚洲xxx大片| 丰满大乳国产精品| 午夜国产精品一区| 亚洲自偷自拍熟女另类| 成人搞黄视频| 国产美女撒尿一区二区| 五月婷婷激情综合网| 国产日产欧美视频| 精品一区av| 久久精品99国产精品酒店日本| 九九热最新地址| 国产精品亚洲一区二区三区在线 | 日韩有码欧美| 日韩一区二区三区av| 9191在线视频| 亚洲一区二区三区四区五区午夜| 欧美国产日韩在线| 日本在线一级片| av一区二区久久| 免费h精品视频在线播放| 国产精品麻豆成人av电影艾秋| 国产色一区二区| 国产乱人伦精品一区二区在线观看| 欧美精品一区二| aaaaaaaa毛片| 一区二区日韩免费看| 国产成人一区二| 99久久精品国产色欲| 精品福利在线视频| 久久久精品高清| 一本色道精品久久一区二区三区| 8090成年在线看片午夜| 亚洲视频一区在线播放| 亚洲一二三区视频在线观看| 丁香啪啪综合成人亚洲| 欧美成人69| 日韩女在线观看| 中文字幕乱码在线观看| 亚洲午夜在线观看视频在线| 日韩毛片在线免费看| 欧美色图首页| 国产精品视频久久久久| 人妻偷人精品一区二区三区| 日韩欧美在线视频日韩欧美在线视频 | 欧美精品aⅴ在线视频| 天天操天天干天天做| 99国产精品| 成人免费视频网| 亚洲人免费短视频| 精品国产乱码久久久久久图片| 天天操天天干天天操天天干| 国产一区二区在线视频| 精品蜜桃传媒| 日韩成人影音| 91麻豆精品国产91久久久使用方法| 波多野结衣a v在线| 成人aa视频在线观看| 黑人巨大国产9丨视频| 国产成人一区| 国语自产精品视频在免费| 久久久久久久亚洲| 一区二区久久久久| 亚洲精品免费一区亚洲精品免费精品一区 | 婷婷综合在线| 性色av一区二区三区| www.97超碰| 欧美群妇大交群中文字幕| 亚洲熟妇一区二区三区| 国产精品一卡二卡在线观看| 一本色道久久99精品综合| 国产精品亚洲人成在99www| 不卡av电影院| 国产精品久久久久久无人区| 欧美丝袜自拍制服另类| 日韩精品一区二| 激情视频综合网| 欧美日韩调教| 91久久综合亚洲鲁鲁五月天| ww久久综合久中文字幕| 亚洲欧洲国产一区| 美女精品久久久| 欧美无砖专区免费| 久久久久久免费视频| 久久精品99久久久久久久久| 97人妻一区二区精品免费视频| 欧美四级电影在线观看| 538精品视频| 99re成人精品视频| 欧美 日韩 国产在线观看| 亚洲综合色站| 波多野结衣久草一区| 午夜久久av| 欧美激情va永久在线播放| 国产精品羞羞答答在线| 51精品视频一区二区三区| 在线视频这里只有精品| 中文字幕永久在线不卡| www.色欧美| 国产麻豆成人传媒免费观看| 男女爱爱视频网站| 韩日成人在线| 国产精品久久久久久免费观看| 欧美高清你懂的| 久久精品这里热有精品| 中文字幕欧美色图| 一区二区三区日| 精品久久久一区二区| 免费黄色在线视频| 欧美国产1区2区| 婷婷激情综合五月天| 成人精品视频一区二区三区| 日日摸日日碰夜夜爽无码| 天使萌一区二区三区免费观看| 亚洲高清123| 中文字幕人成人乱码| 国产日韩欧美一区二区三区四区| 精品一区三区| 国产精品丝袜久久久久久不卡| 国产精品美女久久久久人| 欧美激情视频一区二区三区不卡| 亚洲精品mv| xvideos亚洲人网站| 中文字幕精品无码亚| 在线电影院国产精品| 日本特黄一级片| 日本道免费精品一区二区三区| 懂色av粉嫩av浪潮av| 一区二区三区蜜桃| 潘金莲一级淫片aaaaaaa| 久久综合中文字幕| 日韩av自拍偷拍| 97精品电影院| 免费黄频在线观看| 国产91精品在线观看| 免费看黄色一级大片| 国产aⅴ精品一区二区三区色成熟| av 日韩 人妻 黑人 综合 无码| 午夜在线精品| 日韩不卡一二区| 国产一区久久| 国产女同互慰高潮91漫画| 国产日韩成人精品| 国产经典一区二区三区| 九九久久精品| 国产精品视频自在线| 老司机精品视频在线播放| 97超碰国产精品女人人人爽| 久九九久频精品短视频| 欧美美女15p| 成人黄色免费网站| 136fldh精品导航福利| 欧美精选视频一区二区| 久久久久久久电影一区| 国外成人福利视频| 欧美亚洲另类在线| 99热这里只有精品首页| 日韩av色综合| 青青一区二区| 国产精品美女久久久免费| 窝窝社区一区二区| 国产精品乱码视频| **女人18毛片一区二区| 九九九九精品| 一区精品久久| 中文字幕精品在线播放| 美女视频网站久久| 欧洲av无码放荡人妇网站| 国产成人自拍在线| 青青青国产在线视频| 久久久噜噜噜久久中文字幕色伊伊| 韩国三级hd两男一女| 亚洲综合免费观看高清在线观看| 91中文字幕永久在线| 欧美午夜激情小视频| 欧美日韩精品一区二区三区视频播放| 欧美日韩日日骚| a片在线免费观看| 影音先锋日韩有码| 激情亚洲影院在线观看| 欧美制服第一页| 精品淫伦v久久水蜜桃| 国产精品精品软件视频| 黄色成人91| 午夜探花在线观看| 国产一区二区按摩在线观看| 色七七在线观看| 国产精品久久久久一区二区三区共| 欧洲性xxxx| 555www色欧美视频| 国产婷婷在线视频| 精品国产一区二区三区久久久狼| 视频欧美精品| 91久久久在线| 国产字幕视频一区二区| 国产精品久久久久久久乖乖| 国产一区二区视频在线播放| www.污网站| 一区二区三区美女| 在线看成人av| 亚洲欧美国产精品专区久久| 亚洲www.| 国产精品免费视频久久久| 免费av一区| 夜夜爽www精品| 麻豆久久一区二区| 最新免费av网址| 亚洲一二三专区| 国产一级做a爰片在线看免费| 日韩精品视频免费在线观看|