private sub form_click()
10 szx = 5000
szy = 5000
tr = 20
l = 50
mx = szx / l
my = szy / l
dim a(1001, 1001)
goto 110
20 while not (x = 2 and y = 1)
30 if a(x - 1, y) * a(x, y - 1) * a(x, y + 1) * a(x + 1, y) = 0 then goto 70
40 for i = 0 to 3
xx = x + (i = 0) - (i = 2)
yy = y + (i = 1) - (i = 3)
if a(xx, yy) = s - 1 then goto 60
50 next
return
60 x = xx
y = yy
s = a(x, y)
goto 90
70 r = int(rnd(1) * 4)
xx = x + (r = 0) - (r = 2)
yy = y + (r = 1) - (r = 3)
if a(xx, yy) <> 0 then goto 70
80 x = xx
y = yy
s = s + 1
a(x, y) = s
90 wend
return
110 for i = 0 to mx + 1
a(i, 0) = -1
a(i, my + 1) = -1
next
for i = 0 to my + 1
a(0, i) = -1
a(mx + 1, i) = -1
next
120 x = mx - 1
y = my
s = 1
a(x, y) = s
gosub 20
130 for q = my to 1 step -1
for p = mx to 1 step -1
if a(p, q) > 0 then goto 160
140 r = int(rnd(1) * 4)
pp = p + (r = 0) - (r = 2)
qq = q + (r = 1) - (r = 3)
if a(pp, qq) < 1 then goto 140
150 x = p
y = q
s = a(pp, qq) * 2 + 1000
a(x, y) = s
gosub 20
f = 1
160 next p, q
if f then f = 0: goto 130
200 cls
210 for x = 1 to mx
for y = 1 to my
220 t = abs(a(x, y) - a(x + 1, y))
if t <= 1 or t - 1000 = a(x, y) or t - 1000 = a(x + 1, y) then goto 230
225 line (x * l + tr, y * l - l + tr)-(x * l + tr, y * l + tr)
230 t = abs(a(x, y) - a(x, y + 1))
if t <= 1 or t - 1000 = a(x, y) or t - 1000 = a(x, y + 1) then goto 240
235 line (x * l - l + tr, y * l + tr)-(x * l + tr, y * l + tr)
240 next y, x
250 line (tr, tr)-(tr + szx, tr + szy), , b
line (l + tr, tr)-(l + l + tr, tr), &h8000000f
line (szx - l + tr, szy + tr)-(szx - l - l + tr, szy + tr), &h8000000f
260 goto 1010
400 while not (x = 2 and y = 1)
1000 for i = 1 to 4
for j = 1 to 8
print a(j, i); " ";
next
print inkey$;
next
return
wend
1010 end sub
vb部分相關文章
推薦
※vb快速讀取 textbox 第 n 行的資料 ※
vb禁止使用 alt-tab 或 ctrl-alt-del ※
生成迷宮的程式 ※
另一方法轉換大小寫 ※
vb控制項註冊 - 利用資源檔案將dll、ocx打包進exe檔案 ※
vb利用資源檔案進行工作 ※
***vb高效程式設計(優化) ※
vb陽曆轉陰曆 ※
純vb**取得硬碟的物理序列號 ※
vb獲得磁碟的檔案系統 ※
做vb的,經常註冊和反註冊ocx控制項和dll鏈 ※
vb從程式中生成exe檔案 ※
vb6監視/操作剪貼簿示例(vb6.0**) ※
vb6裡自動提交/自動填表的一種相對通用的方案 ※
vb移動沒有標題的窗體 ※
vb隨機字母的函式 ※
vb刪除帶子資料夾和檔案的資料夾 ※
vb怎樣遮蔽 alt+f4鍵 ※
vb 隱藏程序 ※
vb遮蔽文字框點右鍵時的彈出選單 ※
vb手控combobox的開啟或收起 ※
在vb中ini檔案的讀寫、刪除(對中文支援很好) ※
vb全域性熱鍵的寫法(佔很少的資源) ※
vb取消文字框的貼上功能 ※
vb常用檔案操作類 ※
vb獲取特殊資料夾 ※
vb獲取windows各常用目錄的函式(模組) ※
vb生成太極圖 ※
vb:常用內部函式大全,你會了幾個呢? ※
vb中sendmessage函式 ※
精簡vb程式的** ※
vb:將數字轉換為大寫中文 ※
vb:設定 msgbox 在若干時間之後若無回應則自動關閉 ※
vb:讀取及設定numlock/capslock/scrolllock的值 ※
vb:您知道 mid$ 函量可以放在 '=' 的左方嗎 ※
vb後台獲得按鍵,並執行自己的函式(非鉤子及熱鍵) ※
vb:將短檔名格式轉成長檔名 ※
在vb中使用iphlpapi.dll獲取網路資訊(上) ※
在vb中使用iphlpapi.dll獲取網路資訊(下)
>>>
迷宮自動生成程式
這學期開始時本來打算寫個自動生成迷宮的程式。但當時水平所限,寫不出來。假期這兩天把這個想法付諸實施,現在想想這個程式挺有意思的。程式和道理都非常簡單,有些類似於走迷宮。思路是這樣 1.首先假設迷宮場地是充滿牆壁沒有道路的。我們的工作其實就是把迷宮 挖 出來。不妨把開始時的迷宮看成一些小的 房間 每個...
3 隨機迷宮生成演示程式
假期寫了個基於隨機迷宮的遊戲,學習了相關隨機迷宮的生成演算法。其他演算法都好理解,也很容易寫出來。但就是隨機prim,怎麼都寫不對,生成的迷宮亂七八糟的,急死人了 沒辦法只好看別人的,但是又死活看不明白注釋,除錯又不太直觀,只好魔改程式,讓程式顯示構造迷宮過程中各個格仔的狀態。才弄懂明白,原來是隨機...
隨機生成迷宮
首先初始地圖所有位置均設為障礙牆,然後任意插入乙個牆體進牆佇列 再判斷此時牆體是否可以設定為路 判斷依據 上下左右四個位置是否只有乙個位置是路 若設定為路,則將該位置四周所有的牆插入佇列 若無法設定為路,直接從牆佇列中刪去當前結點所在的節點,若牆佇列不為空,則從佇列中隨機選取一處障礙重新執行,重複以...