![]() |
|
|||||||
| 論壇說明 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
![]() |
|
|
主題工具 | 顯示模式 |
|
|
#1 |
|
註冊會員
|
請各位大大幫忙~如何印六角型的迷宮牆且判斷要找到最近的路,從S走到E. 現在還在打轉. 如圖
![]() 此帖於 2008-04-27 10:35 AM 被 不飛 編輯. |
|
|
送花文章: 2,
|
|
|
#3 (permalink) |
|
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
幫你兩個地方 (個人不會 c/c++ 之印圖的語法,但如何邏輯式印圖其實沒這麼複雜)
.先看圖 ![]() 只要畫出 座標的記憶體配置方式 就可根據 可通行的方向 訂出六條通路之判斷語法 .六條通路之判斷語法 如下 (這裡個人用 VB寫) 語法:
'X 及 Y 是新的座標,iNO 是試問的方向(1~6),當(X,Y)可通時 IsDirectionOK=True
Public Function IsDirectionOK(iNO As Integer, X As Integer, Y As Integer) As Boolean
'(NowX,NowY) 是目前老鼠的座標
Select Case iNO
Case 1
X = NowX
Y = NowY - 1
Case 2
X = NowX + 1
Y = NowY - 1
Case 3
X = NowX + 1
Y = NowY
Case 4
X = NowX
Y = NowY + 1
Case 5
X = NowX - 1
Y = NowY
Case 6
X = NowX - 1
Y = NowY - 1
Else Case
'IsDirectionOK = False
Exit Function
End Select
'MapXMax 及 MapYMax 記憶體陣列的 X,Y size
If (X < 0 Or Y < 0) And (X <= MapXMax Or Y <= MapYMax) Then
'IsDirectionOK = False
Else
'Map為 地圖之記憶體陣列,內容為0 表示此方向無阻礙
If Map(X, Y) = 0 Then IsDirectionOK = True
End If
End Function
至於函式 IsDirectionOK 要傳那個方向 這就由您自己決定 最間單就是依序 1~6 另外也可用 範圍規範式的1~6亂數 選擇 如何使用 語法:
'D 是您決定測試的方向
If IsDirectionOK(D, X, Y) = True Then
NowX = X
NowY = Y
End If
此帖於 2008-04-27 04:31 PM 被 mini 編輯. 原因: 修辭 |
|
|
送花文章: 2057,
|
![]() |
|
|
相似的主題
|
||||
| 主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
| 求助 - 電腦偶爾都會出現一個小視窗?請各位大大幫幫忙? | em17990 | 一般電腦疑難討論區 | 1 | 2006-11-30 10:52 AM |
| DVDX2.0轉檔問題各位大大幫幫忙 | ECKO | 軟體應用問題討論區 | 1 | 2003-04-30 01:45 AM |
| 騾子?驢子?網址?請各位大大幫忙! | i78524 | 軟體應用問題討論區 | 6 | 2003-04-27 03:46 PM |
| 注意字型(請各位大大幫幫忙~~~) | sonyo | 一般電腦疑難討論區 | 5 | 2003-04-01 09:44 PM |