久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機制作的俄羅斯方塊游戲機源程序
[打印本頁]
作者:
andy20112
時間:
2017-3-31 13:55
標題:
51單片機制作的俄羅斯方塊游戲機源程序
這個是已經做過的51單片機俄羅斯方塊游戲機,可以正常使用,大家有興趣的可以搞個玩玩。
0.png
(45.94 KB, 下載次數: 78)
下載附件
2017-3-31 19:19 上傳
0.png
(43.14 KB, 下載次數: 57)
下載附件
2017-3-31 19:21 上傳
完整源碼下載:
俄羅斯方塊程序.rar
(125.13 KB, 下載次數: 29)
2017-3-31 13:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
主程序預覽:
/* 俄羅斯方塊游戲
*
* author:LastRitter
* date:2007.11.10
* modify:cole3
* date:2010.10.28
*/
#include "includes.h"
#define TIME1H 0x3C
#define TIME1L 0xB0 //定時器1溢出時間:50ms
bit b_BlockDown=0; //方塊定時下降標志位。
unsigned char uc_KeyCode=0; //鍵盤掃描輸入暫存。
bit b_TimeAdd=0;
bit k_flag=0;
//主函數
void main(void)
{
vLCDInitialize(); //LCD初始化。
//定時器1,用于方塊定時下降
TH1 = TIME1H;
TL1 = TIME1L;
TR1 = 1; //開啟定時器1
ET1 = 1; //開定時器1中斷
EA = 1;
vStartPicture(PIC_INITIALIZE);
while(1)
{
// 掃描按鍵
vScanKey();
if (uc_KeyCode != 0) //如果有按鍵按下,則進行按鍵掃描和鍵碼處理。
{
vKeyProcess(uc_KeyCode);
uc_KeyCode=0;
}
if (b_BlockDown) //方塊定時下降。
{
b_BlockDown = 0;
vBlockAction(ACTIONDOWN);
}
if (b_TimeAdd)
{
b_TimeAdd=0;
vTimeAdd();
}
if (uc_StartPicture == PIC_CONTINUE)
{
uc_StartPicture = PIC_PAUSE;
if (!b_GameStart)
vStartPicture(PIC_CONTINUE);
}
}
}
//定時器1中斷,用于方塊定時下降
void vTimer1(void) interrupt 3
{
static unsigned char sucDownCount=0,sucTimeCount=0,sucStPicCount=0;
if(b_GameStart)
{
if(sucDownCount>uc_GameSpeed)
{
sucDownCount=0;
b_BlockDown=1;
}
else
sucDownCount++;
if(sucTimeCount==200)
{
sucTimeCount=0;
b_TimeAdd=1;
}
else
sucTimeCount++;
}
else
{
if(uc_StartPicture!=PIC_STOP)
{
if(sucStPicCount==40)
{
uc_StartPicture=PIC_CONTINUE;
sucStPicCount=0;
}
else
sucStPicCount++;
}
}
//恢復定時器1溢出時間
TH1=TIME1H;
TL1=TIME1L;
}
復制代碼
//*************************************************************************************************
//* *
//* ******************************游戲動作處理程序************************** *
//* *
//*************************************************************************************************
#include "includes.h"
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定義當前方塊屬性變量>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
BLOCK *psta_BlockCur=sta_BlockSet,*psta_BlockNext; //指向當前方塊設定的指針。
bit b_GameStart=0; //游戲開始標志位。
//*************************************************************************************************
//* *
//* ********************************游戲初始化******************************* *
//* *
//*************************************************************************************************
void vGameInitialize()
{
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<清空LCD>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vCleanAll();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<清空游戲區域>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vCleanAllBlock();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化分數顯示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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;
}
//*************************************************************************************************
//* *
//* ******************************判斷游戲是否結束************************** *
//* *
//*************************************************************************************************
unsigned char ucIsGameOver()
{
unsigned char ucCount;
for(ucCount=0;ucCount<12;ucCount++)
if(ucReadBlock(0,ucCount))
return 1;
return 0;
}
//*************************************************************************************************
//* *
//* ******************************游戲結束處理函數************************** *
//* *
//*************************************************************************************************
void vGameOver()
{
b_GameStart=0;
vShowGraph(3,30,70,2,uca_GAMEOVER);
}
//*************************************************************************************************
//* *
//* ******************************游戲動作處理函數**************************** *
//* *
//*************************************************************************************************
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();
}
}
}
復制代碼
作者:
bbq123bbq
時間:
2017-4-1 10:46
看不懂,先頂一個
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲国产精品99久久久久久久久
|
一级二级三级在线观看
|
欧美极品在线播放
|
欧美成人免费在线视频
|
中文字幕亚洲视频
|
九九热这里
|
免费麻豆视频
|
亚洲日本欧美日韩高观看
|
a级在线免费视频
|
国产精品高潮呻吟
|
草草草网站
|
亚洲精品国产偷自在线观看
|
国产成人精品一区二
|
又爽又黄axxx片免费观看
|
h视频在线观看免费
|
在线精品亚洲欧美日韩国产
|
99re在线免费视频
|
99久久婷婷国产综合精品电影
|
亚洲成av
|
日韩一区二区三区视频在线播放
|
久久久精品视频免费
|
日韩在线视频一区二区三区
|
视频一区在线
|
日韩视频中文字幕
|
欧美一区二区小视频
|
日本不卡一区二区三区在线观看
|
福利片在线观看
|
一级中国毛片
|
精品一区二区三区不卡
|
国产精品国产成人国产三级
|
欧美日韩一区二区三区四区五区
|
欧美99
|
不卡一二三区
|
久草www
|
精品真实国产乱文在线
|
国产1区在线
|
日本午夜免费福利视频
|
日韩欧美成人一区二区三区
|
亚洲 中文 欧美 日韩 在线观看
|
91麻豆精品一区二区三区
|
91国语清晰打电话对白
|