uthman
QQ:3749615
級別: 家園常客
精華主題: 1 篇
發(fā)帖數(shù)量: 457 個(gè)
工控威望: 817 點(diǎn)
下載積分: 2752 分
在線時(shí)間: 778(小時(shí))
注冊時(shí)間: 2007-10-25
最后登錄: 2024-12-25
查看uthman的 主題 / 回貼
樓主  發(fā)表于: 2016-06-16 12:56
上午沒事,寫了個(gè)俄羅斯方塊程序。




  

test.zip (301 K) 下载次数:3392

因?yàn)橛玫氖?6位指令,最大列可以是(16-2)14列,當(dāng)前程序用的是12列,各位可以自己改成14列,也可以用32位指令改成更多列的,改變行數(shù)就不用說了
基本圖形用的是4點(diǎn)的,可以換成5點(diǎn)的(游戲難度更高)

程序詳解
P0  7種基本圖形4個(gè)方向,7*4=28個(gè)數(shù)據(jù)  D1000-D1027
P2  邊界檢測用數(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 碰撞檢測
    [背景圖形] + [動態(tài)圖形]     =0?   不等于0說明碰到邊界
    [當(dāng)前圖形] + [動態(tài)圖形]     =0?   不等于0說明與當(dāng)前圖形有干涉
    都為0 輸出M1
P4 圖形移動
    調(diào)用P1
    將D100-D103放入  [動態(tài)圖形]  中(D3指定行)
    調(diào)用P3 進(jìn)行     碰撞檢測
    未碰撞更新位置  D10 D11 D12 D13
P5 消行得分
    [當(dāng)前圖形]  D1200-D1231
    逐字(行)檢測  =001111111100 時(shí) 前面所有字左移一位    (下降了一行)
P6 畫面顯示
    [當(dāng)前圖形]  OR  [動態(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重新編輯 ]
本帖最近評分記錄:
  • 下載積分:+5(天黑看星星) 膜拜大佬
  • 下載積分:+1(湖南李奎) 真誠感謝!
  • 下載積分:+2(阿萱子v)
  • 下載積分:+2(代理市長) 我是真心的佩服 &n ..
  • 下載積分:+2(我是雨人) 好貼好貼!
  • 下載積分:+1(隨風(fēng)奔跑) 真誠感謝!
  • 下載積分:+1(zhouyong勇博) 好貼好貼!
    hanyu2004
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 65 個(gè)
    工控威望: 156 點(diǎn)
    下載積分: 584 分
    在線時(shí)間: 168(小時(shí))
    注冊時(shí)間: 2016-03-14
    最后登錄: 2024-06-12
    查看hanyu2004的 主題 / 回貼
    1樓  發(fā)表于: 2016-09-17 13:04
    厲害,想做自己想做的一切。