我羅斯方塊最終篇

2022-09-12 15:39:24 字數 2139 閱讀 5688

這個作業屬於哪個課程

2023年物件導向程式設計 (福州大學 - 數學與電腦科學學院)

這個作業要求在**

我羅斯方塊最終篇

作業正文

如下設計者

031902231 鄭霖睿 031902220 汪鴻宇 031902212 林炳燦

專案位址

這次的作業並沒有完成預期的指標,一些必要功能還無法實現(指渲染類),因此無法展現遊戲過程,,。。

預想的開始介面

預想的結束介面

方塊的的自動下落

ulonglong now,last;

int tick=100;

last=gettickcount();

while (1)

這通過了gettickcount()函式來獲取時間,並通過now和last兩個函式分別記載下乙個自動下落時對應的時間和當前時間,若超過的tick所設定的間隔,則進行執行,並改變記錄時間

而if裡則執行的是標準的下降用的函式,也用於後續部分。

if(player1.down())

int t=player1.getscore();

if(t)}}

按鍵識別

while(_kbhit())

else if(key=='8')

else if(key=='a')

else if(key=='4')

我們是用_kbhit()函式來判定有無輸入,然後用key來接受輸入的指令,並用後續的多個if來執行對應的命令,此處僅展示出部分語句

碰撞檢測

bool player::ifmove(block bl, int x, int y) 

else if(player1_map[x+i][y+j]==1 && x + i >=0) }}

}return true;

}

通過這個函式的bool值來對其他的左右下移動以及變形進行判斷是否能夠執行

消行

int player::getscore()

}if(flag!=0)}}

}return count;

}

能夠通過遍歷來查詢有哪行為全滿的,若全滿則將上一行覆蓋到此行迴圈執行完所有行的覆蓋,並有count值返回來確認要加上幾行

加行

void player::addline(int t)}}

通過rand()函式來隨機確定一種方塊,但目前都只確定方塊的第一種形態

勝負判定

bool player::faile()}}

return true;

}

特意的將玩家的遊戲區域列為的大小,並準備將前5行作為禁區,一但檢測到有方塊,則返回false值,並像下面所示將對手的值改為true

if(player2.faile())
並通過這判斷來確認誰勝誰負

if(player1.win==true)

if(player2.win==true){ //執行結束

//此處應有顯示玩家2獲勝用的函式

return;

這次的的大作業使我們見識到了物件導向的思路,以及靈活使用多個類來組合完成所需的功能,並且通過.cpp與.**件來分別儲存類物件和函式的實現,並在最後統一有序的呼叫。並且,我們還通過查閱資料獲取了一些以前從來沒有見過的函式的使用方法,這也增長了我們見識,提高了自學能力。

沒能完成此次大作業可能是最大的問題。。。。其次目前所完成的功能也沒有經過徹底的檢查來排除潛在的bug。

在網路與隊友們進行聯絡的效率好像也並不高,我們也沒有充分利用github來進行有效交流,要在以後加強隊友間的合作性

程式的封裝性好像也不是很好,但是封裝起來**的複雜度又會再次提公升。。。

我羅斯方塊最終篇

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

我羅斯方塊最終篇

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

我羅斯方塊最終篇報告

這個作業屬於哪個課程 2020年物件導向程式設計 這個作業要求在 我羅斯方塊最終篇 小組成員 031902602 陳志良 031902601 陳帥 031902629 楊寓荃 github 專案位址 截圖 規則介面 單人 雙人 完成該作業的過程 因為這次是為了設計雙人版的,所以我們首先是先做乙個單人...