版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、页眉内容/* *Desc:俄罗斯方块游戏*By:hoodluml980:30* */# include<stdio.li># include<bios.h>#include<dos.li># mclude<giaplucs.h>#iiiclude<stnng.h># include<stdlib.h>#defiiietiuel#defiiiefalseO#defineBoaidWidthl2#deflneBoaidHeight2 3# defuie_INNER_HELPER/*imierhelpeimethod*/* Sc
2、anCodesDefiiie*/enuniKEYCODESK_ESC=0x011b,K_UP=0x4800,/*upwaidaiTow*/K_LEFT=0x4b00,K_DOWN=0x5000,K_RIGHT=0x4d00,K_SPACE=0x3920,K_P=0xl970;/*thedatastnictureoftheblock*/typedefstmcttagBlockchaic4 4;/*cellfilluifoarfay,0-empty, 1 -filled*/intx;/*blockpositioncx0,BoaidWidht-l */inty;/*blockpositioncy-4
3、,BoaidHeight-l */charcolor;/* blockcoloi*/chafsize;/*blockinaxsizeinwidthoiheight*/cliamame;/*blockiiame(theblockrsshape)*/Block;/*gamersglobalinfo*/uitFiameTime=l 300;mtCellSize=18;mtBoardLeft=30;intBoaidTop=30;/*nextblockgrid */精心整理页眉内容intNBBoaidLeft=300;mtNBBoaidTop=30;intNBCellSize=10;/* scorebo
4、ardposition*/uitScoreBoardLeft=300;intScofeBoafdTop=100;mtScoreBoaidWidth=200;intScoieBoaidHeight=3 5;mtScoieColor=LIGHTCYAN;/*uifonextpostion*/intIiifoLeft=300;intIiifoTop=200;intliifoColoi-YELLOW;uitBoideiColoi-DARKGRAY;intBkGndColoi-BLACK;mtGameRuiming=tiiie;mtTopLine=BoafdHeight-1 ;/*topemptylin
5、e*/intTotalScoie=100;channfb_sc ore 20;chaiiiifb_lielp255;charmfd_conuiion25 5;/* ourboard,Board x y 0 -isF illed,Board x y 1 -fillColor*/unsignedcharBoaidBoaidWidthBoafdHeight2;chaiBufferCells 4 4 ;/*usedtojudgeifcanrotateblock*/BlockcuiBlock;严 currentmovingblock*/BlockiiextBlock;/*nextBlocktoappea
6、i*/*fuiictionlist*/uitGetKeyCodeQ;mtCanMove(iiitdx.mtdy);intCaiiRotate();intRotateBlock(Block* block);intMoveBlock(Block*block,mtdx,mtdy);voidDiawBlock(Block*block,mt4nt4iit);voidEiaseBlock(Block*block,mt4nt,int);voidDisplavScoieQ;voidDisplayInfo(chaf*text);voidGeneiateBlock(Block* block);voidNextBl
7、ockQ;voidLutGameQ;iiitPauseGameO;voidQuitGameQ;严 GetKevCode*/int_INNER_HELPERGetKeyCodeOintkey=0;if(bioskey(l)精心整理页眉内容kev=bioskey(0); letunikey;/* displaytext!*/void_INNER_HELPERDisplavIiifo(chai*text)setcoloi(BkGndColoi);outtextxy(InfbLeftJnfbTopjnfb_conmion);strcpy(infb_conmion,text);setcolor(Info
8、Coloi);outtextxy(InfbLeftJnfbTopjnfb_conmion);/*cieateanewblockbykeynumber,*theblockanchortothetop-leftconieiof4*4cells*/void_INNER_HELPERGeneiateBlock(Block*block)intkey=(random( 13)*random( 17)+iandom(l 000)+random(3000)%7;block->size=3 ;/*becausemostblocks,size=3 */memset(block->c,0,16);swi
9、tch(kev)caseO:block->name=rT,;block->color=RED;block->cl0=l;block->c 11=1 ,block->c 21=1;block->cl2=l;break;easel:block->name=,Ll;block->coloi=YELLOW;block->cl0=l;block->cll=l;block->c 12=1 ,block->c22=1;break;case2:block->name=rJr;block->color=LIGHTGRAY;blo
10、ck->cl0=l;block->cll=l;block->c 12=1 ,block->c02=1;break;case3:精心整理页眉内容block->name=,z,;block->color=CYAN;block->c0 0=l ,block->cl 0=l;block->c 11=1 ,block->c 21=1;break;case4:block->nanie=r5f;block->coloi-=LIGHTBLUE;block->c lO=l ,block->c2 0=l;block->c0
11、1=1 ,block->c 11=1;break;case5:block->name=fof;block->color=BLUE;block->size=2;block->c0 0=l ,block->cl 0=l;block->c0 1=1 ,block->c 11=1;break;case6:block->name=,r;block->color=GREEN;block->size=4;block->cl0=l;block->cll=l;block->cl2=l;block->cl3=l;break;
12、/*getnextblock!*/voidNextBlockQ/*copytlienextBlocktocuiBlock*/curBlock.size=nextBlock.size;curBlock.coloi-nextBlock.coloi;cuiBlock.x=(BoardWidth-4)/2;cuiBlock.y=-curBlock.size;memcpy(cuiBlock.caiextBlock.cJ 6);/*geneiatenextBlockandshowit*/EiaseBlock(&nextBlock、NBEoaTdLeftNBEoaTdTop,NBCellSize);
13、GeneiateBlock (&nextBlock);nextBlock.x= 14iextBlock.y=0;DrawBlock(&nextElock,NBEoiudLeftNBEoiudTop,NBCellSize);/*rotatetheblock,updatetlieblockstiuctdata*/int_INNER_HELPERRotateCells(cliaic 4 4,chai blockSize)精心整理页眉内容chaitempjj;switch(blockSize)case3:temp=c00;c00=c20,c20=c22,c22=c02,c02=temp
14、;temp=c0l;c0l=cl0,cl0=c2l,c2l=cl2,cl2=temp;break;case4:/*only,rblockanvedhere!*/cl0=l-cl0,cl2=l-cl2,cl3=l-cl3;c0l=l-c0l,c2l=l-c2l,c3l=l-c3l;break;/*judgeiftheblockcaiuiiovetowaidtliediiection*/intCaiiMove(mtdx,intdy)intij ,tempX,tempY;for(i=0;i<curBlock.size;i+)foT(j=0;j<ci】i Block. size;j 十十)
15、if(curBlock.ci j)/*caimotmovelefmrardomghtwaid */tempX=cuiBlock.x+i+dx;if(tempX<0 |tempX>(Boai dWidth-1 )retunifalse;/*makesurexisvalid! */* camiotmovedownwaid */tempY=cuiBlock.y-Fj+dy;if(tempY>(BoaidHeight-l)ienunfalse;/*yisoiilycheckedloweibound,maybenegative! !*/*tliecellalieadyfilled,we
16、mustcheckY,suppeiboundbefbieclieckcell!*/if(tempY>=0&&Board tempX tempY O)retuinfalse;fetumtiue;/*judgeiftheblockcaiuotate*/intCaiiRotate()intij ,tempX,tempY;/*updatebuffer*/memcpy(BufferCells,curBlock.c,l 6);RotateCells(BuffeiCells,cuiBlock.size);精心整理(QZISIo2u-J-doHpq=HUQpq=l:POIq*:po-H)
17、:po-HnuncraBdwHIM3NNrpTOAE:POIq2qlMe-p*、宀opmupTOJ-SImmEpT(o= Adu&mxduEpwoCQNNOHAAduEmOJ-SImmEpT(I 丄 qM&HPGOCQ)AAdu)七OJ-SImmEpT(I 丄PP-AYP WOHAxdu=ovxdu)七FA&OOHlnoHAdun+x&OOHlnoHxdu(mmswp曲 ns七(+r(l)ZTS&oo-mTnovroHn 尼(+-aJ-ZTS&oo-m=lovo.!l)QJ()£sOHUeuHSSooonslq)MTopmupT(eHH
18、QZTSCOO-q)七"ssooonsqluTTrdu&UGqoopo-q 殳。o-pqwoo-h 巴SOM1UTQopssuprssQoonsJT空OOIqoqlEsOH.ooouloploPQ7、Q§SIoo+(AA&oo-q+D%ZTS=£+dopq7a3ZTSWO+(XA300-q+T)%ZTS=QO+UQpqHspoou(+r QZTSCOO-q V r OH moj(+IoZTSCOO-qvroHmoJ"uooocoo-qJIdlcnos)2ESI312s:i?lnr页眉内容EiaseBlock(block,BoardLeft
19、.BoaidTop,CellSize);memcpy(curBlock.c,BuffeiCells,16);DiawBlock(block,BoardLeft.BoaidTop,CellSize);retumb_success;/*eraseabiock,onlyfillthefiliedcellwithbackgroimdcolor*/void_INNER_HELPEREiaseBlock(Block*block4ntbdLeft4ntbdTop4ntcellSize)inti j;setfillstyle(SOLID_FILL.BkGndColoi);fbi(i=0;i<block-
20、>size;i-H-)foi(j=0;j <block->size;j 卄)if(block->cij&&(block->y+j>=0)floodfill(bdLeft+cellSize*(i+block->x)+cellSize/2,bdTop+cellSize*(j+block->y)+cellSize/2,BoideiColor);/*movebythedifectionifcan.donotlHngifcaiiiiot*retunivalue:tnie-success,false-caimotmovetowardtlusd
21、nection*/iiitMoveBlock(Block* block,intdx,intdy)intb_caiuiiove=CaiiMove(dx,dy);if(b_caimiove)EiaseBlock(block,BoardLeft.BoaidTop,CellSize);cuiBlock.x+=dx;cuiBlock.y+=dy;DrawBlock(block,BoardLeft.BoaidTop,CellSize);retunib_camnove;/*droptheblocktotliebottom! */intDiopBlock(Block* block)EiaseBlock(blo
22、ck,BoardLeft.BoaidTop,CellSize);wlHle(CaiiMove(0,1)精心整理精心整理页眉内容cuiBlock.y+;DrawBlock(block,BoaidLeft.BoaidTop?CellSize);TetmnO;/*Teti】mvali】eisassigiHotheblocksalive*/*initthegiaplucsmode.drawrtheboaidgrid*/voidhutGameOintij,gdiivei-DETECT,gmode;stmcttunesysTmie;/* diawboaidcells*/memset(Boaid,0.Boa
23、idWidtli*BoaidHeight*2);memset(nextBlock.c,0,16);sticpy(mfoJielp/P:PauseGame.-bylioodluml980M);liiitgiaph (&gdnvei;&gmodej“);setcolor(BoideiColoi);foi(i=0;i<=BoardWidth;i-H-)line(BoaidLeft+i*CellSize,BoaidTop,BoardLeft+i*CellSize.BoaidTop+BoaidHeiglit*CellSize);fdr(i=0;i<=BoardHeight;i
24、+)lme(BoaidLeft,BoaidTop+i*CellSize,BoaidLeft 十 BoaTdWidth*CellSizeJBoaidTop 十 i*CellSize);/*diawboaidouteiboidenect*/iectangle(BoardLeft-CellSize/4.BoaidTop-CellSize/4,BoaidLeft+BoaidWidtli*CellSize+CellSize/4,BoaidTop+BoaidHeight*CellSize+CellSize/4);/* di awnextblockgnds */foi(i=0;i<=4;i+)line
25、(NBBoardLeft+i*NBCellSize,NBBoaidTop;NBBoaidLefH 产 NBCellSize.NBBoaidTop+4*NBCellSize);line(NBBoardLeft,NBBoardTop+i*NBCellSize,NBBoaidLeft+4*NBCellSize,NBBoaidTop+i*NBCellSize);/*diawscoieiect*/iectangle(ScoieBoardLeft.ScoieBoaidTop.ScoieBoardLeft 十 ScoieBoaidWidthScoTeBoaidTop 十 ScoieEoaidHeight);
26、DisplayScoreQ;/*setnewseed!*/gettmie(&sysT une);srand(sysTime.ti_houi*3600十 sysTime.ti_mm*60+sysTime.ti_sec);GeneiateBlock (&nextBlock);NextBlock();/*cfeatefustblock*/sercool (DARKGRAY);OUHextxy(IllfbLeftInfbTOP+2p=uplorarespacedlop=)一0uuextxy(I=fbLeftInfbT0p+3 5 JLefMeftRlghrllghphouz:extxy
27、(InfbLeftInfdTOP+50ESCexir-)jDlsplayl=fb(mfblhelp);settheisFilledandslcoo【datatotheboald*7VoldlINNERIHELPERF 三 BoaldDaM)宀EtilfbaHpAcul Block. Sizex-H-)宀fba.HO-Acul Blo ck slz-pj+)宀iKCUTBlockcEE<&<&(CUTBlockyd.)VHO)宀Boardculwloclcx+i=curBlocky+j=oHlJBoaldculBlock:x+l=culBlocky<+.=lnc
28、ulwlock:color二 di awollelllleoftheboal.d 芒voldlINNERIHELPERPallHBOaldolls.jbllcololjfba.Hmax(TOPLllle4)0) j oai dHelgh-nJ+)宀fol(lH5?ABoaldwldrFi+)宀fmcolor=BoardELj=02Boardm=l=B§dcoloJr;setfmstylASOLIDIFILLfmcoloD;floodml(BoaldLeft+i 艸 cellslze+cellslze、2woaldTOP<+.艸 cellslze+cellslze、2woldel
29、colos二 checkifbiiehiieiffilledn二 landlllcl.easerheror 巴 S cole-*voldlINNERIHELPERCheckBoaldo宀lls.jFscoleHlpsulnHOJOPyJlllesHp、*wefklckh2opemptylllle 一芒n-ropy=Boal dHeighr1 -do宀sumH-pfoaHOAB oal.d wlckKi+)页眉内容siun+=Boardi topy 0;topy-;wlule(sum> 0&&topy>0);/*removethefiillfilledline(max
30、iemovelinescount=4)*/dosum=0;for(i=0;i<BoardWidth;i+)sum+=Boaidi j0;if(suni=BoaidWidtli)/*wefiiidthislmeisfiillfilledjemoveit!*/*movethecellsdatadownonelme*/foi(k=j ;k>topy;k)foi(i=0;i<BoaidWidth;i+)Board 1 k 0=Boaidi k-l0;Board 1 k 1 =Boaidi k-ll;/* makethetoplmeemptv! */for(i=0;i<Board
31、Width;i+)Boaidi topy 0=0;Boarditopyl=0;topy+;/*movethetoplinedownwaidoneline! */lines+;/* lmes<=4 */TotalScoie+=score;score*=2y*addiiig: 10,30,70,150*/elsej;wlule(sum>0&&j>topy&&lines<4);/*speedupthegamewheiiscoieisiiiglijniiuiiiunus400*/FiameTime=max(1200-100*(TotalScoie
32、/200),400);TopLine=topy;/*updatethetoplme*/*ifiiolinesremove,onlyadd 1: */if(luies=0)TotalScore+;/*displaytliescore*/void_INNER_HELPERDisplayScoie(J页眉内容setcoloi(BkGndColoi);outtextxy(ScofeBoaidLeft+5?ScoieBoaidTop+5jnfb_score);setcoloi(ScoreColoij;sprintf(infb_scoi:eJScojre:%d 役 TotalScoie);outtextxy(ScofeBoafdLeft+5.ScoieBoardTop+5,mfd_score);/*wecallthisfiinctionwhenablockismactive.*/voidUpdateBoaidQFillBoaidDataQ;ClieckBoardQ;PaintBoardQ;DisplayScoreQ;/*pausethegame,andtiiiierhandlerstopmovedowntheblock!*/lntPauseGameQintkey=0;DisplayIiifb(uPressPtoStartorResum
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电竞赛事门票销售团队的年度目标设定
- 投资决策与风险管理手册
- 为女性喝彩的演讲稿
- 冰墩墩演讲稿
- 2026年高考数学不等式考点冲刺卷
- 全国交通法规解读与实际应用试题
- 未来幼儿园六一演讲稿
- 演讲稿关于换季易感冒
- 新生代表古文演讲稿
- 重振信心永葆本色演讲稿
- 安徽杭富固废环保有限公司10万吨工业废物(无机类)资源化利用及无害化处置项目环境影响报告书
- 多学科设计优化综述
- 初中数学教师高级职称考试试题(含解析)
- mcn机构的通讯录
- 卫星导航系统课程教学大纲
- 刑法学(上册)马工程课件 第3章 刑法的效力
- JJF 1015-2014计量器具型式评价通用规范
- (5年高职)网络信息编辑实务教学课件汇总完整版电子教案全书课件(最新)
- 智能电网整体解决方案
- 《卫星导航定位》课程教学大纲
- 建设单位对监理企业评价表
评论
0/150
提交评论