亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? badgerbash.c

?? 打地鼠程序游戲
?? C
字號:
/*
*文件說明:打地鼠程序
*時    間:2009-05-01
*作    者:小樹
*修改時間:
*修改人  :
*/

#include <reg52.h>
#include <stdlib.h>
#include "badgerbash_header.h"
#include "LCD1602.h"
/**添加還需要的頭文件**/

/**********************函數(shù)聲明區(qū)**********************/

/**函數(shù):void delay_ms(uchar num)
 * 參數(shù):num----延時時間
 * 功能:延時程序
 * 返回:無
 */
void delay_ms(uchar num)
{
	uchar i=200;
	while(num--)
	{
		while(--i);
	}
}


void initial(void);

/**函數(shù):int creatbadger(int num);
 * 參數(shù):num----產(chǎn)生地鼠的個數(shù)
 * 功能:生成地鼠隨機位置
 * 返回:
 */
void creatbadger(uchar num, uint p[posNum][2]);

/**函數(shù):void showbadger(uchar p[posNum]);
 * 參數(shù):p[posNum][2]----地鼠位置、時間數(shù)組
 * 功能:在相應(yīng)位置上顯示地鼠
 * 返回:無
 */
void showbadger(uint p[posNum][2]);

/**函數(shù):void bash(uchar key);
 * 參數(shù):key----按下的鍵號
 * 功能:打地鼠處理函數(shù),打中與否處理,積分處理
 * 返回:無
 */
void bashPro(uchar key, uint p[posNum][2]);

/**函數(shù):uchar keyscan(void);
 * 參數(shù):無
 * 功能:按鍵掃描
 * 返回:按鍵編號
 */
uchar keyscan(void);

/**函數(shù):void modeControl(uchar m);
 * 參數(shù):m----游戲模式
 * 功能:模式設(shè)置
 * 返回:無
 */
void modeControl(uchar m);

/**函數(shù):void setMode(void);
 * 參數(shù):無
 * 功能:游戲設(shè)置
 * 返回:無
 */
void set_Mode(void);

/**函數(shù):void monitor(void);
 * 參數(shù):無
 * 功能:系統(tǒng)監(jiān)控
 * 返回:無
 */
void monitor(void);

void setgrade(uchar g);

/**********************定義全局變量**********************/
uint showTime;            /*地鼠出現(xiàn)時間*/
uchar badgerNum;           /*地鼠同時出現(xiàn)數(shù)目*/
uchar badgerNow;           /*已經(jīng)出現(xiàn)的數(shù)目,通過該數(shù)與badgerNum的差,立即再產(chǎn)生(badgerNum-badgerNow)個*/

uchar grade;               /*游戲難度等級*/
uint levelscore[LEVEL] = {0, 50, 150, 350, 650, 1050, 1550, 2150, 2850}; /*進入各關(guān)卡所需的分數(shù)*/
uchar newlevel;

uint showPos[posNum][2];   /*地鼠出現(xiàn)位置,出現(xiàn)所在位置為1,第二位表示出現(xiàn)的時間*/
uchar keyNum;              /*按鍵編號*/

uint sc; uchar score[5];   /*游戲積分*/
uint gain;                 /*每打中一個的得分*/

uchar showEn;              /*顯示控制*/
uchar start, run;          /*游戲開始*/
uchar setsound,set_mod;    /*聲音、模式設(shè)置標志。0:未設(shè)置,1:允許/模式1,2:禁止/模式2   ***/

uint count, count2;
/**********************程序入口點,main函數(shù)**********************/

int main(void)
{
	/*系統(tǒng)初始化*/
	initial();
	
	/*循環(huán)處理*/
	while(1)
	{
		//LCD_SetDisplay(LCD_SHOW|LCD_CURSOR|LCD_FLASH);
		
		if (run == 1)            /*設(shè)置完成,游戲開始*/
		{
			keyNum = keyscan();
			
			bashPro(keyNum, showPos);
			
			if (showEn > 9)        /*為了更準確掃描鍵盤,控制顯示刷新頻率,500ms刷新一次*/
			{
				monitor();
				showbadger(showPos);
				showEn = 0;
			}
		}
		else                      /*剛進入系統(tǒng),進行游戲設(shè)置*/
			set_Mode();
	}
	
}

