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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 94.c

?? C語言105例光盤保存
?? C
字號:
#include<stdio.h>
#include<stdlib.h> 
#include<graphics.h> 
#include<bios.h>
/*下面定義了一些控制命令*/
/*重畫界面命令*/
#define CMDDRAW       5 
/*消去一個滿行的命令*/
#define CMDDELLINE    6 
/*自動下移一行的命令*/
#define CMDAOTODOWN   7 
/*生產新的方塊*/
#define CMDGEN        8 
/*向左移動的命令,以左箭頭<-控制,它的ASCII碼值是75*/
#define CMDLEFTMOVE   75 
/*向右移動的命令,以右箭頭->控制,它的ASCII碼值是77*/
#define CMDRINGHTMOVE 77 
/*旋轉方塊的命令,以空格來控制*/
#define CMDROTATE     57 
/*向下移動的命令,以向下的箭頭控制,它的ASCII碼值是80*/
#define CMDDOWNMOVE   80 
/*退出游戲的控制命令,以esc鍵控制,它的ASCII碼值是1*/
#define CMDESC        1 

/*定義了方塊下降的時間間隔*/
#define TIMEINTERVAL  4 

/*下面定義了游戲區(qū)的大小*/
#define MAXWIDTH      15 
#define MAXHEIGHT  		30 
/*組成方塊的小格子的寬度*/
#define BOXWIDTH      15 

