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

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

?? russia.c

?? 很好的一款俄羅期方塊源程序,初學者可以借簽.
?? C
字號:
#include <stdlib.h> 
#include <graphics.h> 
#include <bios.h> 
#define mDRAW 5 
#define mLINE 6 
#define mADOWN 7 
#define mGEN 8 
#define mLEFT 75 
#define mRIGHT 77 
#define mSPACE 57 
#define mDOWN 80 
#define mESC 1 
#define TIMEINT 2 
#define MAXX 9 
#define MAXY 30 
#define BACKCOLOR BLACK 
#define WINX 50 
#define WINY 470 
#define GAP 6 
#define AREAX (WINX+GAP) 
#define AREAY (WINY-GAP) 
#define BOXW 15 

int oldarea[MAXY+1][MAXX]; 
int area[MAXY+1][MAXX]; 
int actW,actH,actX,actY; 
int curX,curY,curColor,curW,curH; 
int newX,newY,newColor,newW,newH; 
int active; 
int box[4][4]; 
int FORCOLOR; 
int MESSAGE; 
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} 
} 
}; 


void init(); 
void draw(); 
int genBox(); 
int getKey(); 
void lineFull(); 
int moveLeft(); 
int moveRight(); 
int moveDown(); 
int rotate(); 
int getW(); 
int getH(); 
void clearOldBox(); 
void putNewBox(); 
int collisionRotate(int box[][4]); 
void getMessage(); 
void dispatchMessage(); 
int timeCome(); 
void fallDown(); 
int gameOver(); 

main() 
{ 
int i; 
init(); 
do 
{ 
getMessage(); 
dispatchMessage(); 
} 
while(!gameOver()); 

getch(); 
closegraph(); 
} 

void getMessage() 
{ 
if(MESSAGE) return; 
if(timeCome()) 
{ 
MESSAGE=mADOWN; 
return; 
} 
if(bioskey(1)) 
{ 
MESSAGE=bioskey(0)>>8; 
return; 
} 
} 

void dispatchMessage() 
{ 
switch(MESSAGE) 
{ 
case mLEFT: moveLeft();break; 
case mRIGHT: moveRight();break; 
case mADOWN: moveDown();break; 
case mSPACE: rotate();break; 
case mDOWN: fallDown(); break; 
case mDRAW: draw();break; 
case mLINE: lineFull();break; 
case mGEN: genBox();break; 
case mESC: closegraph(); exit(0); 
default: MESSAGE=0; 
} 
} 

void fallDown() 
{ 
while(active) 
{ 
moveDown(); draw(); 
} 

MESSAGE=mLINE; 
} 

int timeCome() 
{ 

static long tm, old; 
tm=biostime(0,tm); 
if(tm-old<TIMEINT) return 0; 
else 
{ 
old=tm; return 1; 
} 
} 

void init() 
{ 
int i,j,x1,y1,x2,y2; 
int driver=DETECT, mode=0; 
randomize(); 
registerbgidriver(EGAVGA_driver); 
initgraph(&driver,&mode,""); 
cleardevice(); 
setfillstyle(SOLID_FILL,BLUE); 
bar(0,0,639,479); 
x1=AREAX; 
y1=AREAY-BOXW*MAXY; 
x2=AREAX+MAXX*BOXW; 
y2=AREAY; 
rectangle(--x1,--y1,++x2,++y2); 
setfillstyle(SOLID_FILL,BLACK); 
bar(++x1,++y1,--x2,--y2); 
y1=AREAY-MAXY*BOXW; y2=AREAY; 
setcolor(DARKGRAY); 
for(i=0;i<MAXX;i++) 
{ 
x1=AREAX+i*BOXW; 
line(x1,y1,x1,y2); 
} 

x1=AREAX; x2=x1+MAXX*BOXW; 
for(j=0;j<MAXY;j++) 
{ 
y1=AREAY-j*BOXW; 
line(x1,y1,x2,y1); 
} 
for(j=0;j<MAXY;j++) 
for(i=0;i<MAXX;i++) 
area[j][i]=oldarea[j][i]=0; 
actX=0; actY=0; actW=MAXX-1; actH=MAXY-1; 
draw(); 
MESSAGE=mGEN; 
} 

