俄羅斯方塊積木表示

來源:互聯網
上載者:User

積木表示

一種有7種積木:

        ■             ■           

        ■■   ■■  ■■  ■■

          ■ ■■    ■      ■■   (正反兩種)

 

        ■           ■■ 

        ■   ■■■    ■      ■

        ■■ ■        ■  ■■■

 

          ■         ■■

          ■ ■      ■    ■■■

        ■■ ■■■  ■        ■

 

        ■■

        ■■

 

■   ■■■■

 

          ■     ■            ■

        ■■■ ■■  ■■■  ■■    (共計19件積木)

                 ■    ■      ■

 

可以用一個三維數組block[4][4][4]來表示每個積木,第一維用於表示積木的四種旋轉狀態,後兩維用4x4的0/1數字陣來表示這幾種積森的形狀,如:

{

{

      {0, 0, 1, 0},

      {0, 0, 1, 0},

      {0, 1, 1, 0},

      {0, 0, 0, 0}

},

{

      {0, 0, 0, 0},

      {0, 1, 0, 0},

      {0, 1, 1, 1},

      {0, 0, 0, 0}

},

{

      {0, 0, 0, 0},

      {0, 1, 1, 0},

      {0, 1, 0, 0},

      {0, 1, 0, 0}

},

{

      {0, 0, 0, 0},

      {1, 1, 1, 0},

      {0, 0, 1, 0},

      {0, 0, 0, 0}

}

}//這是L形的積木

 

一字形和Z形的還有田字的積木也按4種狀態來做,只不過狀態有重複而已,這樣就不用為不同的積木用不同的旋轉方法了

 

積木的變形

積木的變形很好做,就是迴圈把相當積木矩陣中的旋轉狀態讀出來

比如當前積木是block [4][4],假設丁字形積木的數組為block2[4][4][4],那麼旋轉就是將block2[0],block[1],block[2],block[3]…->block[0]迴圈賦給block數組。每旋轉一次當前旋轉值(即數組的索引,範圍為{0,1,2,3})加一,如果等於4,則重新歸0

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.