程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 游戲-c語言設計俄羅斯方塊判斷能否下落問題

游戲-c語言設計俄羅斯方塊判斷能否下落問題

編輯:編程綜合問答
c語言設計俄羅斯方塊判斷能否下落問題

我會用字摸點陣的方法保存每個方塊的形狀,並且能用掩碼的方式畫出來,但很
難判斷能否下落。
我判斷能否左右移動的算法是:用掩碼分別計算每一行最左或最右的方塊位置,然後在最左邊那則不能移動塊旁邊的中點取顏色,如果不是黑色則不能移動。

 // 檢查左邊界
int Left(int x, int y, unsigned int binary_code)
{
    int i;
    int leftmost = 0;   // 最左端與x的的距離
    int pix_in_line = 0;    // 標志一行是否有方塊
    int mask = 1;   // 設置掩碼

    for(i = 1; i<=16; i++, binary_code >>= 1)
    {
        if((mask & binary_code) == 1)
        {
            if(i%4 > leftmost)
                leftmost = i%4;
            if(i == 4)
                leftmost = 4;
            pix_in_line = 1;
        }
        x -= LEN;
        if(i%4 == 0)
        {
            x += 4*LEN;
            if(pix_in_line == 1)
            {
                if(getpixel(x - leftmost*LEN - LEN/2, y + LEN/2) != BLACK)
                    return 1;
                else if(x - leftmost*LEN == 0)
                    return 1;
            }
            y += LEN;
            leftmost = 0;
            pix_in_line = 0;
        }
    }
    return 0;
}

按這種方法判斷下邊界的要用兩個for循環,很麻煩。網上的代碼看上去沒這麼麻煩,但我看不懂,有哪位大神能提供下思路嗎?謝謝!

最佳回答:


為什麼不用a[m][n]數組表示位置(i,j)是否有方塊 判斷能否下落就是判斷下落的方塊(a[i1][j1], a[i2][j2], a[i3][j4],...)最下面的一個(j最大)的下面(j+1)是否有方塊即可

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved