|
這個是已經(jīng)做過的51單片機俄羅斯方塊游戲機,可以正常使用,大家有興趣的可以搞個玩玩。
0.png (45.94 KB, 下載次數(shù): 78)
下載附件
2017-3-31 19:19 上傳
0.png (43.14 KB, 下載次數(shù): 57)
下載附件
2017-3-31 19:21 上傳
完整源碼下載:
俄羅斯方塊程序.rar
(125.13 KB, 下載次數(shù): 29)
2017-3-31 13:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
主程序預覽:
- //*************************************************************************************************
- //* *
- //* ******************************游戲動作處理程序************************** *
- //* *
- //*************************************************************************************************
- #include "includes.h"
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定義當前方塊屬性變量>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- BLOCK *psta_BlockCur=sta_BlockSet,*psta_BlockNext; //指向當前方塊設定的指針。
- bit b_GameStart=0; //游戲開始標志位。
- //*************************************************************************************************
- //* *
- //* ********************************游戲初始化******************************* *
- //* *
- //*************************************************************************************************
- void vGameInitialize()
- {
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<清空LCD>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- vCleanAll();
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<清空游戲區(qū)域>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- vCleanAllBlock();
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化分數(shù)顯示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- vMarkInitialize();
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化時間顯示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- vTimeInitialize();
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化等級顯示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- vLevelInitialize();
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化游戲邊框>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- vShowFrame();
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化方塊位置>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- uc_BlockRow=STARTROW;
- uc_BlockLine=STARTLINE;
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化方塊類型>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- vNewBlock();
- psta_BlockCur=psta_BlockNext;
- vNewBlock();
- vShowBlockEx(6,18,psta_BlockNext);
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化方塊顯示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- vCreateBlock();
- //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<設游戲開始標志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- b_GameStart=1;
- }
- //*************************************************************************************************
- //* *
- //* ******************************判斷游戲是否結(jié)束************************** *
- //* *
- //*************************************************************************************************
- unsigned char ucIsGameOver()
- {
- unsigned char ucCount;
- for(ucCount=0;ucCount<12;ucCount++)
- if(ucReadBlock(0,ucCount))
- return 1;
- return 0;
- }
- //*************************************************************************************************
- //* *
- //* ******************************游戲結(jié)束處理函數(shù)************************** *
- //* *
- //*************************************************************************************************
- void vGameOver()
- {
- b_GameStart=0;
- vShowGraph(3,30,70,2,uca_GAMEOVER);
- }
- //*************************************************************************************************
- //* *
- //* ******************************游戲動作處理函數(shù)**************************** *
- //* *
- //*************************************************************************************************
- void vBlockAction(unsigned char ucAction)
- {
- if (ucMoveDecide(ucAction)) //判斷方塊是否可以移動。
- vMoveBlock(ucAction); //如果可以,則移動方塊。
- else
- if (ucAction == ACTIONDOWN)
- {
- if (ucIsGameOver())
- vGameOver();
- else
- {
- vGetMark();
- uc_BlockRow = STARTROW;
- uc_BlockLine = STARTLINE;
- psta_BlockCur = psta_BlockNext;
- vNewBlock();
- vShowBlockEx(6,18,psta_BlockNext);
- vCreateBlock();
- }
- }
- }
復制代碼
|
|