void initial(void)
{		
    uchar i = 50;
	
	/*定時器初始化*/
    TMOD = 0x01;           /*設(shè)置定時器0為工作方式1*/
	TH0 = 0x3c;            /*定時50ms*/
	TL0 = 0xb0;
	EA = 1;
	ET0 = 1;              /*開定時器0中斷*/
	TR0 = 1;            /*啟動T0*/
    	
	/*地鼠顯示清空*/
	showPort = 0xff;
	showbit = 1;
	
	/*清空按鍵號,無鍵按下*/
	keyNum = 254;
	
	/*設(shè)置打地鼠相關(guān)參數(shù)*/
	/*改為在模式中設(shè)定*/
	
	/*生成地鼠*/
	creatbadger(badgerNum, showPos);
	badgerNow = badgerNum;
	
	score[0] = 0 + '0';
	score[1] = 0 + '0'; 
	score[2] = 0 + '0';
	score[3] = 0 + '0';
	score[4] = '\0';
	
	/*液晶初始化*/
	LCD_Initial();
	GotoXY(0,0);
	Print(" Badger Inside! ");
	GotoXY(0,1);
	Print("Let's bash it..");
	
	/*延時定格歡迎畫面*/
	delay_ms(200);
	delay_ms(200);
	delay_ms(200);
	delay_ms(200);
	
	/*產(chǎn)生隨機種子*/
	 srand(0);
	 while(i--)
		rand();
	
	/*其他初始化操作*/
	
}

void creatbadger(uchar num, uint p[posNum][2])
{
	uchar i,temp;
	i = num;
	/*參數(shù)范圍檢查*/
	if((num < 0) || (num > posNum - 1))
		return;
	
	while(i > 0)
	{
		temp = rand()%posNum;          /*產(chǎn)生0~posNum之間的隨機數(shù)*/
		if (p[temp][0] == 0)              /*該位置沒出現(xiàn)地鼠*/
		{
			p[temp][0] = 1;               /*在相應(yīng)的位置上置1,即產(chǎn)生地鼠*/
			p[temp][1] = showTime;
		}
		else                           /*該位置已有地鼠,重新產(chǎn)生*/
			continue;
		i--;
	}

}

void showbadger(uint p[posNum][2])
{
	uchar i;
	uchar showdata;         
	showdata = 0xff;showbit = 1;       /*顯示數(shù)據(jù)清零*/
	
	/*將地鼠所在位置數(shù)組-->轉(zhuǎn)換成-->直接輸出端口的數(shù)據(jù)*/
	for (i = 0;i < posNum-1; i++)
	{
		/*低8位*/
		if (p[i][0] == 1 && p[i][1] > 0)
			showdata &=~(0x01<<i); 
	}
	
	/*將數(shù)據(jù)輸出,顯示地鼠*/
	showPort = showdata;
	/*最高位*/
	if (p[i][0] == 1 && p[i][1] > 0)
		showbit = 0;
}

void bashPro(uchar key, uint p[posNum][2])
{
	uint t;
	uchar i, l[2];
	
	if (key > posNum-1)      /*無按鍵按下*/
		return;
	
	if (p[key][0] == 1)     /*打中地鼠*/
	{
		p[key][0] = 0;      /*地鼠消失*/
		p[key][1] = 0;
		/*if (setsound == 1)*/
		/*beep();             發(fā)出聲效*/
		//right = ~right;
		sc += gain;          /*積分增加*/
		
		/*只有在模式1下,進入新關(guān)卡*/
		if (set_mod == 1)
		{
			for (i=0; i< LEVEL; i++)
				if (sc == levelscore[i])
				{
					grade = i + 1;
					setgrade(grade);
					
					l[0] = grade + '0';
					l[1] = '\0';
					
					GotoXY(0,0);
					Print("Level ");
					GotoXY(6,0);
					Print(l);
			}
		}
		/*只有在擊中的情況下才刷新LCD*/
		score[0] = sc/1000 + '0';
		t = sc % 1000;
		score[1] = t/100 + '0';
		t = t % 100;
		score[2] = t/10 + '0';
		t = t % 10;
		score[3] = t + '0';
		score[4] = '\0';
		
		GotoXY(12,0);
		Print(score);
		
		key = 254;      /*等待下一按鍵*/
	}
}

