現(xiàn)有一個(gè)大小為n*n的平面矩陣(從上到下從左到右編號為1~n*n),矩陣中有諸多障礙物。有兩個(gè)機(jī)器人分別為1號和2號,其中1號位于左上角且面朝右側(cè),2號位于右下角且面朝左側(cè)?,F(xiàn)在機(jī)器人需要按照規(guī)則進(jìn)行K輪運(yùn)動(dòng),規(guī)則如下:
①1號和2號機(jī)器人需要交替運(yùn)動(dòng),即第一輪由1號進(jìn)行運(yùn)動(dòng),第二輪則由2號進(jìn)行運(yùn)動(dòng),第三輪由1號進(jìn)行運(yùn)動(dòng)……以此類推直至第K輪。
②每輪運(yùn)動(dòng)時(shí),機(jī)器人將先判斷前方是否可以前進(jìn),若無法前進(jìn),則不斷順時(shí)針旋轉(zhuǎn)90°至可以前進(jìn)為止,隨后前進(jìn)直至停止,由另一個(gè)機(jī)器人開始下一輪運(yùn)動(dòng)。
③機(jī)器人在前進(jìn)過程中遇到邊界、障礙物或者另一個(gè)機(jī)器人時(shí)都將停止。
如圖a所示,機(jī)器人1號和2號分別位于左上角和右下角,且分別朝向右側(cè)和左側(cè),黑塊表示障礙物,當(dāng)進(jìn)行了4輪運(yùn)動(dòng)后,狀態(tài)如圖b所示。
編寫程序,啟動(dòng)后隨機(jī)生成矩陣并在List1中輸出,其中“#“表示障礙物,“_”表示可以行走的空格子,機(jī)器人用數(shù)字1和2表示。在文本框Text1中輸入輪數(shù)K,點(diǎn)擊按鈕Command1,在列表框List1中輸出K輪后的矩陣。程序界面如圖c所示。
(1)若在圖a的基礎(chǔ)上進(jìn)行6輪運(yùn)動(dòng)后,1號機(jī)器人所在的位置是 “第1行第4列“或“4“或其他等效表達(dá)“第1行第4列“或“4“或其他等效表達(dá)(填行列或格子編號均可)。
(2)實(shí)現(xiàn)上述功能的部分VB程序如下,請?jiān)跈M線處填入合適的代碼。
Const n=10
Dim a(100)As String,steps(3)As Integer,pos(2)As Integer
Dim towards(2)As Integer,cur As Integer,nex As Integer,K As Integer
Private Sub Form_Load ______
'生成矩陣存儲(chǔ)在數(shù)組a中并輸出,代碼略
End Sub
Private Sub Command1_Click_____
steps(0)=-n:steps(1)=1:steps(2)=n:steps(3)=-1
pos(1)=1:towards(1)=1:pos(2)=n*n:towards(2)=3
i=1:K=Val(Text1.Text)
Do While i<=K
cur=(i-1)Mod 2+1
nex=GetNext(pos(cur),towards(cur))
Do While Check(nex)
pos(cur)=nex
nex=GetNext(pos(cur),towards(cur))
Loop
nex=GetNext(pos(cur),towards(cur))
Do While Not Check(nex)
towards(cur)=______
nex=GetNext(pos(cur),towards(cur))
Loop
i=i+1
Loop
'輸出矩陣,代碼略
End Sub
Function Check(x As Integer) As Boolean
Check=x<>0 And a(x)<>“#“And _____
End Function
Function GetNext(x,t) As Integer
GetNext=x+steps(t)
If x>=1 And x<=n And t=0 Then GetNext=0
If x>(n-1)*n And x<=n*n And t=2 Then GetNext=0
If _____ Then GetNext=0
If x Mod n=0 And t=1 Then GetNext=0
End Function
【考點(diǎn)】編輯事件處理過程的代碼.
【答案】“第1行第4列“或“4“或其他等效表達(dá)
【解答】
【點(diǎn)評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:0引用:1難度:0.3
相似題
-
1.學(xué)校舉辦了“語文作文現(xiàn)場賽”,參賽同學(xué)成績存儲(chǔ)在文本文件“gra.jye.ai”中,如左圖所示(每一行記錄一位同學(xué)的姓名和成績,以“:”分隔)。陳老師利用Python程序?qū)ψ魑某煽冞M(jìn)行處理,統(tǒng)計(jì)出各個(gè)分?jǐn)?shù)等級的人數(shù),并輸出結(jié)果。程序運(yùn)行界面如右圖所示。
實(shí)現(xiàn)上述功能的Python程序如下,請?jiān)趧澗€處填入合適的代碼。發(fā)布:2024/12/17 2:0:1組卷:6引用:2難度:0.3 -
2.有如下Python程序段:
執(zhí)行該程序段,輸入字符串“abcdefg”,則輸出的結(jié)果是( ?。?/h2>發(fā)布:2024/12/20 6:30:1組卷:2引用:3難度:0.4 -
3.試題描述的內(nèi)容:
一個(gè)單窗體VB程序的運(yùn)行界面如圖所示。下列說法正確的是( )
(1)窗體內(nèi)有1個(gè)按鈕
(2)窗體內(nèi)有2個(gè)文本框
(3)窗體內(nèi)有3個(gè)標(biāo)簽
(4)該窗體的標(biāo)題(Caption)屬性值是“加法計(jì)算器”發(fā)布:2024/12/20 20:0:2組卷:1引用:1難度:0.6
把好題分享給你的好友吧~~