上午沒(méi)事,寫(xiě)了個(gè)俄羅斯方塊程序。
test.zip (301 K) 下载次数:3381 因?yàn)橛玫氖?6位指令,最大列可以是(16-2)14列,當(dāng)前程序用的是12列,各位可以自己改成14列,也可以用32位指令改成更多列的,改變行數(shù)就不用說(shuō)了
基本圖形用的是4點(diǎn)的,可以換成5點(diǎn)的(游戲難度更高)
程序詳解
P0 7種基本圖形4個(gè)方向,7*4=28個(gè)數(shù)據(jù) D1000-D1027
P2 邊界檢測(cè)用數(shù)據(jù) D1100-D1128[背景圖形]
生成 110000000011
110000000011
……
110000000011
111111111111
111111111111
P1 根據(jù)D0 D1 D2生成圖形 存在D100-D103數(shù)組里
D0 1-7種基本圖形
D1 1-4種方向
D2 指定圖形所在的列
P3 碰撞檢測(cè)
[背景圖形] + [動(dòng)態(tài)圖形] =0? 不等于0說(shuō)明碰到邊界
[當(dāng)前圖形] + [動(dòng)態(tài)圖形] =0? 不等于0說(shuō)明與當(dāng)前圖形有干涉
都為0 輸出M1
P4 圖形移動(dòng)
調(diào)用P1
將D100-D103放入 [動(dòng)態(tài)圖形] 中(D3指定行)
調(diào)用P3 進(jìn)行 碰撞檢測(cè)
未碰撞更新位置 D10 D11 D12 D13
P5 消行得分
[當(dāng)前圖形] D1200-D1231
逐字(行)檢測(cè) =001111111100 時(shí) 前面所有字左移一位 (下降了一行)
P6 畫(huà)面顯示
[當(dāng)前圖形] OR [動(dòng)態(tài)圖形] = [顯示圖形]
D1600是人機(jī)上的點(diǎn),用作顯示
P7 隨機(jī)數(shù)產(chǎn)生圖形
隨機(jī)產(chǎn)生 1-7 1-4 兩組數(shù)據(jù),并初始行,列 [D20,D21,D22,D23] 下次下落方塊數(shù)組
調(diào)用P1 生成 下一個(gè)圖形 [D1632,D1633,D1634,D1635] 用于人機(jī)顯示
P8 下一個(gè)方塊下落
將下次下落方塊數(shù)組 放入 當(dāng)前方塊數(shù)組 [D10,D11,D12,D13]
調(diào)用P1 合成圖形 用于人機(jī)顯示
[ 此帖被uthman在2016-06-17 16:34重新編輯 ]