/***    鍵盤掃描程序  ***/
/*本鍵盤掃描程序只支持單鍵*/
uchar keyscan(void)
{
	uchar row, col = 0, key = 254;
	//uchar test[4];
	row1 = row2 = row3 = 1;       /*行輸出高電平,列輸出低電平*/
	col1 = col2 = col3 = 0;
	if ((row1 && row2 && row3) == 0)
	{
		//delay_ms(5);
		if ((row1 && row2 && row3) == 0)
		{
			if(row1 == 0)
				row = 0;
			if(row2 == 0)
				row = 1;
			if(row3 == 0)
				row = 2;
			
			row1 = row2 = row3 = 0;       /*行輸?shù)碗娖剑休敵龈唠娖?/
			col1 = col2 = col3 = 1;
			
			if(col1 == 0)
				col = 0;
			if(col2 == 0)
				col = 1;
			if(col3 == 0)
				col = 2;
		}
		
		key = row * 3 + col;
		
		/*測試按鍵掃描
		test[0] = row + '0';
		test[1] = col + '0';
		test[2] = key + '0';
		test[3] = '\0';
		GotoXY(0,0);
		Print(test);
		*/
	} 
	return key;
}

void setgrade(uchar g)
{
	switch(g)
	{
	case 0:/*關(guān)卡1*/
		showTime = 3000;      /*單位ms*/
		badgerNum = 5;
		gain = 1;
		break;
	case 1:/*關(guān)卡2*/
		showTime = 2500;      /*單位ms*/
		badgerNum = 4;
		gain = 2;		
		break;
	case 2:/*關(guān)卡3*/
		showTime = 2000;      /*單位ms*/
		badgerNum = 4;
		gain = 4;
		break;
	case 3:/*關(guān)卡4*/
		showTime = 1500;      /*單位ms*/
		badgerNum = 3;
		gain = 6;
		break;
	case 4:/*關(guān)卡5*/
		showTime = 1000;      /*單位ms*/
		badgerNum = 3;
		gain = 8;
		break;
	case 5:/*關(guān)卡6*/
		showTime = 900;      /*單位ms*/
		badgerNum = 2;
		gain = 10;
		break;
	case 6:/*關(guān)卡7*/
		showTime = 800;      /*單位ms*/
		badgerNum = 1;
		gain = 12;
		break;
	case 7:/*關(guān)卡8*/
		showTime = 600;      /*單位ms*/
		badgerNum = 1;
		gain = 14;
		break;
	default:/*關(guān)卡9:需要5600分進入*/
		showTime = 500;      /*單位ms*/
		badgerNum = 1;
		gain = 34;
		break;
	}
}

void modeControl(uchar m)
{
	uchar l[2];
	
	switch (m)
	{
	case 1:        /*模式1*/
		setgrade(0);
		
		l[0] = 0 + '0';
		l[1] = '\0';
		/*顯示關(guān)卡*/
		
		GotoXY(0,0);
		Print("Level ");
		GotoXY(6,0);
		Print(l);
		break;
	case 2:        /*模式2*/
		showTime = 3000;      /*單位ms*/
		badgerNum = 1;
		gain = 1;
		
		GotoXY(0,0);
		Print("TRAINING");
		Print(l);		
		break;
	default:
		break;
	}
}

void set_Mode(void)
{
	/*模式設(shè)置
	* 1、關(guān)卡模式:
	* 2、挑戰(zhàn)模式:
	*/
	
	/*顯示提示*/
	LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
	delay_ms(50);
	
	GotoXY(1,0);
	Print("..Start Game..");
	GotoXY(2,1);
	Print("press 'MODE'");
	
		
	while(1)
	{
		keyNum = keyscan();  /*掃描按鍵*/
		
		if (start == 0)     /*進入游戲*/
		{
			if (keyNum == 0)
			{
				start = 1;
			}
			keyNum = 254;    /*等待下一按鍵*/
			delay_ms(100);    /*延時穩(wěn)定,防抖動*/
			
			if (start != 0)    /*進入聲音設(shè)置*/
			{				
				LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
				GotoXY(0,0);
				Print("  UP: SOUND ON");
				GotoXY(0,1);
				Print("DOWN: SOUND OFF");
			}
		}
		
		if (setsound == 0 && start == 1)     /*聲音設(shè)置*/
		{
			if (keyNum == 1)
				setsound = 1;
			else if (keyNum == 2)
				setsound = 2;
			
			keyNum = 254;    /*等待下一按鍵*/
			delay_ms(100);
			
			if (setsound != 0)
			{
				LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
				GotoXY(0,0);			
				Print(" UP: TOURNANMENT");
				GotoXY(0,1);
				Print("DOWN: TRAINING");
			}
		}
		
		if (set_mod == 0 && setsound != 0)     /*模式設(shè)置*/
		{
			if (keyNum == 1)
				set_mod = 1;
			else if (keyNum == 2)
				set_mod = 2;
			else
				set_mod = 0;
			
			keyNum = 254;    /*等待下一按鍵*/
			delay_ms(100);
			
			if (set_mod != 0)
			{
				LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
				delay_ms(50);
				
				modeControl(set_mod);
								
				/*設(shè)置完成,游戲開始*/
				run = 1;
				break;
			}
		}
		
	}
}

void monitor(void)
{
	uchar i,temp = 0;
	
	for (i = 0; i < posNum; i++)
	{	
		if (showPos[i][0] == 1)
			temp++;
	}
	badgerNow = temp;
	
	creatbadger(badgerNum-badgerNow, showPos);
}

void timer0Int(void) interrupt 1 using 1
{
	TH0 = 0x3c;            /*定時50ms*/
	TL0 = 0xb0;
	
	/**********處理操作****************/
	count++;
	showEn++;
	
	//RUN = ~RUN;
	
	for (count2 = 0; count2 < posNum; count2++)
	{
		if (showPos[count2][1] > 0)
		{
			showPos[count2][1]-=50;
		}
		if (showPos[count2][0] == 1 && showPos[count2][1] <= 0)
		{
			showPos[count2][0] = 0;
		}
	}
}









?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品在线电影| 国产一区高清在线| 亚洲免费在线视频| 中文字幕精品—区二区四季| 国产午夜亚洲精品午夜鲁丝片| 亚洲精品一区二区三区在线观看| 91精品国产高清一区二区三区蜜臀| 欧美三级一区二区| 欧美亚州韩日在线看免费版国语版| 色www精品视频在线观看| 色屁屁一区二区| 欧美性欧美巨大黑白大战| 欧美性猛交xxxx黑人交| 欧美一区二区视频观看视频| 91精品免费观看| 亚洲精品一区二区三区香蕉| 国产日韩精品一区| 最新中文字幕一区二区三区| 亚洲欧美一区二区三区国产精品| 依依成人综合视频| 日欧美一区二区| 久久精品免费看| 成人一级片网址| 一本到一区二区三区| 欧美日韩一区二区三区四区五区 | 欧美丰满少妇xxxbbb| 日韩三区在线观看| 久久久久青草大香线综合精品| 中国av一区二区三区| 亚洲乱码精品一二三四区日韩在线| 亚洲午夜久久久| 老色鬼精品视频在线观看播放| 国产精品香蕉一区二区三区| 91美女片黄在线观看91美女| 欧美日韩日日骚| 欧美精品一区二区三区蜜桃 | 亚洲欧美韩国综合色| 天堂va蜜桃一区二区三区 | 91久久精品网| 日韩精品在线一区二区| 国产精品黄色在线观看| 午夜精品福利一区二区三区蜜桃| 久久精品噜噜噜成人88aⅴ| 99视频一区二区三区| 欧美另类高清zo欧美| 国产日韩欧美制服另类| 亚洲高清不卡在线| 国产一区二区三区在线观看免费| 色综合天天综合给合国产| 欧美一级精品大片| 最新不卡av在线| 免费日韩伦理电影| 色婷婷综合视频在线观看| 日韩免费观看高清完整版| 亚洲青青青在线视频| 久久精品72免费观看| 欧洲一区在线电影| 久久久久久一二三区| 天天操天天干天天综合网| 成人精品gif动图一区| 日韩视频免费观看高清完整版在线观看 | 欧美另类久久久品| 国产精品沙发午睡系列990531| 香蕉久久一区二区不卡无毒影院| 国产91精品免费| 欧美一级国产精品| 亚洲午夜私人影院| 不卡的av网站| 国产亚洲欧美色| 麻豆精品视频在线观看视频| 欧美性色黄大片| 亚洲视频1区2区| 成人免费毛片嘿嘿连载视频| 精品国产一区二区三区av性色| 亚洲超丰满肉感bbw| 91浏览器打开| 国产精品美女久久久久高潮| 国产资源在线一区| 欧美一区二区三区色| 一区二区三区中文在线观看| 国产成人福利片| 久久亚洲一级片| 久久国产尿小便嘘嘘| 欧美福利视频一区| 水野朝阳av一区二区三区| 色婷婷亚洲综合| 亚洲天堂网中文字| www.久久精品| 国产精品国产三级国产| 国产成人午夜精品5599| 久久美女艺术照精彩视频福利播放| 日韩制服丝袜先锋影音| 欧美日韩电影在线播放| 亚洲 欧美综合在线网络| 欧美综合一区二区| 亚洲主播在线播放| 欧美日韩中文精品| 亚洲第一会所有码转帖| 精品视频123区在线观看| 亚洲午夜日本在线观看| 欧美精品一二三区| 日本欧美一区二区| 欧美成人女星排名| 国产伦理精品不卡| 国产婷婷精品av在线| 高清免费成人av| 国产精品国模大尺度视频| 99久久777色| 一区二区三区欧美亚洲| 欧美性大战久久| 日本网站在线观看一区二区三区| 日韩女优制服丝袜电影| 狠狠色2019综合网| 欧美国产精品专区| 91视频.com| 丝袜诱惑亚洲看片| 欧美www视频| 国产黄色精品视频| 成人免费在线视频| 欧美亚洲一区三区| 开心九九激情九九欧美日韩精美视频电影 | 成人午夜免费电影| 中文字幕成人在线观看| 91日韩精品一区| 亚洲成人动漫在线观看| 717成人午夜免费福利电影| 久久激情五月激情| 亚洲欧洲精品一区二区精品久久久 | 免费成人av在线| 国产亚洲午夜高清国产拍精品| av资源网一区| 婷婷久久综合九色综合伊人色| 欧美一区二区三区四区久久| 国产美女在线观看一区| 综合婷婷亚洲小说| 制服丝袜亚洲网站| 成人动漫精品一区二区| 亚洲午夜精品网| 久久久久九九视频| 在线视频国内自拍亚洲视频| 免费视频最近日韩| 国产精品国产三级国产aⅴ原创 | 日韩欧美国产不卡| 成人精品鲁一区一区二区| 亚洲一区二区三区三| 久久久亚洲高清| 在线亚洲免费视频| 精品一区二区三区在线播放 | 亚洲图片欧美视频| 久久久久国产精品麻豆| 欧美偷拍一区二区| 国产91精品一区二区麻豆亚洲| 亚洲va天堂va国产va久| 国产亚洲欧美色| 在线播放国产精品二区一二区四区| 国产精品99精品久久免费| 亚洲午夜三级在线| 中文字幕国产一区二区| 日韩一区二区三区观看| caoporn国产一区二区| 久久精品国产久精国产爱| 亚洲美女视频在线观看| 2024国产精品| 在线播放91灌醉迷j高跟美女| 国产成人免费在线观看不卡| 午夜精品爽啪视频| 亚洲蜜桃精久久久久久久| 久久精品亚洲国产奇米99| 欧美一区二区三区喷汁尤物| 91影院在线观看| 福利一区二区在线| 久久超碰97中文字幕| 亚洲精品国产a久久久久久| 国产亚洲欧美日韩在线一区| 欧美一区二区三区白人| 在线观看区一区二| 国产精品99久久久久久久女警| 午夜精品一区二区三区免费视频| 亚洲人成在线播放网站岛国| www一区二区| 欧美大白屁股肥臀xxxxxx| 欧美日韩视频第一区| 97久久超碰精品国产| 国产成人精品一区二区三区四区| 免费av成人在线| 日韩综合在线视频| 亚洲成人av在线电影| 亚洲激情校园春色| 日韩一区欧美一区| 国产精品久久久久久久久久免费看| 精品国产自在久精品国产| 欧美剧情片在线观看| 欧美性淫爽ww久久久久无| jlzzjlzz国产精品久久| a美女胸又www黄视频久久| 成人18精品视频| 成人天堂资源www在线| 风间由美一区二区三区在线观看| 久久精工是国产品牌吗| 蜜桃视频免费观看一区|