int genBox() 
{ 
int i,j,boxidx; 
boxidx=random(7); FORCOLOR=random(7)+1; 
for(j=0;j<4;j++) 
for(i=0;i<4;i++) 
box[j][i]=BOX[boxidx][j][i]; 
curW=getW(); curH=getH(); 
curX=(MAXX+curW)/2; 
if(curX+curW>=MAXX)curX=MAXX-1-curW; 
curY=MAXY-1-curH; 
newX=curX; newY=curY; actX=curX;actY=curY; 
actW=newW=curW; actH=newH=curH; 
active=1; 
if(collision(box)) return 0; 
putNewBox(); 
draw(); MESSAGE=0; 
return 1; 
} 

void lineFull() 
{ 
int row,col, rowEnd,full,i,j; 
rowEnd=newY+newH; 
if(rowEnd>=MAXY-1) rowEnd=MAXY-2; 
for(row=newY; row<=rowEnd;) 
{ 
full=1; 
for(col=0;col<MAXX;col++) 
if(!area[row][col]){full=0; break;} 
if(!full){++row; continue;} 
for(j=row; j<MAXY-1;j++) 
for(i=0;i<MAXX;i++) 
area[j][i]=area[j+1][i]; 
actX=0;actY=row; actW=MAXX-1; actH=MAXY-1-row; 
draw(); rowEnd--; 
} 
MESSAGE=mGEN; 
} 

void draw() 
{ 
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,BACKCOLOR); 
else 
setfillstyle(SOLID_FILL,FORCOLOR); 

x1=AREAX+col*BOXW; x2=x1+BOXW; 
y1=AREAY-(row+1)*BOXW; y2=y1+BOXW; 
bar(++x1,++y1,--x2,--y2); 
oldarea[row][col]=area[row][col]; 
} 

MESSAGE=0; 
} 

int moveLeft() 
{ 
newX=curX-1; clearOldBox(); 
if(collision(box)) 
{ 
newX=curX; 
putNewBox(); 
MESSAGE=0; 
return 0; 
} 
putNewBox(); 
actW=curW+1; actX=curX=newX; 
MESSAGE=mDRAW; 
return 1; 
} 

int moveRight() 
{ 
newX=curX+1; clearOldBox(); 
if(collision(box)) 
{ 
newX=curX; 
putNewBox(); 
MESSAGE=0; 
return 0; 
} 
putNewBox(); 
actW=curW+1; actX=curX; curX=newX; 
MESSAGE=mDRAW; 
return 1; 
} 

int moveDown() 
{ 
int i,j; 
newY=curY-1; 
clearOldBox(); 
if(collision(box)) 
{ 
newY=curY; 
putNewBox(); 
active=0; 
MESSAGE=mLINE; 
return 0; 
} 
putNewBox(); 
actH=curH+1; actY=newY; curY=newY; 
MESSAGE=mDRAW; 
return 1; 
} 

int rotate() 
{ 
int newBox[4][4]; 
int i,j; 
clearOldBox(); 

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(collisionRotate(newBox)) 
{ 
newW=curW; newH=curH; newX=curX; newY=curY; 
putNewBox(); 
MESSAGE=0; 
return 0; 
} 

for(j=0;j<4;j++) 
for(i=0;i<4;i++) 
box[j][i]=newBox[j][i]; 
putNewBox(); 
actH=newH>curH? newH:curH; 
actW=curX+actH-newX; 
actX=newX; actY=newY; curX=newX; 
curY=newY; curW=newW; curH=newH; 
MESSAGE=mDRAW; 
return 1; 
} 

