亚洲欧美第一页_禁久久精品乱码_粉嫩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 

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

/*用兩個數組來表示新舊兩個矩形游戲區*/
int oldarea[MAXHEIGHT+1][MAXWIDTH]; 
int area[MAXHEIGHT+1][MAXWIDTH]; 
/*定義一個需要改變的屏幕區域,初次之外的區域不用進行重繪*/
int actW,actH,actX,actY; 
/*當前方塊的一些屬性(坐標,顏色,高,寬)*/
int curX,curY,curColor,curW,curH; 
/*新的方塊的一些屬性(坐標,顏色,高,寬)*/
int newX,newY,newColor,newW,newH; 
/*制定方塊的狀態*/
int active; 
/*存儲當前方塊的數組*/
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; 
} 
/*判斷方塊的移動是否造成區域沖突*/
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; 
} 
/*判斷翻轉方塊是否造成區域的沖突*/
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; 
 	} 
} 
/*重繪游戲區*/
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; 
} 
/*根據獲得的命令來執行不同的操作*/
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; 
 } 
}
/*主函數*/ 
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一区二区三区免费野_久草精品视频
69久久99精品久久久久婷婷| 国产乱码字幕精品高清av| 一本色道久久加勒比精品| 国产精品国产三级国产a| 国产91丝袜在线播放0| 国产女同性恋一区二区| 成人av在线电影| 亚洲一区二区在线观看视频| 欧美日韩久久一区二区| 免费成人美女在线观看.| 久久夜色精品国产噜噜av| 国产成人精品免费在线| 日韩一区中文字幕| 3d成人h动漫网站入口| 极品瑜伽女神91| 中文字幕永久在线不卡| 欧美在线一二三四区| 日本美女一区二区三区| 国产日产欧产精品推荐色 | 欧美性猛交一区二区三区精品 | 欧美精品一区二区久久婷婷| 国产精品综合一区二区| 亚洲人精品一区| 欧美一级片在线| av在线不卡电影| 青青草国产成人av片免费| 国产精品色哟哟| 欧美喷潮久久久xxxxx| 国产不卡一区视频| 亚洲一二三四区不卡| 26uuu国产日韩综合| 91在线视频播放地址| 麻豆高清免费国产一区| 国产精品不卡在线观看| 欧美一区二区三区免费在线看| voyeur盗摄精品| 日本网站在线观看一区二区三区 | 欧美久久久久免费| 99麻豆久久久国产精品免费优播| 视频在线在亚洲| 亚洲精品国久久99热| 久久视频一区二区| 欧美精品视频www在线观看 | 久草这里只有精品视频| 亚洲综合999| 日韩码欧中文字| 久久精品男人天堂av| 91精品麻豆日日躁夜夜躁| 不卡av电影在线播放| 精品一区二区影视| 午夜视频在线观看一区二区| 最新国产精品久久精品| 2021中文字幕一区亚洲| 3d动漫精品啪啪一区二区竹菊| 在线视频综合导航| 91一区二区在线观看| 国产 日韩 欧美大片| 毛片av中文字幕一区二区| 亚洲福利一区二区三区| 亚洲日本在线天堂| 自拍偷拍亚洲综合| 欧美韩国日本不卡| 国产欧美一区二区三区网站| 精品久久久久一区二区国产| 欧美一区二区三区免费观看视频| 在线观看日韩av先锋影音电影院| 91在线国内视频| 91网址在线看| 91视频免费看| 色香色香欲天天天影视综合网| 99久久精品久久久久久清纯| 成人三级在线视频| 国产精品系列在线观看| 国产成人午夜高潮毛片| 国产成人免费xxxxxxxx| 国产91精品免费| 成人精品在线视频观看| 波多野结衣在线aⅴ中文字幕不卡| 粉嫩嫩av羞羞动漫久久久| 欧美成人国产一区二区| 日韩欧美电影一区| 精品久久一区二区| 中文字幕精品三区| 中文字幕日韩一区| 一区二区三区中文字幕电影| 亚洲愉拍自拍另类高清精品| 亚洲chinese男男1069| 三级一区在线视频先锋| 久久精品999| 成人亚洲一区二区一| 99综合电影在线视频| 欧洲视频一区二区| 91精品国产91综合久久蜜臀| 精品国产露脸精彩对白| 国产欧美日韩中文久久| 亚洲精品你懂的| 五月天亚洲婷婷| 精品一区二区免费视频| 成人激情电影免费在线观看| 91婷婷韩国欧美一区二区| 欧美日韩国产影片| 久久久精品国产免大香伊| 国产精品成人在线观看| 亚洲资源中文字幕| 美国一区二区三区在线播放| 成人a区在线观看| 欧美日韩在线播| 亚洲精品在线三区| 亚洲精品中文字幕在线观看| 日韩经典一区二区| 成人深夜视频在线观看| 欧美网站一区二区| 久久先锋影音av鲁色资源网| 国产精品美女久久久久av爽李琼| 一个色妞综合视频在线观看| 久久99精品国产麻豆不卡| 成人禁用看黄a在线| 制服丝袜亚洲色图| 国产精品家庭影院| 日本成人超碰在线观看| 97久久超碰精品国产| 日韩亚洲电影在线| 亚洲人午夜精品天堂一二香蕉| 蜜臀av一区二区在线免费观看| av在线播放一区二区三区| 在线不卡中文字幕| 亚洲男女一区二区三区| 国产一区美女在线| 欧美日韩一区在线| 中文字幕在线不卡一区二区三区 | 国产区在线观看成人精品 | 欧美嫩在线观看| 亚洲欧美综合在线精品| 久久91精品国产91久久小草| 一本一道久久a久久精品| 欧美精品一区二区三区高清aⅴ | 欧美精品国产精品| 国产精品九色蝌蚪自拍| 久久精品久久精品| 欧美日韩视频专区在线播放| 中文字幕亚洲电影| 国产精品一区一区三区| 欧美区视频在线观看| 亚洲精品日日夜夜| 欧美大胆一级视频| 日一区二区三区| 欧美专区日韩专区| 亚洲视频一区二区在线| 国产福利一区二区三区在线视频| 91精品国产乱码久久蜜臀| 亚洲国产综合91精品麻豆| 成人性生交大合| 国产日韩欧美高清| 国产精品一二三在| 精品国产91洋老外米糕| 日本美女一区二区三区| 欧美日韩aaa| 亚洲国产一区视频| 在线视频一区二区三| 亚洲欧美国产毛片在线| 成人网在线播放| 欧美激情一区在线观看| 国产剧情一区二区| 久久亚洲精品国产精品紫薇 | 国产不卡免费视频| 久久久国产精品麻豆| 激情综合亚洲精品| 久久综合久久综合久久| 国产一区二区中文字幕| www久久精品| 高清av一区二区| 国产精品伦理在线| av在线不卡网| 伊人婷婷欧美激情| 欧美日韩国产高清一区二区 | 亚洲黄一区二区三区| 99re6这里只有精品视频在线观看| 《视频一区视频二区| 色综合 综合色| 亚洲va国产天堂va久久en| 日韩一级片网址| 国内久久婷婷综合| 国产精品乱码一区二三区小蝌蚪| 成人污污视频在线观看| 亚洲图片你懂的| 欧美精品成人一区二区三区四区| 日日骚欧美日韩| 久久网站热最新地址| av动漫一区二区| 日韩不卡一区二区| 国产日韩综合av| 日本精品视频一区二区| 日本成人在线看| 国产欧美一区二区三区网站| 日本高清不卡视频| 老司机精品视频导航| 国产精品福利电影一区二区三区四区| 色欧美片视频在线观看| 欧美a一区二区| 国产精品大尺度|