我羅斯方塊最終篇報告

2022-09-04 05:24:09 字數 1648 閱讀 8083

這個作業屬於哪個課程

2023年物件導向程式設計

這個作業要求在**

我羅斯方塊最終篇

小組成員

031902602 陳志良 031902601 陳帥 031902629 楊寓荃

github

專案位址

截圖:

規則介面:

單人:

雙人:

完成該作業的過程:

①:因為這次是為了設計雙人版的,所以我們首先是先做乙個單人版,後面再這個基礎上設計雙人版。

②:各類函式實現著實有點難。

③:我們在實現對方塊做操作時,對鍵盤的讀入,使用了getasynckeystate()函式。

**要點:

①:對方塊的儲存,我們沒有用三維,我們採用的是乙個內涵二維陣列的結構體,然後定義乙個二維的結構體陣列,以此達到目的。

通過請教其他同學,我們知道了getasynckeystate函式,這個函式可以響應鍵盤上按鍵的狀態,通過這個函式我們就可以實現:在乙個迴圈內,有兩個玩家同時進行操作。開始的時候,我們通過一下方式呼叫該函式

if(getasynckeystate(vk_left)&0x25)

但發現用這種方式呼叫時,有的字母無法響應。於是改成了以下方式

​if(getasynckeystate(vk_left)&0x8000)

​但卻又出現了其他問題,我們原先採用的是在一次下落中通過進行10000次迴圈來讀入鍵盤操作,而在鍵盤按下的整個過程中會經歷多個迴圈,就會導致一次按鍵進行了多次操作。最終我們改變了迴圈方式,在每次讀入鍵盤迴圈的末尾加入sleep(120),讓程式休眠,避免了一次按鍵多次操作的情況,同時將迴圈次數改為5次,意味著一次下落內可進行的操作為5次。

最終完成了雙人模式的​實現。

③:對**的旋轉實現,我們是把各種方塊都弄好(dia[m][n]),只要(n+1)%=4,即可完成。

④:在鍵盤的讀入時,不能同時讀入s與↓,也就是說不能同時加速,這是乙個問題。

⑤:我們組的作品沒有做視窗化的處理。

⑥:我們組的**分塊沒有具體的分,寫的較為複雜,沒有較多用到物件導向程式設計的方法。

⑦:缺少重玩的功能,以及記錄最高分的功能。

⑧:無背景**。

⑨:美觀度急缺。

收穫與心得:

怎麼說呢,在看完其他組的作品報告之後呢,我們組自愧不如。我們組的我羅斯應該是』食物鏈低端『的那種,真的太強了!!其實,在做這個我羅斯之前,我們的內心是有點害怕的,因為第一次做乙個小遊戲,但也是有點興奮的。至於收穫嘛,對於我,我第一次接觸了其他新的事物,比如方塊著色、清除游標、游標移動、sleep函式、以及我們組用到的getasynckeystate函式,著實是長知識了一回,同時,我也認識到了我自己的不足,還是以上學期的思維寫**,沒有用物件導向的思維寫,著實慚愧,但我還是希望我在今後的學習道路上更加努力。

我羅斯方塊最終篇

這個作業屬於哪個課程 2020年物件導向程式設計 int block 7 4 4 4 block 方塊種類 4種變形 class tetris class tetris game public tetris 兩個玩家類其中有部分函式是相同的,有想過合併起來,但是還沒有實現出來 class tetri...

我羅斯方塊最終篇

這個作業屬於哪個課程 2020年物件導向程式設計 福州大學 數學與電腦科學學院 這個作業要求在 我羅斯方塊最終篇 作業正文 如下設計者 031902231 鄭霖睿 031902220 汪鴻宇 031902212 林炳燦 專案位址 這次的作業並沒有完成預期的指標,一些必要功能還無法實現 指渲染類 因此...

我羅斯方塊最終篇

作業描述 詳情作業屬於 2020物件導向程式設計 作業要求 作業目標 作業正文 小組成員 倉庫 一 執行效果 遊戲過程 遊戲結束 二 要點 介面渲染 class paint 初始化 void paint initenviroment 提前將各種方塊的資訊儲存在陣列中,通過隨機數取模的方式來隨機生成方...