int getW() 
{ 
int i,j; 
for(i=3;i>0;i--) 
for(j=0;j<4;j++) 
if(box[j][i]) return i; 
return 0; 
} 

int getH() 
{ 
int i,j; 
for(j=3;j>0;j--) 
for(i=0;i<4;i++) 
if(box[j][i]) return j; 
return 0; 
} 


void clearOldBox() 
{ 
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 putNewBox() 
{ 
int i,j; 
for(j=0;j<=newH;j++) 
for(i=0;i<=newW;i++) 
if(box[j][i]) 
area[newY+j][newX+i]=FORCOLOR; 
} 

int collision(int cbox[][4]) 
{ 
int i,j; 
if(newX<0) return 1; 
if(newX+newW>=MAXX) 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]&&cbox[j][i]) return 1; 
return 0; 
} 

int collisionRotate(int cbox[][4]) 
{ 
int i,j; 
if(newX+newW>=MAXX) newX=MAXX-1-newW; 
if(newY+newH>=MAXY) newY=MAXY-1-newH; 
if(collision(cbox)) 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 collision(cbox); 
} 

int gameOver() 
{ 
if(!active &&(curY+curH>MAXY-3)) return 1; 
else return 0; 
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色成年激情久久综合| 欧美日韩一区二区三区不卡| 亚洲欧美另类小说视频| 欧美精品vⅰdeose4hd| 国产一区二区精品久久| 亚洲福利视频三区| 国产精品久久久久aaaa樱花| 日韩一区二区中文字幕| 91精品福利视频| 国产精品系列在线播放| 亚洲3atv精品一区二区三区| 中文字幕亚洲欧美在线不卡| 久久影音资源网| 7777女厕盗摄久久久| 99国产精品国产精品毛片| 国产在线精品免费| 青青草国产成人av片免费| 亚洲猫色日本管| 亚洲国产精品v| 久久综合九色综合欧美就去吻| 欧美日韩一区二区不卡| 91在线视频播放| 成人综合激情网| 国产精品88888| 韩国女主播一区二区三区| 轻轻草成人在线| 亚洲第一主播视频| 亚洲欧洲综合另类| 国产精品欧美经典| 国产性天天综合网| 精品国产1区2区3区| 欧美videossexotv100| 在线播放亚洲一区| 欧美另类久久久品| 欧美日韩高清影院| 欧美性三三影院| 色成年激情久久综合| 91免费观看国产| 91美女福利视频| 91国偷自产一区二区三区成为亚洲经典 | 欧美妇女性影城| 欧美日韩一区 二区 三区 久久精品| 91麻豆免费观看| 91丨porny丨蝌蚪视频| bt7086福利一区国产| 成人免费av网站| 成人国产精品免费观看| av午夜一区麻豆| 色伊人久久综合中文字幕| 一本大道久久a久久综合| 在线欧美日韩国产| 欧美精品99久久久**| 日韩欧美的一区| 久久网站热最新地址| 欧美国产精品中文字幕| 最新欧美精品一区二区三区| 亚洲天堂成人在线观看| 洋洋av久久久久久久一区| 亚洲综合小说图片| 日本不卡123| 国产麻豆视频一区| 波多野结衣的一区二区三区| 色综合久久精品| 欧美精品久久天天躁| 久久婷婷久久一区二区三区| 日韩美女精品在线| 午夜电影网一区| 国内精品久久久久影院色| www.亚洲色图.com| 欧美蜜桃一区二区三区| 久久女同精品一区二区| 亚洲色图都市小说| 轻轻草成人在线| 懂色av一区二区三区免费观看| 色综合久久综合网| 日韩一区二区免费在线观看| 国产婷婷色一区二区三区| 亚洲一区二区三区视频在线 | 欧美电影免费观看高清完整版| 国产午夜精品福利| 曰韩精品一区二区| 狠狠色2019综合网| 在线看国产一区| 久久久一区二区| 午夜精品久久久| 成人免费视频一区二区| 91精品午夜视频| 亚洲天堂精品在线观看| 六月婷婷色综合| 在线观看免费亚洲| 国产午夜精品久久久久久免费视| 亚洲观看高清完整版在线观看 | 久久成人免费网| 91老司机福利 在线| 精品欧美一区二区三区精品久久| |精品福利一区二区三区| 九色综合狠狠综合久久| 在线精品视频一区二区| 日本一区二区高清| 麻豆精品久久精品色综合| 色噜噜狠狠成人中文综合| 国产无一区二区| 久久成人免费电影| 91麻豆精品国产| 亚洲第一成年网| 日本丶国产丶欧美色综合| 国产婷婷色一区二区三区四区| 日韩国产高清在线| 色爱区综合激月婷婷| 国产欧美日韩麻豆91| 精品一区二区三区视频| 欧美日韩黄视频| 一区二区三区在线观看网站| 成人免费毛片片v| 久久久精品天堂| 黑人精品欧美一区二区蜜桃| 欧美电影在线免费观看| 亚洲一区在线观看视频| 色婷婷精品大在线视频| 中文字幕一区二区三区av| 国产91精品精华液一区二区三区| 欧美大度的电影原声| 午夜日韩在线观看| 欧美三区在线视频| 亚洲国产一区视频| 日本精品一区二区三区高清| 亚洲日本丝袜连裤袜办公室| 不卡电影一区二区三区| 欧美国产丝袜视频| 国产成人免费在线| 亚洲国产高清在线观看视频| 国产精品一二三在| 欧美国产精品一区二区| 国产成人av影院| 国产日韩欧美一区二区三区乱码 | 中文字幕一区视频| 99国内精品久久| 中文字幕视频一区二区三区久| 成人精品免费看| 最新欧美精品一区二区三区| 在线观看免费亚洲| 亚洲小少妇裸体bbw| 在线影院国内精品| 亚洲国产精品久久人人爱| 在线日韩一区二区| 亚洲成人精品一区二区| 91麻豆精品国产91久久久资源速度 | 成人av资源在线观看| 亚洲欧美日韩国产一区二区三区| 在线这里只有精品| 日韩电影在线免费观看| 精品免费99久久| 国产成人免费av在线| 成人免费一区二区三区在线观看| 色综合色狠狠天天综合色| 亚洲高清视频中文字幕| 欧美日韩电影在线| 一区二区三区日韩在线观看| 国产乱对白刺激视频不卡 | 精品国精品国产| 国产精品 欧美精品| 国产精品久久久久一区| 欧美在线视频日韩| 老司机精品视频导航| 国产精品色眯眯| 欧美综合一区二区三区| 麻豆国产欧美日韩综合精品二区| 久久麻豆一区二区| 91尤物视频在线观看| 水野朝阳av一区二区三区| 欧美精品一区二区三区久久久| 国产成人精品免费视频网站| 一区二区免费看| 欧美成人vps| 91在线高清观看| 男人的j进女人的j一区| 亚洲国产岛国毛片在线| 欧美性做爰猛烈叫床潮| 国内精品自线一区二区三区视频| 国产精品久久久久久久久快鸭 | 日韩欧美国产系列| 成人免费毛片片v| 日韩av在线播放中文字幕| 日本一二三不卡| 欧美色大人视频| 成人动漫视频在线| 日韩精品亚洲一区| 国产精品久久久久一区二区三区 | 久久99精品久久只有精品| 亚洲婷婷在线视频| 精品国产乱码久久久久久影片| 91日韩一区二区三区| 国内精品国产成人国产三级粉色 | 欧美国产日本韩| 日韩天堂在线观看| 色狠狠综合天天综合综合| 国产成人精品三级| 免费久久99精品国产| 亚洲毛片av在线| 中文字幕欧美日本乱码一线二线|