供選擇的答案
[a]T=EndPos
[b]Q.insert(T)
表5.2
符號(hào) |
含義 |
Grid |
全局二維數(shù)組Grid[N+2,M+2],表示游戲地圖方格陣列,初始時(shí)數(shù)組元素Grid[i,j]的值為一1,表示當(dāng)前方格可前進(jìn);值為一9,表示當(dāng)前方格不可前進(jìn) |
offset |
一堆數(shù)組0ffset[4]:offset[i](0≤i≤3)的分量為r(行偏移量)和c(列偏移量),按照表5.6的內(nèi)容設(shè)置其值 |
StarPos、EndPos、CurPos、T |
分別表示起始方格、目標(biāo)方格、當(dāng)前方格和臨時(shí)方格,其位置用分量row和col確定 |
Q.insert(S) |
將方格s的位置信息加入隊(duì)列 |
Q.delete() |
刪除非空隊(duì)列的隊(duì)頭元素并返回該元素 |
Q.empty() |
若隊(duì)列Q為空,則返回true;否則返回false |
[c]Grid[T.row,T.c01]≠-1
[d]Grid[T.rOW,T.c01]=-1
[e]T+_Q.delete()
[f]CurPos=EndPos
[ g ] i≥4
[h]CurPos←Q.delete()
[i]Found≠tme
[ i ] Found=true
答案:(1)Grid[T.row,T.c01]=一1
解析:對(duì)可擴(kuò)展結(jié)點(diǎn)進(jìn)行路徑長(zhǎng)度標(biāo)記時(shí)。對(duì)Grid[T.row,T.c01]的標(biāo)志進(jìn)行判斷。
答案:(2)T=EndPos
解析:判斷目標(biāo)結(jié)點(diǎn)是否出現(xiàn),若是。則Found=true。
答案:(3)Q.insert(T)
解析:當(dāng)目標(biāo)結(jié)點(diǎn)未出現(xiàn)時(shí)。將T結(jié)點(diǎn)加入隊(duì)列。
答案:(4)Found≠true
解析:找到目標(biāo)方格時(shí)的結(jié)束條件。
答案:(5)T←Q.delete()
解析:當(dāng)尚未找到目標(biāo)位置結(jié)點(diǎn)而隊(duì)列又不為空時(shí),應(yīng)從隊(duì)列中取出一個(gè)新的結(jié)點(diǎn)作為當(dāng)前結(jié)點(diǎn)進(jìn)行考察和擴(kuò)展。