/*用兩個數(shù)組來表示新舊兩個矩形游戲區(qū)*/
int oldarea[MAXHEIGHT+1][MAXWIDTH]; 
int area[MAXHEIGHT+1][MAXWIDTH]; 
/*定義一個需要改變的屏幕區(qū)域,初次之外的區(qū)域不用進行重繪*/
int actW,actH,actX,actY; 
/*當前方塊的一些屬性(坐標,顏色,高,寬)*/
int curX,curY,curColor,curW,curH; 
/*新的方塊的一些屬性(坐標,顏色,高,寬)*/
int newX,newY,newColor,newW,newH; 
/*制定方塊的狀態(tài)*/
int active; 
/*存儲當前方塊的數(shù)組*/
int box[4][4]; 
/*當前方塊的顏色*/
int BOXCOLOR; 
/*控制命令*/
int CMD; 
/*定義七種基本的方塊形狀*/
int BOX[7][4][4]={ 
 {{1,1,1,1},{0,0,0,0},{0,0,0,0},{0,0,0,0}},
 {{1,1,1,0},{1,0,0,0},{0,0,0,0},{0,0,0,0}},
 {{1,1,1,0},{0,0,1,0},{0,0,0,0},{0,0,0,0}},
 {{1,1,1,0},{0,1,0,0},{0,0,0,0},{0,0,0,0}},
 {{1,1,0,0},{0,1,1,0},{0,0,0,0},{0,0,0,0}},
 {{0,1,1,0},{1,1,0,0},{0,0,0,0},{0,0,0,0}},
 {{1,1,0,0},{1,1,0,0},{0,0,0,0},{0,0,0,0}} 
}; 
/*得到方塊的寬度,即從右向左第一個不空的列*/
int GetWidth() 
{ 
	int i,j; 
	for(i=3;i>0;i--) 
	for(j=0;j<4;j++) 
		if(box[j][i]) return i; 
	return 0; 
} 
/*得到方塊的高度,從上往下第一個不空的行*/
int GetHeight() 
{ 
	int i,j; 
 	for(j=3;j>0;j--) 
  for(i=0;i<4;i++) 
   	if(box[j][i]) return j; 
 	return 0; 
} 
/*清除原有的方塊占有的空間*/
void ClearOldspace() 
{ 
 	int i,j; 
 	for(j=0;j<=curH; j++) 
  for(i=0;i<=curW; i++) 
   	if(box[j][i]) 
    	area[curY+j][curX+i]=0; 
} 
/*置位新方塊的位置*/
void PutNewspace() 
{ 
 	int i,j; 
 	for(j=0;j<=newH;j++) 
  for(i=0;i<=newW;i++) 
   	if(box[j][i]) 
    	area[newY+j][newX+i]=BOXCOLOR; 
} 
/*判斷方塊的移動是否造成區(qū)域沖突*/
int MoveCollision(int box[][4]) 
{ 
 	int i,j; 
 	if(newX<0) return 1; 
 	if(newX+newW>=MAXWIDTH) return 1; 
 	if(newY<0) return 1; 
 	for(j=0;j<=newH;j++) 
  	for(i=0;i<=newW;i++) 
   		if(area[newY+j][newX+i]&&box[j][i]) return 1; 
 	return 0; 
} 
/*判斷翻轉方塊是否造成區(qū)域的沖突*/
int RotateBoxCollision(int box[][4]) 
{ 
 	int i,j; 
 	if(newX+newW>=MAXWIDTH) newX=MAXWIDTH-1-newW; 
 	if(newY+newH>=MAXHEIGHT) newY=MAXHEIGHT-1-newH; 
 	if(MoveCollision(box)) return 1; 
 	for(i=0;i<=newW;i++) 
  	for(j=0;j<=newH;j++) 
   	if(area[newY+j][newX+i]) 
   	{ 
    	newX-=newW-i+1; goto L; 
   	} 
 	L: return MoveCollision(box); 
} 
/*游戲結束*/
int GameOver() 
{ 
 	if(!active &&(curY+curH>MAXHEIGHT-3)) 
 		return 1; 
 	else 
 		return 0; 
} 
/*判斷是否超時,即是否超過允許的時間間隔*/
int TimeOut() 
{ 
 	static long tm,old; 
 	tm=biostime(0,tm); 
 	if(tm-old<TIMEINTERVAL) 
 		return 0; 
 	else 
 	{ 
 		old=tm; 
 		return 1; 
 	} 
} 
/*重繪游戲區(qū)*/
void DrawSpace() 
{ 
 	int row,col,x1,y1,x2,y2; 
 	for(row=actY;row<=actY+actH;row++) 
  for(col=actX;col<=actX+actW;col++) 
   	if(area[row][col]!=oldarea[row][col]) 
   	{ 
    	if(area[row][col]==0) 
     		setfillstyle(SOLID_FILL,BLACK); 
    	else 
     		setfillstyle(SOLID_FILL,BOXCOLOR); 
			x1=56+col*BOXWIDTH;
			x2=x1+BOXWIDTH; 
    	y1=464-(row+1)*BOXWIDTH; 
    	y2=y1+BOXWIDTH; 
    	bar(++x1,++y1,--x2,--y2); 
    	oldarea[row][col]=area[row][col]; 
  	} 
	CMD=0; 
} 
/*消去滿行*/
void ClearFullline() 
{ 
 	int row,col, rowEnd,full,i,j; 
 	rowEnd=newY+newH; 
 	if(rowEnd>=MAXHEIGHT-1) 
 		rowEnd=MAXHEIGHT-2; 
 	for(row=newY; row<=rowEnd;) 
 	{ 
  	full=1; 
  	for(col=0;col<MAXWIDTH;col++) 
   		if(!area[row][col])
   			{full=0; break;} 
  	if(!full)
  	{
  		++row;
  		continue;
  	} 
  	for(j=row; j<MAXHEIGHT-1;j++) 
   	for(i=0;i<MAXWIDTH;i++) 
    	area[j][i]=area[j+1][i]; 
  	actX=0;
  	actY=row; 
  	actW=MAXWIDTH-1;
  	actH=MAXHEIGHT-1-row; 
  	DrawSpace(); 
  	rowEnd--; 
 	} 
 	CMD=CMDGEN; 
} 
/*向左移動方塊*/
int MoveLeft() 
{ 
 	newX=curX-1; 
 	ClearOldspace(); 
 	if(MoveCollision(box)) 
 	{ 
  	newX=curX; 
  	PutNewspace(); 
  	CMD=0; 
  	return 0; 
 	} 
 	PutNewspace(); 
 	actW=curW+1; 
 	actX=curX=newX; 
 	CMD=CMDDRAW; 
 	return 1; 
} 
/*向右移動方塊*/
int MoveRight() 
{ 
 	newX=curX+1; ClearOldspace(); 
 	if(MoveCollision(box)) 
 	{ 
 	 	newX=curX; 
 	 	PutNewspace(); 
  	CMD=0; 
  	return 0; 
 	} 
 	PutNewspace(); 
 	actW=curW+1; 
 	actX=curX;
 	curX=newX; 
 	CMD=CMDDRAW; 
 	return 1; 
} 
/*向下移動方塊*/
int MoveDown() 
{ 
 	int i,j; 
 	newY=curY-1; 
 	ClearOldspace(); 
 	if(MoveCollision(box)) 
 	{ 
 	 	newY=curY; 
  	PutNewspace(); 
  	active=0; 
  	CMD=CMDDELLINE; 
  	return 0; 
 	} 
 	PutNewspace(); 
 	actH=curH+1; 
 	actY=newY; 
 	curY=newY; 
 	CMD=CMDDRAW; 
 	return 1; 
} 
/*按加速鍵后方塊迅速下落到底*/
void MoveBottom() 
{ 
 	while(active) 
 	{ 
 	 	MoveDown(); 
 	 	DrawSpace(); 
 	} 
 	CMD=CMDDELLINE; 
} 
/*初始化*/
void InitialGame() 
{ 
 	int i,j,x1,y1,x2,y2; 
 	int driver=DETECT, mode=0; 
 	initgraph(&driver,&mode,"e:\\tc"); 
 	cleardevice(); 
 	randomize(); 
 	setfillstyle(SOLID_FILL,BLUE); 
 	bar(0,0,639,479); 
 	x1=56; 
 	y1=464-BOXWIDTH*MAXHEIGHT; 
 	x2=56+MAXWIDTH*BOXWIDTH; 
 	y2=464; 
 	rectangle(--x1,--y1,++x2,++y2); 
 	setfillstyle(SOLID_FILL,BLACK); 
 	bar(++x1,++y1,--x2,--y2); 
 	y1=464-MAXHEIGHT*BOXWIDTH; y2=464; 
 	setcolor(DARKGRAY); 
 	for(i=0;i<MAXWIDTH;i++) 
 	{ 
  	x1=56+i*BOXWIDTH; 
  	line(x1,y1,x1,y2); 
 	} 
	x1=56; x2=x1+MAXWIDTH*BOXWIDTH; 
 	for(j=0;j<MAXHEIGHT;j++) 
 	{ 
  	y1=464-j*BOXWIDTH; 
 	 	line(x1,y1,x2,y1); 
 	} 
 	for(j=0;j<MAXHEIGHT;j++) 
  for(i=0;i<MAXWIDTH;i++) 
   	area[j][i]=oldarea[j][i]=0; 
 	actX=0; actY=0; actW=MAXWIDTH-1; actH=MAXHEIGHT-1; 
 	DrawSpace(); 
 	CMD=CMDGEN; 
}
/*得到控制命令*/ 
void GetCMD() 
{ 
 	if(CMD) return; 
 	if(TimeOut()) 
 	{ 
  	CMD=CMDAOTODOWN; 
  	return; 
 	} 
 	if(bioskey(1)) 
 	{ 
  	CMD=bioskey(0)>>8; 
  	return; 
 	} 
} 
/*生成一個新的方塊*/
int GenerateNewbox() 
{ 
 int i,j,boxidx; 
 boxidx=random(7); BOXCOLOR=random(7)+1; 
 for(j=0;j<4;j++) 
  for(i=0;i<4;i++) 
   box[j][i]=BOX[boxidx][j][i]; 
 curW=GetWidth(); curH=GetHeight(); 
 curX=(MAXWIDTH+curW)/2; 
 if(curX+curW>=MAXWIDTH)curX=MAXWIDTH-1-curW; 
 curY=MAXHEIGHT-1-curH; 
 newX=curX; newY=curY; actX=curX;actY=curY; 
 actW=newW=curW; actH=newH=curH; 
 active=1; 
 if(MoveCollision(box)) return 0; 
 PutNewspace(); 
 DrawSpace(); CMD=0; 
 return 1; 
} 
/*翻轉方塊*/
int RotateBox() 
{ 
 	int newBox[4][4]; 
 	int i,j; 
 	ClearOldspace(); 
 	for(j=0;j<4;j++) 
  for(i=0;i<4;i++) 
   	newBox[j][i]=0; 
 	for(j=0;j<4;j++) 
  for(i=0;i<4;i++) 
   	newBox[curW-i][j]=box[j][i]; 
 	newW=curH; 
 	newH=curW; 
 	if(RotateBoxCollision(newBox)) 
 	{ 
  	newW=curW; 
  	newH=curH; 
  	newX=curX; 
  	newY=curY; 
  	PutNewspace(); 
  	CMD=0; 
  	return 0; 
 	} 
 	for(j=0;j<4;j++) 
  for(i=0;i<4;i++) 
   	box[j][i]=newBox[j][i]; 
 	PutNewspace(); 
 	actH=newH>curH? newH:curH; 
 	actW=curX+actH-newX; 
 	actX=newX; 
 	actY=newY; 
 	curX=newX; 
 	curY=newY; 
 	curW=newW;
 	curH=newH; 
 	CMD=CMDDRAW; 
 	return 1; 
} 
/*根據(jù)獲得的命令來執(zhí)行不同的操作*/
void ExecuteCMD() 
{ 
 	switch(CMD) 
 	{ 
  	case CMDLEFTMOVE:  
  		MoveLeft();
  		break; 
  	case CMDRINGHTMOVE: 
  		MoveRight();
  		break; 
  	case CMDAOTODOWN: 
  		MoveDown();
  		break; 
  	case CMDROTATE: 
  		RotateBox();
  		break; 
  	case CMDDOWNMOVE:  
  		MoveBottom(); 
  		break; 
  	case CMDDRAW:  
  		DrawSpace();
  		break; 
  	case CMDDELLINE:  
  		ClearFullline();
  		break; 
  	case CMDGEN:   
  		GenerateNewbox();
  		break; 
  	case CMDESC:   
  		closegraph();
  		return 0; 
  	default:     
  		CMD=0; 
 } 
}
/*主函數(shù)*/ 
int main() 
{ 
 	int i; 
 	InitialGame(); 
 	do 
 	{ 
  	GetCMD(); 
  	ExecuteCMD(); 
 	} 
 	while(!GameOver()); 
 	getch(); 
 	closegraph(); 
 	return 0;
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91亚洲午夜精品久久久久久| 91小视频在线免费看| 欧美日韩一区视频| 亚洲v日本v欧美v久久精品| 精品视频1区2区| 日韩精品乱码av一区二区| 51精品秘密在线观看| 青青草国产成人99久久| 精品久久一区二区| 丁香激情综合五月| 亚洲免费伊人电影| 欧美乱妇23p| 精品一区二区日韩| 国产精品三级久久久久三级| 91视频你懂的| 日本三级亚洲精品| 2017欧美狠狠色| 波多野结衣在线一区| 亚洲综合区在线| 日韩欧美在线不卡| eeuss鲁片一区二区三区在线看| 亚洲色图一区二区三区| 欧美精品日韩一本| 成人天堂资源www在线| 一区二区在线观看不卡| 欧美一区二区三区公司| 懂色av一区二区夜夜嗨| 亚洲美女屁股眼交3| 欧美一区二区在线免费播放| 国产激情一区二区三区桃花岛亚洲| 亚洲天堂福利av| 日韩一区二区三区四区五区六区| 国产suv一区二区三区88区| 亚洲国产视频网站| 日本一区二区免费在线观看视频| 欧美午夜精品久久久久久孕妇 | 国产精品久久福利| 欧美视频在线不卡| 国产福利一区在线| 午夜精品久久久久久| 国产日韩欧美高清| 欧美一卡二卡在线观看| 精品日韩成人av| 色综合久久88色综合天天6 | 国产午夜精品一区二区三区视频| 欧美性大战久久久| av网站免费线看精品| 久久精品国产亚洲a| 夜夜嗨av一区二区三区四季av| 久久久久亚洲蜜桃| 欧美一级片在线看| 欧美性猛交xxxxxx富婆| 成人v精品蜜桃久久一区| 九九视频精品免费| 日日夜夜精品免费视频| 亚洲精品中文在线影院| 国产亚洲综合色| 亚洲精品一区二区在线观看| 欧美精品777| 欧美日韩中文另类| 日本韩国一区二区三区视频| 不卡av在线免费观看| 国产精品一二三| 极品美女销魂一区二区三区免费| 日韩va亚洲va欧美va久久| 亚洲精品成人天堂一二三| 国产精品麻豆一区二区 | 欧美一二三区在线| 7777精品久久久大香线蕉 | 成人18精品视频| 国产成人综合在线观看| 欧美日韩一级视频| 一本到三区不卡视频| 91色婷婷久久久久合中文| 国产成人精品免费网站| 国产精品一区二区免费不卡 | 日本特黄久久久高潮 | 精品一区二区三区免费视频| 日本伊人色综合网| 奇米888四色在线精品| 日韩国产一区二| 免费精品视频在线| 激情都市一区二区| 国产精品自在欧美一区| 国产在线视频一区二区三区| 国产呦萝稀缺另类资源| 国产九色sp调教91| av电影在线观看不卡| 色婷婷精品大视频在线蜜桃视频| 色天使色偷偷av一区二区 | 51精品秘密在线观看| 这里只有精品99re| 欧美电影免费观看高清完整版在| 欧美不卡一区二区三区| 久久久久国产免费免费| 国产精品传媒视频| 亚洲成人午夜电影| 日本亚洲最大的色成网站www| 久久99久久99| 成人永久看片免费视频天堂| 99热99精品| 欧美精品视频www在线观看| 精品久久一区二区| 亚洲欧洲日韩在线| 亚洲福利一二三区| 黄色日韩三级电影| 99这里都是精品| 欧美电影在哪看比较好| 久久嫩草精品久久久久| 亚洲男女毛片无遮挡| 蜜臀久久99精品久久久久宅男 | 精品国产露脸精彩对白| 国产精品欧美一区喷水| 亚洲国产日韩av| 国产精品99久久不卡二区| 在线观看中文字幕不卡| 精品sm在线观看| 一区二区三区欧美激情| 国产一区二区三区视频在线播放| www.亚洲免费av| 91精品国产综合久久精品图片| 午夜日韩在线电影| 国产一区二区三区在线观看精品| 色美美综合视频| 久久久久久久综合色一本| 亚洲一级不卡视频| 高潮精品一区videoshd| 欧美精品久久一区二区三区| 国产精品超碰97尤物18| 麻豆91在线播放免费| 91视频com| 国产精品免费人成网站| 日本不卡在线视频| 欧美影片第一页| 国产精品区一区二区三| 久久99在线观看| 欧美福利视频一区| 亚洲女与黑人做爰| 成人一道本在线| 精品福利av导航| 日韩高清不卡在线| 在线观看视频欧美| 亚洲视频一区在线观看| 懂色一区二区三区免费观看| 日韩欧美高清一区| 午夜成人免费视频| 在线观看亚洲专区| 亚洲男同性视频| 99久久综合色| 中文字幕日韩欧美一区二区三区| 国产伦精品一区二区三区免费迷| 欧美一区二区三区视频在线 | 亚洲黄色录像片| 成人高清免费在线播放| 久久人人97超碰com| 久久精品国产免费看久久精品| 欧美老年两性高潮| 亚洲二区在线视频| 精品视频123区在线观看| 玉米视频成人免费看| 一本大道av伊人久久综合| 欧美国产禁国产网站cc| 成人小视频免费在线观看| 精品国产乱码久久| 国产精一区二区三区| 久久蜜桃一区二区| 国产999精品久久| 中文字幕国产一区二区| 成人综合婷婷国产精品久久蜜臀| 欧美国产日韩精品免费观看| 国产aⅴ精品一区二区三区色成熟| 国产亚洲精品超碰| 福利一区福利二区| 中文字幕人成不卡一区| 色综合久久综合中文综合网| 亚洲一区二区三区视频在线 | 亚洲成人综合网站| 91精品国产综合久久小美女| 麻豆freexxxx性91精品| 欧美精品一区二区三区四区 | 亚洲欧美欧美一区二区三区| 91国偷自产一区二区使用方法| 依依成人综合视频| 欧美日韩中文字幕一区| 免费不卡在线视频| 久久综合色天天久久综合图片| 国产经典欧美精品| 综合久久久久久久| 欧美亚男人的天堂| 久久国产精品第一页| 国产女人18水真多18精品一级做| 99视频在线观看一区三区| 亚洲资源中文字幕| 日韩免费一区二区三区在线播放| 国产成人综合网| 亚洲午夜免费福利视频| 欧美电影免费观看高清完整版在线 | 99精品热视频| 性感美女久久精品| 久久久亚洲精品一区二区三区 |