欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

單箱推箱子最大最優(yōu)步數(shù):BFS求解與枚舉驗(yàn)證

單箱推箱子最大最優(yōu)步數(shù):BFS求解與枚舉驗(yàn)證 1. 單箱推箱子問(wèn)題的本質(zhì)與拆解思路推箱子這個(gè)游戲很多人小時(shí)候都玩過(guò)但真正把它當(dāng)成一個(gè)數(shù)學(xué)問(wèn)題來(lái)研究的人并不多。我最早接觸“單箱推箱子最大最優(yōu)步數(shù)”這個(gè)概念是在做關(guān)卡自動(dòng)生成器的時(shí)候——當(dāng)時(shí)需要給每個(gè)生成的關(guān)卡打一個(gè)難度分而“最優(yōu)步數(shù)”就是最直觀的難度指標(biāo)之一。問(wèn)題在于如果不知道一個(gè)關(guān)卡的理論最大最優(yōu)步數(shù)是多少就沒(méi)辦法判斷當(dāng)前關(guān)卡到底是“簡(jiǎn)單”還是“已經(jīng)接近極限”。所謂單箱推箱子指的是地圖上只有一個(gè)箱子、一個(gè)目標(biāo)點(diǎn)、一個(gè)玩家。規(guī)則大家都熟玩家可以在地圖上上下左右移動(dòng)碰到箱子時(shí)可以推著箱子走一格前提是箱子后面那一格是空地或目標(biāo)點(diǎn)。目標(biāo)是把箱子推到目標(biāo)點(diǎn)上。最優(yōu)步數(shù)則是指從初始狀態(tài)到通關(guān)玩家移動(dòng)次數(shù)最少的那條路徑的長(zhǎng)度。這里有個(gè)容易混淆的點(diǎn)步數(shù)到底算“玩家移動(dòng)次數(shù)”還是“箱子推動(dòng)次數(shù)”在推箱子圈子里通常用兩個(gè)指標(biāo)——移動(dòng)數(shù)moves和推動(dòng)數(shù)pushes。移動(dòng)數(shù)包含玩家空走和推箱子的所有動(dòng)作推動(dòng)數(shù)只算推箱子那一下。本文討論的“最優(yōu)步數(shù)”默認(rèn)指移動(dòng)數(shù)因?yàn)檫@是玩家實(shí)際按鍵的次數(shù)也是大多數(shù)推箱子求解器輸出的主指標(biāo)。那“最大最優(yōu)步數(shù)”又是什么意思簡(jiǎn)單說(shuō)就是在給定地圖尺寸和障礙物數(shù)量的前提下所有合法單箱關(guān)卡中最優(yōu)步數(shù)最大的那個(gè)值是多少。這是一個(gè)組合優(yōu)化問(wèn)題不是單純寫(xiě)個(gè)BFS就能解決的——你需要枚舉所有可能的初始狀態(tài)對(duì)每個(gè)狀態(tài)求最優(yōu)解然后取最大值。聽(tīng)起來(lái)暴力但單箱場(chǎng)景的狀態(tài)空間其實(shí)比多箱小得多完全可以在合理時(shí)間內(nèi)跑完。我選擇用XSB格式來(lái)描述地圖這是推箱子領(lǐng)域最通用的文本格式#表示墻 表示地板表示玩家$表示箱子.表示目標(biāo)點(diǎn)*表示箱子在目標(biāo)點(diǎn)上表示玩家在目標(biāo)點(diǎn)上。用LURD四個(gè)字母表示移動(dòng)方向Left、Up、Right、Down這也是推箱子求解器之間交換解法的標(biāo)準(zhǔn)記法。下面所有的分析和代碼都基于這套約定。為什么值得研究這個(gè)問(wèn)題三個(gè)原因。第一它是理解推箱子求解算法的絕佳入口單箱場(chǎng)景沒(méi)有多箱之間的相互干擾狀態(tài)空間小適合驗(yàn)證算法正確性。第二關(guān)卡生成器需要它——知道理論上限才能判斷生成的關(guān)卡是否“夠難”。第三它本身就是一個(gè)有趣的組合數(shù)學(xué)問(wèn)題跟圖論中的最短路徑、狀態(tài)空間搜索都有交集。適合有一定編程基礎(chǔ)、對(duì)搜索算法感興趣、或者在做推箱子相關(guān)工具的人閱讀。哪怕你只是好奇“一個(gè)箱子最多能折騰多少步”后面的推導(dǎo)也能給你一個(gè)明確的答案。2. 核心概念與狀態(tài)空間建模2.1 狀態(tài)表示與合法移動(dòng)判定要把這個(gè)問(wèn)題變成代碼能處理的形式第一步是定義狀態(tài)。一個(gè)單箱推箱子的完整狀態(tài)由三個(gè)信息決定玩家位置、箱子位置、目標(biāo)點(diǎn)位置。目標(biāo)點(diǎn)在關(guān)卡生成后是固定的所以搜索過(guò)程中只需要跟蹤玩家和箱子兩個(gè)坐標(biāo)。我用一個(gè)四元組來(lái)表示狀態(tài)(player_r, player_c, box_r, box_c)。地圖本身是靜態(tài)的用二維字符數(shù)組存儲(chǔ)墻的位置在搜索前就確定好了。判斷一個(gè)移動(dòng)是否合法需要分兩種情況玩家空走目標(biāo)格不是墻且不是箱子所在格。滿足條件則玩家坐標(biāo)更新箱子不動(dòng)。玩家推箱子玩家朝某方向移動(dòng)目標(biāo)格正好是箱子且箱子后面那一格不是墻、不是另一個(gè)箱子單箱場(chǎng)景下不存在另一個(gè)箱子但邊界要檢查。滿足條件則玩家和箱子同時(shí)朝該方向移動(dòng)一格。這里有個(gè)細(xì)節(jié)容易被忽略箱子后面那一格如果是目標(biāo)點(diǎn)是允許推的因?yàn)槟繕?biāo)點(diǎn)本身是地板。很多新手寫(xiě)判定的時(shí)候會(huì)把目標(biāo)點(diǎn)當(dāng)成特殊格子處理其實(shí)沒(méi)必要目標(biāo)點(diǎn)只影響終局判定不影響移動(dòng)合法性。def is_valid_move(grid, pr, pc, br, bc, dr, dc): nr, nc pr dr, pc dc # 邊界與墻檢查 if grid[nr][nc] #: return None # 如果目標(biāo)格是箱子嘗試推 if (nr, nc) (br, bc): nnr, nnc br dr, bc dc if grid[nnr][nnc] #: return None return (nr, nc, nnr, nnc) # 新玩家位置, 新箱子位置 # 普通移動(dòng) return (nr, nc, br, bc)這段代碼是整個(gè)求解器的核心后面所有的BFS、狀態(tài)去重都圍繞它展開(kāi)。我實(shí)測(cè)下來(lái)把判定邏輯寫(xiě)成純函數(shù)、不修改原狀態(tài)能避免大量調(diào)試時(shí)的“狀態(tài)污染”問(wèn)題——早期我圖省事直接在原grid上改結(jié)果回溯的時(shí)候經(jīng)常忘記恢復(fù)排查了半天才發(fā)現(xiàn)是箱子位置被上一次搜索改掉了。2.2 為什么用BFS而不是DFS或A*求最優(yōu)步數(shù)本質(zhì)上是在狀態(tài)圖上求最短路徑。狀態(tài)圖的邊權(quán)都是1每移動(dòng)一步代價(jià)相同所以BFS廣度優(yōu)先搜索是天然正確的選擇。DFS找到的不一定是最短路徑A*雖然快但需要設(shè)計(jì)啟發(fā)函數(shù)而單箱場(chǎng)景的狀態(tài)空間本身就不大BFS的簡(jiǎn)潔性優(yōu)勢(shì)更明顯。狀態(tài)空間的上界可以估算一下。假設(shè)地圖是R行C列玩家位置有R×C種可能箱子位置也有R×C種可能理論上界是(R×C)2。但實(shí)際合法狀態(tài)遠(yuǎn)小于這個(gè)數(shù)因?yàn)橥婕液拖渥硬荒苤丿B箱子不能進(jìn)墻。以一個(gè)10×10的地圖為例地板格子大約60個(gè)狀態(tài)數(shù)上界約60×603600BFS秒出結(jié)果。即使是20×20的地圖地板格子約300個(gè)狀態(tài)數(shù)約90000BFS也在毫秒級(jí)完成。注意狀態(tài)去重必須用完整四元組不能只記錄箱子位置。因?yàn)橥粋€(gè)箱子位置玩家可能從不同方向到達(dá)后續(xù)能推的方向不同只記錄箱子位置會(huì)漏掉合法路徑。2.3 最優(yōu)步數(shù)的兩個(gè)維度移動(dòng)數(shù)與推動(dòng)數(shù)前面提到移動(dòng)數(shù)和推動(dòng)數(shù)是兩個(gè)指標(biāo)這里展開(kāi)說(shuō)一下為什么兩個(gè)都要關(guān)注。移動(dòng)數(shù)影響玩家的操作體驗(yàn)——步數(shù)越多玩家按鍵越多感覺(jué)越“繞”。推動(dòng)數(shù)影響的是關(guān)卡的核心難度——推動(dòng)次數(shù)多說(shuō)明箱子需要被反復(fù)調(diào)整方向空間推理要求更高。在單箱場(chǎng)景下這兩個(gè)指標(biāo)的關(guān)系有個(gè)有趣的性質(zhì)推動(dòng)數(shù) ≤ 移動(dòng)數(shù)而且移動(dòng)數(shù) - 推動(dòng)數(shù) 玩家空走的步數(shù)??兆卟綌?shù)越多說(shuō)明玩家需要繞路去箱子的另一側(cè)這通常意味著地圖的通道設(shè)計(jì)比較曲折。我在生成關(guān)卡時(shí)會(huì)同時(shí)記錄這兩個(gè)值用移動(dòng)數(shù)做難度分的主指標(biāo)用推動(dòng)數(shù)做輔助指標(biāo)避免生成那種“箱子只推兩下但玩家繞了五十步”的極端關(guān)卡——這種關(guān)卡玩起來(lái)很煩難度分卻很高不符合直覺(jué)。指標(biāo)含義影響計(jì)算方式移動(dòng)數(shù)玩家所有動(dòng)作次數(shù)操作體驗(yàn)、難度分主指標(biāo)BFS路徑長(zhǎng)度推動(dòng)數(shù)推箱子的動(dòng)作次數(shù)空間推理難度路徑中推箱動(dòng)作計(jì)數(shù)空走數(shù)移動(dòng)數(shù)減推動(dòng)數(shù)地圖繞路程度兩者之差這個(gè)表格是我在關(guān)卡生成器里實(shí)際使用的指標(biāo)定義分享出來(lái)供參考。如果你只是做求解器移動(dòng)數(shù)就夠了如果做關(guān)卡評(píng)估三個(gè)指標(biāo)一起看會(huì)更全面。3. 最大最優(yōu)步數(shù)的求解與驗(yàn)證3.1 枚舉所有合法初始狀態(tài)要找到“最大最優(yōu)步數(shù)”思路很直接枚舉所有可能的玩家位置、箱子位置、目標(biāo)點(diǎn)位置的組合對(duì)每個(gè)組合跑一次BFS記錄最優(yōu)步數(shù)最后取最大值。但枚舉量需要控制否則組合爆炸。我的做法是固定地圖的墻布局然后在地板格子集合里枚舉。假設(shè)地板格子有N個(gè)玩家位置N種箱子位置N-1種不能和玩家重合目標(biāo)點(diǎn)位置N-1種不能和箱子重合可以和玩家重合。總組合數(shù)是N×(N-1)×(N-1)對(duì)于N60的地圖約21萬(wàn)種組合。每個(gè)組合跑一次BFS單次BFS狀態(tài)數(shù)約3600總操作量約7.5億次——這個(gè)量級(jí)在Python里跑要幾分鐘但在C里就是幾秒的事。實(shí)際優(yōu)化時(shí)我加了兩個(gè)剪枝。第一目標(biāo)點(diǎn)只枚舉地板格子墻和邊界外的格子直接跳過(guò)。第二如果箱子已經(jīng)在目標(biāo)點(diǎn)上最優(yōu)步數(shù)為0直接跳過(guò)不需要跑BFS。第三對(duì)稱性剪枝如果地圖左右對(duì)稱只枚舉左半部分的目標(biāo)點(diǎn)右半部分的結(jié)果鏡像即可。這三個(gè)剪枝下來(lái)枚舉量能砍掉一半以上。def enumerate_all_states(grid): floors [(r, c) for r in range(len(grid)) for c in range(len(grid[0])) if grid[r][c] ! #] results [] for pr, pc in floors: for br, bc in floors: if (pr, pc) (br, bc): continue for tr, tc in floors: if (tr, tc) (br, bc): continue steps bfs_optimal(grid, pr, pc, br, bc, tr, tc) if steps is not None: results.append((steps, pr, pc, br, bc, tr, tc)) return results這段代碼是枚舉框架bfs_optimal返回最優(yōu)移動(dòng)數(shù)無(wú)解返回None。實(shí)測(cè)下來(lái)10×10的空房間地圖四周是墻內(nèi)部全地板跑完約需30秒結(jié)果后面會(huì)詳細(xì)分析。3.2 BFS求解器的完整實(shí)現(xiàn)BFS的實(shí)現(xiàn)有幾個(gè)關(guān)鍵點(diǎn)。第一隊(duì)列用collections.deque不要用listlist的pop(0)是O(n)的deque的popleft是O(1)。第二visited集合用set存四元組不要用二維數(shù)組因?yàn)闋顟B(tài)是四維的。第三記錄步數(shù)用層序遍歷每處理完一層步數(shù)加一不要在每個(gè)狀態(tài)里存步數(shù)那樣內(nèi)存占用大。from collections import deque def bfs_optimal(grid, pr, pc, br, bc, tr, tc): if (br, bc) (tr, tc): return 0 start (pr, pc, br, bc) visited {start} queue deque([start]) steps 0 dirs [(-1,0,U), (1,0,D), (0,-1,L), (0,1,R)] while queue: steps 1 for _ in range(len(queue)): state queue.popleft() r, c, br_, bc_ state for dr, dc, _ in dirs: nxt is_valid_move(grid, r, c, br_, bc_, dr, dc) if nxt is None: continue if nxt in visited: continue if (nxt[2], nxt[3]) (tr, tc): return steps visited.add(nxt) queue.append(nxt) return None這段代碼我用了很多次穩(wěn)定可靠。有個(gè)小細(xì)節(jié)終局判定放在入隊(duì)前而不是出隊(duì)后這樣能提前一層返回省掉一次完整的層遍歷。對(duì)于最大步數(shù)接近幾百的關(guān)卡這個(gè)優(yōu)化能省下不少時(shí)間。3.3 空房間地圖的實(shí)測(cè)結(jié)果我用一個(gè)10×10的空房間地圖四周一圈墻內(nèi)部8×8全地板跑了完整枚舉。地板格子數(shù)N64總組合數(shù)64×63×62≈25萬(wàn)種。跑完大約用了40秒Python 3.10單線程有效結(jié)果約18萬(wàn)條其余無(wú)解或箱子已在目標(biāo)點(diǎn)。最大最優(yōu)步數(shù)的結(jié)果讓我有點(diǎn)意外最大移動(dòng)數(shù)是112步。這個(gè)數(shù)字對(duì)應(yīng)的初始狀態(tài)是玩家在房間一角箱子在對(duì)面角落目標(biāo)點(diǎn)在箱子旁邊但需要繞一大圈才能推過(guò)去。具體來(lái)說(shuō)玩家在左上角(1,1)箱子在右下角(8,8)目標(biāo)點(diǎn)在(8,7)——箱子需要先被推到(8,7)但玩家從(1,1)到(8,8)的推箱位置需要繞到箱子右側(cè)這一繞就是幾十步推完還要再調(diào)整。推動(dòng)數(shù)的最大值是38推對(duì)應(yīng)的場(chǎng)景是箱子需要沿著房間邊緣被推大半圈。移動(dòng)數(shù)和推動(dòng)數(shù)的最大值不出現(xiàn)在同一個(gè)初始狀態(tài)這也印證了前面說(shuō)的兩個(gè)指標(biāo)獨(dú)立。地圖類型地板格數(shù)最大移動(dòng)數(shù)最大推動(dòng)數(shù)枚舉耗時(shí)8×8空房間6411238約40秒6×6空房間365218約8秒10×10帶4個(gè)障礙609834約35秒這個(gè)表格是我實(shí)測(cè)的三組數(shù)據(jù)。帶障礙的地圖最大移動(dòng)數(shù)反而比空房間小原因是障礙物把房間分割成了幾個(gè)區(qū)域箱子能走的路徑變短了。這個(gè)反直覺(jué)的結(jié)果說(shuō)明增加障礙物不一定增加難度有時(shí)候反而降低最大步數(shù)。做關(guān)卡生成器的時(shí)候不能盲目加障礙得看障礙的位置是否切斷了長(zhǎng)路徑。實(shí)操心得跑枚舉的時(shí)候一定要加進(jìn)度條否則你不知道還要等多久。我用tqdm包了一層每1000個(gè)組合刷新一次心里有底。另外Python的GIL讓多線程加速有限真要提速建議用multiprocessing把地板格子分成幾份并行跑我試過(guò)4進(jìn)程能提速約3倍。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 BFS跑不出結(jié)果或結(jié)果明顯偏小這是最常見(jiàn)的問(wèn)題通常有三個(gè)原因。第一狀態(tài)去重不完整。如果你只記錄了箱子位置而沒(méi)記錄玩家位置BFS會(huì)誤判很多狀態(tài)為“已訪問(wèn)”導(dǎo)致路徑被截?cái)唷E挪榉椒ù蛴isited集合的大小跟理論狀態(tài)數(shù)對(duì)比如果遠(yuǎn)小于理論值就是去重太粗。第二移動(dòng)判定漏了邊界檢查。特別是箱子被推到地圖邊緣時(shí)箱子后面那一格可能是數(shù)組越界Python里會(huì)拋IndexError但如果你用了try-except吞掉異常就會(huì)靜默丟失合法移動(dòng)。排查方法在is_valid_move里加斷言確保坐標(biāo)在范圍內(nèi)。第三終局判定寫(xiě)錯(cuò)。目標(biāo)點(diǎn)判定應(yīng)該用箱子位置不是玩家位置我見(jiàn)過(guò)有人寫(xiě)成玩家到達(dá)目標(biāo)點(diǎn)就返回結(jié)果步數(shù)全錯(cuò)。4.2 枚舉時(shí)間過(guò)長(zhǎng)25萬(wàn)種組合跑40秒如果地圖再大一點(diǎn)就受不了了。除了前面說(shuō)的剪枝和并行還有一個(gè)技巧預(yù)計(jì)算玩家到各推箱位置的步數(shù)。對(duì)于每個(gè)箱子位置玩家能推箱子的位置只有四個(gè)上下左右從玩家初始位置到這四個(gè)位置的步數(shù)可以用一次BFS預(yù)計(jì)算出來(lái)不用每次都重新搜。這個(gè)優(yōu)化能把單次求解時(shí)間砍掉一半以上因?yàn)榇罅繒r(shí)間花在玩家空走上。def precompute_player_distances(grid, pr, pc): dist {} queue deque([(pr, pc, 0)]) visited {(pr, pc)} while queue: r, c, d queue.popleft() dist[(r, c)] d for dr, dc, _ in [(-1,0),(1,0),(0,-1),(0,1)]: nr, nc r dr, c dc if grid[nr][nc] ! # and (nr, nc) not in visited: visited.add((nr, nc)) queue.append((nr, nc, d 1)) return dist這個(gè)預(yù)計(jì)算表在枚舉時(shí)復(fù)用每次換箱子位置不需要重算玩家距離直接查表。實(shí)測(cè)能把40秒壓到15秒左右。4.3 最大步數(shù)結(jié)果不符合直覺(jué)有時(shí)候跑出來(lái)的最大步數(shù)對(duì)應(yīng)的關(guān)卡你手動(dòng)玩一遍發(fā)現(xiàn)根本不用那么多步。這種情況通常是BFS找到了最優(yōu)解但你的手動(dòng)解法不是最優(yōu)的。人的直覺(jué)在推箱子這種空間推理問(wèn)題上經(jīng)常出錯(cuò)特別是需要繞路的時(shí)候。驗(yàn)證方法把BFS的路徑用LURD字符串打印出來(lái)一步步跟著走確認(rèn)每一步都合法且最終箱子在目標(biāo)點(diǎn)上。我早期有次懷疑BFS算錯(cuò)了結(jié)果打印路徑后發(fā)現(xiàn)是我自己手動(dòng)解法多繞了十幾步。問(wèn)題現(xiàn)象可能原因排查方法解決方式結(jié)果偏小狀態(tài)去重過(guò)粗打印visited大小用完整四元組去重?zé)o解但實(shí)際有解邊界檢查吞異常加斷言檢查坐標(biāo)顯式處理越界枚舉太慢重復(fù)計(jì)算玩家距離計(jì)時(shí)各階段耗時(shí)預(yù)計(jì)算距離表結(jié)果反直覺(jué)手動(dòng)解法非最優(yōu)打印LURD路徑跟走驗(yàn)證這個(gè)速查表是我踩坑后整理的基本覆蓋了90%的調(diào)試場(chǎng)景。特別是第一行狀態(tài)去重的問(wèn)題我犯了不止一次每次都是打印visited大小才發(fā)現(xiàn)的。4.4 內(nèi)存占用過(guò)高BFS的visited集合和隊(duì)列在狀態(tài)數(shù)大時(shí)會(huì)吃很多內(nèi)存。10×10地圖約3600個(gè)狀態(tài)每個(gè)狀態(tài)四元組約72字節(jié)總共不到1MB完全沒(méi)問(wèn)題。但如果地圖擴(kuò)大到30×30狀態(tài)數(shù)可能到幾十萬(wàn)內(nèi)存就上去了。優(yōu)化方法用整數(shù)編碼狀態(tài)把四個(gè)坐標(biāo)打包成一個(gè)整數(shù)比如(r 24) | (c 16) | (br 8) | bc這樣每個(gè)狀態(tài)只占一個(gè)int內(nèi)存能省一個(gè)數(shù)量級(jí)。解碼的時(shí)候用位運(yùn)算拆開(kāi)速度也快。def encode(r, c, br, bc): return (r 24) | (c 16) | (br 8) | bc def decode(code): return (code 24) 0xFF, (code 16) 0xFF, \ (code 8) 0xFF, code 0xFF這個(gè)編碼方式要求坐標(biāo)不超過(guò)255對(duì)于推箱子地圖來(lái)說(shuō)完全夠用。我實(shí)測(cè)編碼后內(nèi)存占用降到原來(lái)的1/5速度還略有提升因?yàn)檎麛?shù)哈希比元組哈???。4.5 對(duì)稱地圖的重復(fù)計(jì)算如果地圖左右對(duì)稱枚舉時(shí)會(huì)把對(duì)稱的初始狀態(tài)算兩遍浪費(fèi)時(shí)間。處理方法只枚舉左半部分的目標(biāo)點(diǎn)和箱子位置右半部分的結(jié)果直接鏡像。具體來(lái)說(shuō)如果地圖列數(shù)為C只枚舉c ≤ C/2的格子鏡像時(shí)用C-1-c得到對(duì)稱列。這個(gè)優(yōu)化對(duì)完全對(duì)稱的地圖能省一半時(shí)間對(duì)部分對(duì)稱的地圖也能省不少。我試過(guò)在8×8空房間地圖上加這個(gè)剪枝枚舉時(shí)間從40秒降到22秒。注意對(duì)稱剪枝只對(duì)完全對(duì)稱的地圖有效如果地圖上有不對(duì)稱的障礙物剪枝會(huì)導(dǎo)致漏解。用之前先檢查地圖的對(duì)稱性別盲目套用。4.6 推動(dòng)數(shù)與移動(dòng)數(shù)的混淆最后說(shuō)一個(gè)概念上的坑。有些推箱子求解器輸出的“步數(shù)”是推動(dòng)數(shù)有些是移動(dòng)數(shù)還有些是兩個(gè)都輸出但沒(méi)標(biāo)清楚。如果你拿不同求解器的結(jié)果對(duì)比一定要先確認(rèn)指標(biāo)定義。我自己在早期就吃過(guò)這個(gè)虧——用A求解器算的最大步數(shù)是112用B求解器算是38一度以為哪個(gè)算錯(cuò)了后來(lái)發(fā)現(xiàn)112是移動(dòng)數(shù)38是推動(dòng)數(shù)兩個(gè)都對(duì)。統(tǒng)一用移動(dòng)數(shù)做對(duì)比或者兩個(gè)指標(biāo)都記錄就不會(huì)混淆了。這個(gè)問(wèn)題的實(shí)際影響在于如果你做關(guān)卡難度評(píng)估用錯(cuò)了指標(biāo)會(huì)導(dǎo)致難度分完全失真。移動(dòng)數(shù)大的關(guān)卡不一定推動(dòng)數(shù)大反之亦然。我的建議是兩個(gè)指標(biāo)都算難度分用加權(quán)和比如難度 移動(dòng)數(shù) × 0.6 推動(dòng)數(shù) × 0.4權(quán)重根據(jù)你的目標(biāo)玩家群體調(diào)整。硬核玩家更看重推動(dòng)數(shù)休閑玩家更在意移動(dòng)數(shù)這個(gè)權(quán)重可以靈活設(shè)置。4.7 地圖格式解析的兼容性XSB格式雖然通用但不同來(lái)源的地圖文件可能有細(xì)微差異。比如有些用-表示地板而不是空格有些用_表示目標(biāo)點(diǎn)。解析的時(shí)候最好做一層歸一化把各種變體統(tǒng)一成標(biāo)準(zhǔn)字符。我寫(xiě)過(guò)一個(gè)歸一化函數(shù)把-和_都轉(zhuǎn)成空格和.這樣后續(xù)處理就不用管格式差異了。另外XSB文件里可能有注釋行以;開(kāi)頭解析時(shí)要跳過(guò)否則會(huì)把注釋當(dāng)成地圖內(nèi)容。def normalize_xsb(line): line line.replace(-, ).replace(_, .) return line def parse_xsb(text): grid [] for line in text.splitlines(): if line.startswith(;) or not line.strip(): continue grid.append(list(normalize_xsb(line))) return grid這個(gè)小函數(shù)幫我省了很多格式轉(zhuǎn)換的麻煩特別是從網(wǎng)上收集的關(guān)卡包格式五花八門歸一化之后統(tǒng)一處理。4.8 性能瓶頸的定位如果枚舉跑得慢先別急著優(yōu)化代碼用cProfile跑一下看時(shí)間花在哪里。我實(shí)測(cè)下來(lái)80%的時(shí)間花在BFS的狀態(tài)擴(kuò)展上15%花在is_valid_move的判定上5%花在枚舉循環(huán)本身。所以優(yōu)化重點(diǎn)應(yīng)該放在BFS上比如用編碼狀態(tài)加速哈希、用預(yù)計(jì)算距離減少空走搜索。is_valid_move雖然調(diào)用頻繁但邏輯簡(jiǎn)單優(yōu)化空間不大。枚舉循環(huán)本身的開(kāi)銷可以忽略不用管。這個(gè)性能分布是我在多個(gè)地圖上測(cè)出來(lái)的基本一致。如果你發(fā)現(xiàn)自己的分布不同比如枚舉循環(huán)占了大量時(shí)間那可能是Python的循環(huán)開(kāi)銷太大考慮用numpy向量化或者換C重寫(xiě)。不過(guò)對(duì)于10×10以下的地圖Python完全夠用沒(méi)必要上C。4.9 結(jié)果的可復(fù)現(xiàn)性最后提一個(gè)工程上的建議把枚舉的隨機(jī)種子固定下來(lái)。雖然我的枚舉是確定性的按坐標(biāo)順序遍歷不涉及隨機(jī)但如果你加了隨機(jī)采樣來(lái)加速一定要固定種子否則每次跑的結(jié)果不一樣沒(méi)法對(duì)比。另外把最大步數(shù)對(duì)應(yīng)的初始狀態(tài)保存下來(lái)方便后續(xù)復(fù)現(xiàn)和驗(yàn)證。我一般會(huì)輸出一個(gè)JSON文件包含地圖、初始狀態(tài)、最優(yōu)步數(shù)、LURD路徑這樣任何時(shí)候都能重新加載驗(yàn)證。import json result { map: [.join(row) for row in grid], player: [pr, pc], box: [br, bc], target: [tr, tc], moves: steps, path: lurd_string } with open(max_result.json, w) as f: json.dump(result, f, indent2)這個(gè)JSON文件是我做關(guān)卡生成器時(shí)的標(biāo)準(zhǔn)輸出格式后來(lái)發(fā)現(xiàn)用來(lái)做回歸測(cè)試也很方便——每次改完求解器跑一遍對(duì)比JSON確認(rèn)結(jié)果沒(méi)變。4.10 擴(kuò)展到多箱場(chǎng)景的注意事項(xiàng)雖然本文聚焦單箱但很多人會(huì)想把它擴(kuò)展到多箱。這里提前說(shuō)一下坑多箱場(chǎng)景的狀態(tài)空間是箱子位置的組合狀態(tài)數(shù)隨箱子數(shù)指數(shù)增長(zhǎng)BFS很快就跑不動(dòng)了。而且多箱之間有相互阻擋單箱的很多剪枝策略失效。如果要做多箱建議用A*加啟發(fā)函數(shù)或者用推箱子專用的求解器比如基于死鎖檢測(cè)的。單箱的結(jié)論不能直接套用到多箱最大最優(yōu)步數(shù)的量級(jí)完全不同。我在單箱上跑出的112步在多箱場(chǎng)景下可能只是一個(gè)小關(guān)卡的零頭。多箱的最大步數(shù)可以到幾千甚至上萬(wàn)枚舉完全不現(xiàn)實(shí)只能用啟發(fā)式搜索找近似最優(yōu)。所以如果你要做多箱的難度評(píng)估別想著枚舉用采樣加統(tǒng)計(jì)的方法更實(shí)際。我個(gè)人在實(shí)際操作中的體會(huì)是單箱推箱子的最大最優(yōu)步數(shù)這個(gè)問(wèn)題看起來(lái)簡(jiǎn)單真動(dòng)手跑一遍會(huì)發(fā)現(xiàn)細(xì)節(jié)特別多。狀態(tài)去重、邊界檢查、對(duì)稱剪枝、性能優(yōu)化每一個(gè)環(huán)節(jié)都有坑。但跑通之后拿到那個(gè)112步的結(jié)果看著LURD路徑一步步驗(yàn)證那種“原來(lái)一個(gè)箱子能折騰這么多步”的感覺(jué)還是挺有意思的。如果你也在做類似的事情建議先從6×6的小地圖開(kāi)始跑通了再擴(kuò)大規(guī)模別一上來(lái)就搞大圖調(diào)試起來(lái)很痛苦。另外把每次實(shí)驗(yàn)的參數(shù)和結(jié)果記下來(lái)過(guò)段時(shí)間回頭看會(huì)發(fā)現(xiàn)很多當(dāng)時(shí)沒(méi)注意到的規(guī)律。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
狠狠色色| 亚洲电影中文字幕| 五月综合亚洲婷婷| 色亭亭丁香五月天| 丁香成人五月天| 极品五月天| 久久久久综合激动五月天| 欧美大片免费播放器| 亭亭玉立国色天香| 黄色录像网点| 综合网亚洲| 天天插综合| 婷婷五月天涩涩| 婷婷五月激情六月| 桃色Av色哟哟| 9999热精品| 天天射影院| 欧美视频五区| 国产精品久久7777777精品无码| av操逼网| 日韩在线观看亚洲| 日本www五月婷婷| 色婷婷a v| 8090在线影视少妇| 丁香五月花| 久99久热| 色综合激情| 91美女被操| www九九热| 狠狠 婷婷| 久久婷婷五月综合网| 色99色| 色八月婷婷| 色吧婷婷五月亚洲| 人人爱操| 婷婷六月五月| 凹凸探花电影| 91人人网| 在线免费观看激情视频| 亚洲精品视频在线| 1024操逼视频| 婷婷五月天电影在线| 九九99香蕉在线视频播放| 色婷婷香蕉| 色色婷五月天| 婷婷色影院| 免费三级黄色| 婷婷社区五月天| 激情综合亚洲色婷婷五月| 成人在线不卡| www.av骚货| 五月丁香亚洲综合| 久久停停超碰| 日韩精品AV一区二区三区| 99热免费精品| 五月丁香六月片| 国产午夜精品一区二区三区四区| 久久丁香婷婷色情综合| 久久久99免费视频| 久久这里只有精品07 | 天天干一干| 婷婷激情综合| 婷婷色色网| 精品一区二区三区四区五区六区| 大鸡巴伊人网| 日韩成人综合网| 丁香五月婷婷激情网| 欧美精品999| 五月丁香六月婷婷综合在线| 亚色网站小视频| 亚洲中文AV| 九九精品免费| 五月天激情影院| 97色色在线视频| 六月婷婷五月丁香首页| 九九色人| www.97碰碰com| 97涩婷婷| 婷婷六久久| 天天干天天干天天干| 国产综合81p| 国产看真人毛片爱做A片| 中文字幕av久久爽一区| 国产激情av| 色婷婷五月天不卡| 五月婷婷激情综合视频| 99视频热| www一区二区三区| 丁香五月自拍| 婷婷久久久久久久| 五月激情丁香久久综合网| 草草影院爱爱| 97热九九| 九九人人精品| 人妻久久婷婷| 色综合激情| 丁香五月激情综合| 五月婷婷丁香综合| 久热视频A.| 色婷婷婷婷| 久久精品国产一区二区三区四区| 九九香蕉网| 日本三级韩三级99久久| 99性视频| 日日操夜夜爽| 色色婷婷五月天| 五月天激情电影| 日本三久久| 色综合五月| 五月网在线| 五月色天五月色| 996黄色片| 99热只有| 亚美欧色影院| 五月丁香六月婷婷姐| 天堂五月婷婷| 99精品女人天堂| 十二区无码| 婷婷色五月91啪啪| 久碰久| 五月婷婷综合成人| www.99精品视频| 婷婷色五月天色| 色都都狠狠色都都色综合色| 日韩美女羞羞网站在线观看| 9l视频自拍九色9l视频自拍九色9l社区 | 色色色色av777| 五月综合777| 日韩欧美四五区| 99热这里都是精品| 日本片日本片祼观看网站在线看中文版网页在线看 | 天天爽夜夜爽天天爽夜夜爽| 六月久久狠狠| 色久丁香五| 免费在线观看欧美激情xx小视频| www.夜夜操.com| 婷婷五月激情中文字幕| 大香蕉五月天婷婷| 99ER热精品视频| 久久久人妻| 怡红院AV亚洲一区二区三区H| 开心五月色婷婷综合开心网| 极品嫩草| 99热在线精品观看| 久久五月丁香伊人青草| 天天天天做夜夜夜夜做| 国产婷婷五月色情综合| 人妻AV在线| 欧美色99| 激情99。| 欧洲亚洲精品| 99热在线精品观看| 婷婷五月天免费99| 九九偷拍网| 蜜臀av粉嫩av懂色av| 生活片五区| 天天综合色99| 婷婷六月激情丁香| 色色色色色日韩午夜激情 | 五月天综合色| 亚洲99一级无嗎特制在线| 成人做爰高潮A片免费视频| 无遮羞AV| 国产激情在线| 精品婷婷五月天| 先锋av性爱成人电影| 99re最新地址| 26UUU欧美| 九九热免费视频| 操碰色一区就去操| 99热主页日本| 婷婷成人丁香色情基地30| 久久久精品人妻录| 五月婷婷亚洲色视频| 99操99| 99ER热精品视频| 久久六月婷婷| 99热在线播放| 十月色综合| www99在线观看视频| 狠狠的日| 99热999| 亚洲操人| 五月天综合影院| 人妻人人操| 色五月情| 午夜一区| 午夜丁香婷婷| 日本精品人妻无码77777| 密乳Va| 婷婷性爱网| 色婷婷成人| 五月丁香六月婷婷色情| 久久HD| 久久五月天免费网站| 这里只有精品亚洲| 免费精品99| 99热婷婷| jiujiujiuwuyuetian| 婷婷五月丁香六月伊人网| 丁香婷婷激情网站| 久久综合五月天| 91亚洲免费片| 婷婷色网站| 激情综合久久| 无码色综合| 九九视频精品这里只有| 色色免费网站| 久碰综合| 天天操天天操天天操天天操天天操天天操| 97精品综合久久| 91色碰| 热久久思思热思思| 99久视频| 色色色区| 色婷婷的五月天| 日本不卡一区二区三区| site:hcxsz888.com| 日日干天天爽| 婷婷色五月激情强奸四射| 99九九热在线观看| 亚洲另类日本| 天天橾夜夜爽| 丁香五月婷婷激情123| 丁香婷色| 色情五月天。| 久久停停超碰| 婷婷五月色惰| 加勒比日本一区二区三区| 天天日,夜夜爽| 99色免费观看全部| 97操视频| 99热精品中文字幕| 91综合在线观看| 国产又黄又爽又激情不遮挡视频在线观看| 色色色综合| 超级碰碰碰97免费| 丁香五月色五月| 丁香五月婷婷综合激情啪啪啪| 99热精品少| 五月激情综合网| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 91干视频| 欧美啪啪9| 色久丁香五| 色五月综合网站| 亚洲婷婷六月天| 色婷婷99| 日本ww亚洲| 99热色精品| 色色色国产| 五月丁香色婷婷色| 婷婷 色 丁香 夜| 亚洲AV免费在线| 欧美性爱中文字幕| 色色激情网| 91人人妻人人操| 丁香五月六月| 伊人婷婷五月天| 操久久网| 五月天婷婷色在线视频免费观看| 五月丁香免费看| 婷婷丁香人妻天久久| 婷婷丁香六月| 欧美va亚洲va| 色狠狠色噜噜AV天堂五区| 色9色| 日本99视频| 国产五月丁香在线| 大地9中文在线观看免费高清| WWW夜夜| 日本三级日本三级99| 99色在线视频| 天天综合色综合| 久久精品99| 这里都是精品99| 99久久99九九99九九九| 丁香五月久久综合| 日韩AV在线免费| 五月丁香六月婷婷的女人| 琪琪色网址| 丁香美女主播视频在线观看| 亚洲人妻电影| 99色热| 综合激情伊人影视在线| 五月婷婷爽爽爽| 亚洲亚洲亚洲AAAAAA| 天天爱天天做天天舔| 99在线观看亚洲| www.99热最新视频8| 欧美婷| 欧美日韩AAAA| 可以看的av网站| 99噜噜噜在线播放| 亚洲婷婷丁香五月| www.射伊蕉婷婷| 97久久久久| 天天日天天爽| 丁香美女主播视频在线观看| 日本99在线| 99热91| 二人电影免费版在线观看| 五月婷婷六月丁香| 亚洲色色香蕉| 久久伊人五月天| 荫道BBWBBB高潮潮喷| 艾小青av| 婷婷五月天激情综合| 天天爽天天日| 深爱激情网综合| 99热天堂| 婷婷婷狠狠| 狠狠爱婷婷爱| 免费视频WWW在线观看网站| 男女久久婷婷五月天| 成人网在线观看视频| 噜噜狠狠色综无码久久合欧美| 99操逼视频| 九九这里只有精品| 久久丁香久久| 伊人玖玖网| www.minyis.com【JT】实力收量可预付QQ2101460746 | 久久人妻情侣| 人人色婷婷| 俺也去色| 91操人| 日日舔夜夜操| 免费看欧美成人A片无码| 操操熟女| 激情五月www| 亚洲色另类| se色综合网| 五月婷婷狠天天色综合| 91狠狠色丁香婷婷综合久久| 欧美日韩成人高清在线| 色婷婷丁香| 一区二区成人电影| 99热亚洲精品| 黄网在线观看免费| 丁香五月激情欧美| 思思re99视频在线观看| 久草丁香婷婷1024| 亚洲成色综合网站免费观看| 久久丁香五月| 99色在线观看视频| 激情五月婷婷综合| 97操女视频| www.久久| 丁香婷婷激情五月色| www久久久久久久久久久久久久久久久| 久久色五月| 色大综合| 99久久国产宗和精品1上映| 丁香五月开心亚洲| 久久天堂女人| 成人中文网| 久久婷婷五月丁香网| 久久思思热视频| www。五月天激情| 欧美人人超级碰| 欧美成人AAA片一区国产精品 | 极品少妇XXXX精品少妇偷拍| 99久久久免费| 色色99| 亚洲激情五月丁香久久久久| 婷婷五月天av网| 二级黄色毛片| 激情五月瑟瑟| 久久久91精品| 人与禽A片啪啪| 六月丁香激情网| 五月婷婷啪啪| 国产色色色色| 色五月首页| 深爱五月天婷综合| 色婷婷狠狠| 丁香五月777| 九九在线视频| 99热热热国产超碰| www色色com| 激情五月天色网站| 91久久婷婷| oumeisesewang| 99免费热视频在线| 97五月天婷婷| xx人人xx| 丁香五月婷婷啪| 99精品在线观看视频| 99热久草| 国产欧美性成人精品午夜| va中文资源在线观看| 玖玖爱伊人网| 婷婷五月丁香综合| 五月婷婷伊人网| 欧美久久久中文字幕| 欧美人妻一区二区| 国产成人网站在线观看| 99碰碰碰| 日本WwW色偷偷丁香花久久久京东热| 婷婷成人五月天| 婷婷五月天伊人| 亚洲激情AV| 九九热九九| 五月天久久婷婷| 午夜丁香婷婷| 五月婷婷六月丁香激情| 极品五月天| 激情婷婷六月| 五月开心深爱激情网| 国产色五月| 婷婷五月丁香六月天亚洲综合| 99热九九在线| 激情五月六月婷婷| 免费AV在线| 亚洲网站999| 超碰免费大香蕉| caop在线| 成人在线视频网| 色五月激情五月| 白人荫道BBWBBB大荫道| 99re8热精品免费视频| 婷婷婷婷婷婷婷婷婷婷丁香| 人人97操| 国产91视频| 热九九精品| 国产成人一区二区三区在线观看| 久久九九网| 丁香婷婷综合激情五月色| 成人国产欧美大片一区| 丁香五月成人自拍| 色偷偷狠狠| 亚洲色综久久五月| 在线成人国产| 琪琪色综合网站| 66色在线日韩| 婷婷五月情天| 五月丁香色婷婷基地| 中文字幕av在线播放| 一区二区你懂的| 狠狠操狠狠操| 久操婷婷| 亚洲AV网址| 久热网在线视频| 婷婷色五月婷婷姐妹| 久xxxx| 欧美精品XXXXBBBB| 五月天丁香网| 久久只有18视频| 五月天成人综合| 丁香五月冃欧美| www.91久久| 久久网婷婷| 粉嫩AV久久一区二区三区| 激情五月丁香六月综合AVXXXX| 五月天另类小说亚洲| 国产精品美女久久久久AV超清| 99精品久久久| 91久久综合亚洲鲁鲁五月天| 九九精品免费| 五月天 婷 欧美亚洲| 十月丁香九月婷婷综合| 丁香五月五婷| 五月天色五月| 激情五月少妇| 国产精品成人在线| 农村熟妇高潮精品A片| 激情五月天视频| 97啪啪| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 99色色视频| 天天插天天射| 香蕉色色网| 97婷婷五月激情六月丁香伊人| 97干在线视频| 思思热性操| 激情五月天啪啪| 色播综合| 九九久久精品國產| 五月丁香六月婷婷综合免| 熟女激情五月天| 日本人妻A片成人免费看片| 极品五月天| 亚洲色色色色色| 天天干 夜夜爽| 成人在线网址| 伊人青涩网| 色之综合网| 激情婷婷六月天| 女人高潮内射99精品| 97操碰人人| 26uuuavcom| 婷婷色丁香六月| 丁香五月婷婷基地| A片一曲| 日日做天天操夜夜爽| 丁香婷婷网| 激情五月婷婷色色| 婷婷五月天伊人网在线观看视频| 96丁香六月婷婷蜜桃综合久久| 九九久久玖玖爱| 色婷婷99| 97操男人的天堂| 97干综合网| 99久热在线精品| 开心五月天私房婷婷| 夜夜天天天天天干天天爽| 天天橾夜夜爽| 开心激情播播五月天| 综合网天天| 国产精品大香蕉| 国产毛片精品一区二区色欲黄A片| 婷婷五月天伊人| av中文网| 成人亚洲精品| 亚洲激情精品| 亚洲激情五月| 色色六月| 人妻性爱| 人妻久久久久久久久久久| enecarbon-materials.com污K127封锁请涟系@wip1688 | 欧美色五月| 日本99久久| 婷婷五月丁香99| 4438国产免费看| 婷婷丁香六月激情综合| 丁香六月激情| 六月婷婷之青青草| 久久久久er热| 日韩AV在线免费| 五月婷婷乱| 五月婷婷综合网| 五月丁香六月综合基地| 人人97碰| 超碰9在| 亚洲在线视频321| 色狠狠图片| 丰满少妇猛烈A片免费看观看| 综合欧美五月婷婷| 色五月亚洲| 婷婷色五月噜噜| 99热成人| 亚洲avjiujiur91| 五月色丁香| WWW、日本色丁香co m| 中文字幕黄色片| 99热思思久| 大香蕉啪啪网| 五月婷婷色丁香| 久久久99精品免费观看| www色中色综合| www,99视频| 啪到高潮激情丁香五月| 成人国产网| 五月婷婷六月婷| 激情超碰网| 天天日,天天干,天天操| 日韩综合久| 色女人久久| 中文精品在| 色五月激情五月天| 99人这里只有精品| 色图亚洲91| 中文字幕综合| 色五月综合激情| 色噜噜五月天| 色情五月| Www.狠狠| 99热综合网| 99精品久久| 中文字幕成人| 激情色情五月天| 久久久噜噜噜操操操| 九九热这里只有精品6| 婷婷丁香六月天| 日本狠狠网| 丁香五月人妻| 99色天堂| 五月丁香龟婷婷| 99啪啪网| 99久久综合| 五月丁香婷婷中文网| 亚洲图色五月天| www.婷婷.com| 天堂爱爱| se婷97| 婷婷五月色惰| 精品婷婷五| 色婷婷综合久久| 99热这里只有精品8| 亚洲午夜AV| 少妇人妻丰满做爰XXX| 九九99视频| 99在线观看视频| 亚洲国产无线乱码在线观看| 色婷婷狠狠18| 成久综合视频| 青青草视频免费观看| 激情五月天在线免费美女视频| 久久久91| 久久婷婷六月综合国际| 超碰色色综合| 六月丁香婷婷开心综合基地| 99热在线网站| 97干在线视频| 日本成人噜噜噜| 六月亚洲婷婷6月中文字幕| 亚洲岛国电影| 综合狠狠干| 99高级会所久久| 婷婷色一二三区波多野结衣| 五月丁香久久| 五月天成人综合| 第2色五月婷| 九色porny在线观看激情四射| 天天综合 99久久婷婷| 热久久77777| 色婷婷在线视频观看| 超碰免费人人| 天天干天天操天天拍| wWwCom夜操wwW| 婷婷久久18| 欧美搡BBBBB摔BBBBB| 综合九九| ...婷婷国产成人亚洲日韩| 人五月天婷婷喷水| 婷婷五月花| 色播五月天激情| 五月天婷婷丁香蜜桃91| 中文字幕在线日亚洲9| 九九精品免费视频99| 婷婷综合五月| 婷婷五月天AV| 伊人六月无码视频| 狠狠做五月| 99久久.www| 97色色视频| 精品色色网| 9久热| 91人人爱| 香蕉AV福利精品导航| 超碰99久久| 色色色色五月| 激情五月综合视频| 九九色色网| 人人操碰| 黄网在线免费观| 26uuu亚洲| 成人网在线视频| 玖玖资源站蜜臀| 色五月aV| 天天拍夜夜撸| 99久久精| 97碰啪啪| 99九九在线精品热动漫| 婷婷丁香综合| 一区=区操屄高清大全av| 五月天色社区| 国产成人av在线| 亭亭五月丁香五月天激情| 狠狠五月天婷婷激情网。| www.99热国产| 久热这里只有精品性色AV| 亚洲 视频 导航 一区| 俺去婷婷 丁香| 日韩99无码| 麻豆AV一区二区三区| 五月婷婷香| 五月婷婷99热| 91丨九色丨丰满人妖| 思思热99热| 天天做天天爱天天要| 天天天天做夜夜夜夜做| 婷婷激情综合网| 色婷婷狠狠18| 激情婷婷另类| 婷婷综合五月天亚洲综合| 深爱五月天 开心网| 丁香五月六月久久综合| 性色播| 六月色婷婷色| 五月天日日操夜夜操 | 99色| 五月激情综合网| 8区视频在线| 亚洲 视频 导航 一区| 色色色色色网站| 婷婷五月综合激情免费视频| 亚洲色激情| 热思思| 九九热思思| 激情五月天 婷婷| 女人天堂 AV| 婷婷五月色情天| 夜夜爽天天干| 五月婷婷影院| www.五月婷婷| 日日噜噜夜夜狠狠久久丁香六月| 九九色综合| 99精品偷自拍| 激情小说色五月| www.韩日视频| 337久久| 综合超碰熟| 六月婷婷啪啪| 99热精品观看| 激情五月天婷婷直播| 婷婷5月色| 国产色色网站网址| 丁香五月天啪啪激情综和网 | 久久免费精品小视频| 99亚洲综合| 婷婷精品在线| 激情五月小说婷婷| 婷婷五月天六月丁香| 日本美女上人| 五月丁香啪啪啪| 色色欧美。| 青青草原爱爱网| 久久久久久激情| 婷婷久久婷婷色五月| 午夜亚洲国产精品av一区二区| 2015好吊操| 99re思思精品视频在线观看| 伍月婷婷免费视频| 丁香五月婷中字幕| 日韩啊啊啊| 26uuu成人网| 亚洲第一黄网| 9.1综合网| 亚洲激情淫网| 婷婷五月天激情文学| 亚洲色热| 大香蕉手机视频| 婷婷狠狠青青| 亚洲成人综合在线| 亚洲激情淫网| 人妻精品久久久久久| 另类 在线| 丝袜大香蕉| 在线视频区| 久久激情中文| 久久婷丁香五月| 六月婷婷av| 欧美va视频| 99热这里有精品24| 99操免费视频| 国产AV熟妇人震精品一品二区| 狠狠久久婷婷| 99超级碰碰| 日日日,com| 色狠狠综合入口| 99爱在线精品视频免费观看| 婷婷狠狠青青| 九九熱最新視頻| WWW,五月| www.天天干| 大香蕉人人人| 久热这里精品免费| 日韩啪啪视频| 婷婷国产五月天17c| 九九熱最新視頻| 婷婷色五月在线视频| 99精品久久| jiujiuxiangjiaowang| 开心五月婷婷五月| av人人干| 欧美69久成人做爰视频| 91色久| 丁香五月天激情网| 五月天成人在线视频网站| 99玖玖精品| 日本天天综合| 99热在线观看精品| 久久久久久婷| 婷婷丁香五月天哟啪| 夜夜爽天天爽| www.婷婷com| 久久99热这里只有| 国产精品电影网| 全部老头和老太XXXXX| 亚洲综合视频在线| 激情综合综合综合| 狠狠色狠狠| 色天五月天在线观看视频| 99性爱视频| 五月丁香操婷逼| 五月丁香六月婷婷综合网站| 亚洲亚洲人成综合网络| 亚洲熟女色| 婷婷五月激情视频在线| 国精产品一区一区三区免费视频 | …亚洲黄色在线播放日韩、av中文a…| 99热精品一区| 婷婷五月天成人网| 丁香六月婷婷综合激情欧美| 色中色综合| 操操综合网婷婷| 丁香五月婷婷成人色区| 久久机热/这里只有精品| 色香久久| 思思热精品在线| 亚洲99热| 五月久久亚洲| 免费观看全黄做爰的视频| 婷婷五月综合婷婷| WWW,五月| 69色婷婷| 99激情视频| 伊人大香久久| 玖玖资源站蜜臀| 丁香五月婷婷国产av| 天天爱天天做综合| 九九热视频在线观看| 99热超碰| 淫视馆aV二区一区| 97视频91| 五月综合激情| jiujiujiuwuyuetian| 99无码视频| 婷婷五月天AV在| 激情五月色播五月| 中文字幕高清av| 国产色99| 1024在线观看免费视频| 六月婷婷久久大全| 97超级免费无码| 啪到高潮激情丁香五月| 激情综合五月丁香六月婷婷| 婷婷黄色五月天在线视频| 五月天综合网| 97婷婷丁香五月天激情图片| 婷婷五月天小说网| 久久婷婷色情7777网站| 五月丁香婷婷色色| 91干| 日日噜噜夜夜狠狠久久丁香五月| 亚洲乱啪| 99这里是精品| 久久艹 五月天| 伊人久久五月天| 俺去也五月天| 夜夜谢天天干| 97性视频| 日本婷婷激情四射中文字幕在线观看| 91大屁股精品| 操日本人妻视频| 97九色视频| 一级AV片| 丁香久久| 综合色播| 丁香五月婷婷88在线| 综久久久| 这里有精品| 综合性爱网| 九九热视频免费观看| 99色热视频| 狠狠色综合图片| 五月婷婷六月色| 人人舔人人色人人高潮| 激情综合在线观看| 婷婷丁香五月综合久久| 99在线观看精品| 婷激情五月| 久久最新色色色| 午夜婷婷久久 | 97超级操操| 亚洲中字AV电影在线网站| 婷婷导航| 99无码| 开心五月天激情网站| 激情 五月 婷婷 丁香| www.玖玖九| 人妻少妇色综合| 97色色网| 狠狠草狠狠草| 久久96热| 久久午夜理论| WWW五月婷婷| 亚洲婷婷91丁香| 免费成人网在线观看| 91无码色色| 五月天另类视频| 婷婷午夜精品久久久| 99高级会所久久| 丁香九月综合在线| 福利视频在线播放| 色色色网站| 亚洲色在线观看| 婷婷午夜天| 五月婷婷欧美| 美女激情综合| 五月婷婷偷拍| www.五月婷婷.com| 婷婷五月色综合| 人人草人人爱| 五月婷视频| 26UUU精品一区二区| 天天色综网| 啪啪六月婷婷| 丁香六月在线| 久久99热这里只有精品| 青青草日本亚洲| 五月天激情国产综合AV| 五月天色婷婷图片| 热久久66| 五月丁香五月丁香| 99热欧| 人色五月天婷婷| 99热久草| 激情五月丁香亭亭| www.色婷婷| 一起草无码| 色色色热热热| 无码少妇高潮喷水A片免费| 办公室少妇激情呻吟A片在线观看| 国产亚洲精品AAAAAAA片| 九九99久久| 婷婷色五月天第7色| 99久热这里有精品| 激情五月天综合网站网站网站| 五月婷婷免费在线| 情婷婷五月天在线| 天天干夜夜欢| 婷婷丁香五月激情中文字幕版| 丁香激情五月综合网| 午夜九九电影| 人人爱人人添| 99riAV国产精品视频| 日本色道视频网站| 乱岳熟女50岁| 九九久久久综合| 97久人人| 五月激情四射婷婷丁香| 欧美天天性| 日本www五月婷婷| 91精品婷婷国产综合| 久久99热这里只有| 九九热九九| 天天日天天插天天操| 五月丁香在线偷拍视频| 六月丁香视频网站| 99久久精品网| 丁香五月手机在线| 五月婷在线观看| 亚洲九九99精品视频在线播放| 国产干逼片| 丁香五月玖玖| 五月丁香婷婷网网网网| 日韩小视频在线99| 九九re精品视频在线观看| jiZZdr| 色综合网页| 亚洲欧洲另类| 精a品a| 99在线精品观看99| 99啪视频在线观看| 九九热色视频| 日韩伊人大香蕉| 丁香五月天激情婷婷丁香六月| 欧美日韩AAAA| 五月丁香婷婷综合| 九九久久久综合| 97资源碰碰在线| 婷婷五六日| 丁香婷婷五月六月久久| 激情网五月| 影音先锋五月天婷婷丁香在线观看| 亚洲最大在线| 丁香婷婷十月| 9+1视频网址| 99热xx| 婷婷五月丁香香蕉| www.天天色综合| 99热这里只有精品23| 人人干人人操人人摸| 91ncom.色| 激情丁香五月| 狠狠操天天操天天操| 久久xx| 狠狠爱婷婷色| 五月综合激情综合久| 五月婷婷婷| 激情九九六月激情免费视频| 色宗合久久五月婷婷| 激情五月天视频| 99福利导航| 综合久久五月天| 碰97久久| www:99热视频| 99愛国产| 97人妻超级碰碰碰碰碰| 激情五月综合网| 97色女人在线| 一级性感毛片| 国产日日操夜夜操的肉棒视频| 九九视频在线| 特黄三级片| 永久地址 色| 天堂网啪啪| 激情淫乱男女| 97色色色视屏| 色五月在线观看| 色综合久久天天综合网| 99综合| 亚洲情综合五月天| 丁香亭亭久久| 99在线精品免费视频| www.丁香六月婷婷久久天堂影院.con| 五月天亚洲最大成人| 六月丁香五月婷婷| 日韩狠狠色| www.色九月| 99热99操| 欧美这里只有精品| 日韩天堂久久| 天天操比比| 久久一操| 99热这里只有精品4| 99超级超级超级碰| 激情五月婷婷六月丁香| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 99色激| 色天堂在线| 亚洲精品在线视频| 九色91视频| 97日本在线| 日本狠狠色| 丁香婷婷色情| 日韩成人AV在线| 大香网伊人久久综合| 五月丁香六月婷婷色日| 亚洲国产网站| 99热综合色图| 五月丁香婷婷爱激情综合网| 色婷婷导航| 亚洲欧洲自拍图片专区五月天| 国产古装妇女野外A片 | 亚洲性视频| 五月婷婷综合网| 五月天激情综合在线| 婷婷五月天在线观看| 色99亚洲| 91碰免费视频| 五月丁香六月婷婷操操操| A级毛片高清免费不卡播放谢谢谢谢| 丁香婷婷中文字幕| 少妇出轨做爰高潮A片| 亚洲中文无码成人| 国产高清av黄色看片| 爱爱色五月天| 99久| 丁香久久综合| 丁香五月AV综合| 五月丁香婷婷伊人| 激情小说五月欧美亚洲丁香| 九九九九九九热| 久色大| 欧美天天综合网站上去吧| 亚洲操女| 色五月婷婷综合在线| 久久99热这里只有| 色色综合网www| 99re热在线视频| 天天日夜夜夜操操操操| 97伊人综合婷婷| 综合色色色| 婷婷色情小说| 97久久久久久久久久久| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 草AV9999| 99热最新国内| 久久色天堂| 26uuu激情五月天| 欧美三日本三级少妇三99| 色999五月色| 五月婷婷六月丁香在线视频| 五月婷婷AV| aaa久久久| 一夜福利不卡| 91啪啪啪啪| 无码人妻激情| 五月天五月色| www.精品99| 天天爽人人综合免费7799| 久久思思热视频| 婷婷综合久久| 中文字幕精品推荐免费在线观| 天天日,天天干,天天操| 婷婷五月天堂一本在线| 六月婷婷天天操夜夜爽视频| 91碰碰碰久久久久| 颜射 精品性爱av| 欧美色色色色色色色| 97五月婷| 五月天伊人| 天天日日夜夜| 亚洲99视频| 日本一级一级一级一级| 丁香五月婷婷高清| 国产成人综合电影| 色色五月天婷婷| 思思热99热| 很很干五月天| 激情五月天噢美| 婷婷五月天黄色| 噼里啪啦完整版中文在线观看| 五月天激情四射| 丁香色五月天| 久久机只有这里精品| 久热这里只有精品在线观看 | 色久激情在线| 91精品久久久久久综合五月天| 日韩一级一片内射视频4K| 五月天激情国产综合婷婷| 99热8| 色综合色色色| 五月婷无码| 日韩精品电影| 香港九九六区八区99| 激情五月天色播| 天天做天天爱| 婷婷五月激情综合| 丰满熟女人妻一区二区三| 婷婷99狠狠躁天天| 高清成人综合| 久久九九@| 97热九九| 国产av天天插天天操天天爽| 亚洲无码99| 色五月综合| 婷婷射丁香| 婷婷人人操| 五月天丁香成人社| 五月丁香色综合| 99视频在线| 六月激情婷婷| 六月丁香激情网| 婷婷开心激情五月激情网| 久久精品永久免费| 婷婷六月激情在线视频| 色999;丁香五月| 这里只有免费的精品| 丁香六月激情蜜桃| 亚洲激情区| 天天日天天干天天天| 日韩欧美一区二区三区四区| 超级碰碰碰碰视频| 国产亚洲成人综合| 日本三级色| 色开心五月丁香| 97操碰人人| 亚洲中文字幕网| 黑人糟蹋人妻HD中文字幕| 99碰碰| 六月丁香五月婷婷| 1000部毛片A片免费观看| 搡BBBB搡BBB搡18| 国产偷人爽久久久久久老妇APP| 久久久久久99日本| 丁香色五月 97干| 热99这就是精品视频| 婷婷色中文字幕| 国产乱子轮XXX农村| 久9热在线免费观看| 婷婷色色欧美综合网| 婷婷五月天毛片| 五月综合激情| 五月丁香免费视频| 亚洲综合视频天天精品| 激情五月天色色色| 亚洲第一成人无码A片| 婷婷丁香社区网| 六月丁香综合网| 五月天激情亚洲| 亚洲AV成人在线| 色色婷婷五月天| 狠狠 久久| 色综合久久88色综合天天99| 99综合久久| 久久狠狠色| 五月六月丁香激情| 国产 亚洲 在线| 在线只有精品| 热婷婷在线视频| 婷婷精品免费久久| 久婷婷久草| 99re这里只有精品首页| 久久综合中文字幕| www久久99| 免费色婷婷| 五月丁香六月婷婷啪啪| 九九Av| 可以免费看的av网站| 色婷五月天| 性生生活大片又黄又| 国产肥白大熟妇BBBB视频| 大香线蕉伊人| 狠狠干2007| 色婷婷丁香五月| 色五月婷婷久久| 色婷婷97| 久久综合爱| 热99精品视频观看| 久久精彩免费视频| 婷婷五月天福利| 五月激情综合网| 丁香五月天社区婷婷| 色欲av伊人久久大香线蕉影院 | 五月婷婷综合在线| 婷婷五月色花丁香社区| 丁香婷婷激情综合五月激情| 99热成人在线| 国产乱子轮XXX农村| 日韩肏屄网| 五月婷婷五月天天| 色综合久久综合中文综合网| 色五月综合在线| 天天肏在线视频| 99久热这里只有精品视频删减版| 激情综合激情五月一起草| 亚洲色五月天| 久久丁香社| 婷婷丁香五月久久| 99人碰碰碰| 婷婷97C| 丁香五月天婷婷久久综合| 成人在线不卡| 亚洲情欲久久| 精品国产va久久久久久久| 无码人妻一区| 性按摩玩人妻HD中文字幕| 在线五月婷婷小电影| 激情五月影院| 热久免费视频9| 天天操夜夜夜拍拍拍| 91九九| 人人干女人| 人妻久久人妻久久第一区| 天天插综合| 久久婷婷的综合色丁香五月| 天天做天天爱综合| 夜色综合网| 4399精品一区二区| 丁香激情网| 色婷婷免费视频| 成人免费视频一区| 日本va欧美va欧美| 国外亚洲成AV人片在线观看| 久热婷婷| XX久久| 欧美色图天堂网色| 五月天婷婷丁香| 亚洲操女| 婷婷丁香基地在线| www久久久| 色五月激情综合| 97五月天| 97超级碰碰碰| 九九热这里| 九九九九中文字幕| 五月天婷婷无码| 狠狠爱深色婷婷综合| 夜夜爽日日躁| 久99999热视频在线观看免费| 色婷婷激情小说网| 色色激情|