uchar levelcnt=0;
uchar dir_last=KEY_RIGHT;
void tanchishe();//贪吃蛇实现函数
void man();//是男人就下一百层实现函数 void gamer() {
char jt=36; Set_Draw();
jiantou(20,jt,1);
drawpicfree(3,0,7,13,*mulu);
drawpicfree(2,15,7,28,*menutcs); drawpicfree(2,30,4,43,*menuman); // drawpicfree(2,45,9,58,*mubiao); Delay(50000); Delay(50000); while(1) {
switch(key())
{case 5: if(jt>34)jt-=15;jiantou(20,jt+15,0);jiantou(20,jt,1);Delay(100000);break;
case 3: if(jt<32)jt+=15;jiantou(20,jt-15,0);jiantou(20,jt,1);Delay(100000);break; case 9:
if(jt==21) goto tcs1;
else if(jt==36) goto mn;
break; //case 0:
//goto ;break; } }
mn:man();
tcs1:tanchishe(); }
void tanchishe() {int xx=0 ; int yy=0 ;
uint speed=22001; Set_Drawq();
drawpicfree(0,0,15,63,*SNAKE); track.trackend=3 ; while(1) {
if(a) LPM3; uint i,j ;
keypad.key=key();
//----------------------keypad case-----------------------
switch(keypad.key) { case 11:
{if(speed>1000)speed-=1000;
else if(speed>500) speed-=500;break; }
case 10:speed+=1000;break; case 7 : if(flag.direction!=KEY_LEFT)
flag.direction=KEY_RIGHT ; break ;
case 1 : // if(flag.direction!=KEY_RIGHT)
flag.direction=KEY_LEFT ; break ;
case 5:
if(flag.direction!=KEY_DOWN)flag.direction=KEY_UP;break ;
case 3: if(flag.direction!=KEY_UP)flag.direction=KEY_DOWN;break ; case 9: {
//LCD_INT(); //LCD_CLR(); Set_Draw(); track.trackend=3 ; bean.number=0 ; xx=0 ; yy=0 ; flag.start=1 ; flag.clear=1 ; flag.direction=KEY_LEFT ; flag.gameover=0 ; // speed=2000 ; } break ; case 4: if(flag.start==0) {
//LCD_INT(); //LCD_CLR(); Set_Draw(); track.trackend=3 ; bean.number=0 ; xx=0 ; yy=0 ; flag.start=1 ; flag.clear=1 ; flag.direction=KEY_RIGHT ; flag.gameover=0 ; // speed=2000 ; } break ; }
//---------------------------draw snake------------------------------------- // if(drawcnt>speed) // { //if(flag.direction)
// drawRectangle(xx+0,yy+0,xx+3,yy+3,2,0);///////
//-----------------------------draw bean begin---------------------------- if(bean.number<1) {
bean.coor[0]=rand()/1024*4 ; bean.coor[1]=rand()/2048*4 ; bean.number=1; levelcnt++; if(levelcnt==15)
{if(speed>2000)speed-=2000; else if(speed>500) speed-=500; levelcnt=0;
flg = 0; WriteCom(0x01); //清屏 drawpicfree(0,0,15,63,*sj); while(flg < 8); Set_Draw(); }
big++; if(big==5) big=0; big2++;
if(big2==11) big2=0; }
if(flag.start) {if(big==3)
drawRectangle(bean.coor[0]+0,bean.coor[1]+0,bean.coor[0]+3,bean.coor[1]+3,1,1); else if(big2==10)
drawyuan(bean.coor[0]+1,bean.coor[1]+0,bean.coor[0]+1,bean.coor[1]+3,2,1); else
drawRectangle(bean.coor[0]+0,bean.coor[1]+0,bean.coor[0]+2,bean.coor[1]+2,1,1); }
//------------------------------清楚头部--------------------------- switch(dir_last)
{ case KEY_RIGHT :
headright(xx,yy+0,0); break ;
case KEY_LEFT :
headleft(xx,yy+0,0);
break ;
case KEY_UP : headup(xx,yy,0);
break ;
case KEY_DOWN : headdown(xx+0,yy,0); break ; }
if(flag.direction)
{switch(flag.direction) {case KEY_RIGHT:
//drawRectangle(xx,yy-2,xx+7,yy+5,4,0); shenx(xx,yy+0,1);break; case KEY_LEFT:
// drawRectangle(xx-4,yy-2,xx+3,yy+5,4,0); shenx(xx,yy+0,1);break; case KEY_UP:
// drawRectangle(xx-2,yy-5,xx+5,yy+3,4,0); sheny(xx+0,yy,1);break; case KEY_DOWN:
// drawRectangle(xx-2,yy,xx+5,yy+7,4,0); sheny(xx+0,yy,1);break; }}//draw snake head
//----------------------eat bean------------------------------------------ if(xx==bean.coor[0]&&yy==bean.coor[1]) {if(big==3)
track.trackend+=2; else if(big2==8) track.trackend+=4;
else track.trackend++;
bean.number--; } else {
for(i=0;i if(flag.gameover==0) { Lcd_flash(500,5); drawpicfree(0,0,15,63,*over); flag.direction=KEY_HOLD ; flag.gameover=1 ; flag.start=0 ; } } for(j=0;j<4;j++) { track.track[i][j]=track.track[i+1][j];// 后一节获得前一节的坐标 } } } //----------------------save snake track-------------------------- track.track[track.trackend-1][0]=xx+0 ; track.track[track.trackend-1][1]=yy+0 ; track.track[track.trackend-1][2]=xx+3 ; track.track[track.trackend-1][3]=yy+3 ; //} //--------------------------------------------- //drawcnt=0 ; //------------------------move snake---------------------------- switch(flag.direction) { case KEY_RIGHT : // headright(xx+0,yy+0,0); xx+=4 ; //drawRectangle(xx,yy,xx-1,yy+3,2,0); headright(xx,yy+0,1); break ; case KEY_LEFT : // headleft(xx+4,yy+0,0); xx-=4 ; // drawRectangle(xx+4,yy,xx+7,yy+3,2,0); headleft(xx,yy+0,1); break ; case KEY_UP : // headup(xx,yy,0); yy-=4 ; // drawRectangle(xx,yy+4,xx+3,yy+7,2,0); headup(xx,yy,1); break ; case KEY_DOWN : yy+=4 ; // drawRectangle(xx,yy-4,xx+3,yy-1,2,0); headdown(xx+0,yy,1); break ; } //------------------------------draw bean end---------------------------------------- if(track.track[0][0]||track.track[0][1]||track.track[0][2]||track.track[0][3]) { if(flag.direction) {drawRectangle(track.track[0][0],track.track[0][1],track.track[0][2],track.track[0][3],2,0); if(big!=4&&big2!=9) { drawRectangle(track.track[1][0],track.track[1][1],track.track[1][2],track.track[1][3],2,0); if(track.track[1][0]==track.track[2][0]+4) {//shenx(track.track[1][0],track.track[1][1],0); tailleft(track.track[1][0],track.track[1][1],1); //drawRectangle(track.track[0][0]+3,track.track[0][1],track.track[0][2]+3,track.track[0][3],2,0); } else if(track.track[2][0]==track.track[1][0]+4) {//shenx(track.track[1][0],track.track[1][1],0); tailright(track.track[1][0],track.track[1][1],1); //tailright(track.track[0][0],track.track[0][1],0); } else if(track.track[1][1]==track.track[2][1]+4) {//sheny(track.track[1][0],track.track[1][1],0); tailup(track.track[1][0],track.track[1][1],1); //tailup(track.track[0][0],track.track[0][1],0); } else if(track.track[2][1]==track.track[1][1]+4) {//sheny(track.track[1][0],track.track[1][1],0); taildown(track.track[1][0],track.track[1][1],1); //taildown(track.track[0][0],track.track[0][1],0); } // clearn(track.track[0][0],track.track[0][1],track.track[0][2],track.track[0][3],0); } } } //clear snake tail if(xx==128)xx=0 ; if(yy==)yy=0 ; if(flag.direction==KEY_LEFT&&xx==-4)xx=124; if(flag.direction==KEY_UP&&yy==-4)yy=60; //if(xx==252)xx=124 ; // if(yy==252)yy=60 ; if(flag.start==0)flag.direction=KEY_HOLD ; if(flag.clear==1) { LCD_CLR(); flag.clear=0 ; } dir_last=flag.direction; Delay(speed); } } //*********************** 是男人就下一百层****************************** //*****************************2010.11.5****************************** //*******************************by one************************************ //******************************v0.1 beta********************************** void man() {uchar guanstart=1; DCOCTL |= 0X60; uchar mannum=1; uchar life=5; uchar i=0; uchar scocnt=0; uchar guan=0; uint guancnt=0; uint cnt=0; uint score=0; char xx=0,yy=0; uint sban=3,sdown=2; Set_Drawq(); ban.number=2; drawpicfree(0,0,15,63,*manface); while(1) { if(a) LPM3; keypad.key=key(); //**********************************keypad case************************************ switch(keypad.key) { case 11: if(sban>5)speed-=1; break; case 10:sban+=1;break; //***************************************start game*************************************one case 9:if(flag.start==0) { Set_Draw(); score=0; guan=1 ; xx=50 ; yy=0 ; flag.start=1 ; flag.clear=1 ; flag.gameover=0 ; ban.number=2 ; ban.coor[1][0]=rand()%46 +33; ; ban.coor[2][0]=rand()%46 +33; ban.coor[1][1]=40 ; ban.coor[2][1]=20 ; drawRectangle(ban.coor[1][0]+0,ban.coor[1][1],ban.coor[1][0]+16,ban.coor[1][1]+2,1,1); drawRectangle(ban.coor[2][0]+0,ban.coor[2][1],ban.coor[2][0]+16,ban.coor[2][1]+2,1,1); drawman(xx,yy,1); } WriteCom(0x01); drawpicfree(0,0,15,63,*manui); drawpicfree(0,18,3,25,*clearnmin); drawnum2(14,18,guan,1); break ; } //************************************************************************************ //*******************************************过关重画********************************** if(guanstart==0) { // Set_Draw(); //score=0; // guan=1 ; xx=50 ; yy=0 ; guanstart=1 ; // flag.clear=1 ; // flag.gameover=0 ; ban.number=2 ; ban.coor[1][0]=rand()%46 +33; ; ban.coor[2][0]=rand()%46 +33; ban.coor[1][1]=40 ; ban.coor[2][1]=20 ; drawRectangle(ban.coor[1][0]+0,ban.coor[1][1],ban.coor[1][0]+16,ban.coor[1][1]+2,1,1); drawRectangle(ban.coor[2][0]+0,ban.coor[2][1],ban.coor[2][0]+16,ban.coor[2][1]+2,1,1); drawman(xx,yy,1); WriteCom(0x01); drawpicfree(0,0,15,63,*manui); drawpicfree(0,18,3,25,*clearnmin); drawnum2(14,18,guan,1); } //******************************************************************************** //-----------------------------draw ban begin---------------------------- if(mannum<1) { xx=rand()%56+33; yy=4; drawman(xx,yy,1); mannum=1; } if(ban.number<3) { ban.coor[0][0]=rand()%46 +33; ban.coor[0][1]=62; ban.number=3; drawRectangle(ban.coor[0][0]+0,ban.coor[0][1],ban.coor[0][0]+16,ban.coor[0][1]+2,1,1); } /* big++; if(big==15) big=0; big2++; if(big2==35) big2=0; */ //**************************人走动**********************one switch(keypad.key) {case 1: if(xx>33) { drawman(xx,yy,0); xx-=2; drawman(xx,yy,1); } break; /*if((yy==ban.coor[0][1]-1&&xx>=ban.coor[0][0]&&xx<=ban.coor[0][0]+16)||(yy==ban.coor[1][1]-1&&xx>=ban.coor[1][0]&&xx<=ban.coor[1][0]+16)||(yy==ban.coor[2][1]-1&&xx>=ban.coor[2][0]&&xx<=ban.coor[2] for(i=0;i<3;i++) {if(yy==ban.coor[i][1]-4) if(xx>=ban.coor[i][0]) if(xx<=ban.coor[i][0]+16) { drawman(xx,yy,0); xx-=2; drawman(xx,yy,1); goto fang1;break; } } drawman(xx,yy,0); xx-=2; drawman(xx,yy,1); }break; fang1: */ case 7:if(xx<94) { drawman(xx,yy,0); xx+=2; drawman(xx,yy,1); } break;} /* if((yy==ban.coor[0][1]-1&&xx>=ban.coor[0][0]&&xx<=ban.coor[0][0]+16)||(yy==ban.coor[1][1]-1&&xx>=ban.coor[1][0]&&xx<=ban.coor[1][0]+16)||(yy==ban.coor[2][1]-1&&xx>=ban.coor[2][0]&&xx<=ban.coor[2] //[0]+16)) {for(i=0;i<3;i++) {if(yy==ban.coor[i][1]-4) if(xx>=ban.coor[i][0]) if(xx<=ban.coor[i][0]+16) { drawman(xx,yy,0); xx+=2; drawman(xx,yy,1); goto fang2;break; } } drawman(xx,yy,0); xx+=2; drawman(xx,yy,1); } break; } fang2:*/ //************************************************************* //******************************************down*************************one for(i=0;i<3;i++) {if(yy==ban.coor[i][1]-6) if(xx>=ban.coor[i][0]) if(xx<=ban.coor[i][0]+16) //if((yy==ban.coor[0][1]-1&&xx>=ban.coor[0][0]&&xx<=ban.coor[0][0]+16)||(yy==ban.coor[1][1]-1&&xx>=ban.coor[1][0]&&xx<=ban.coor[1][0]+16)||(yy==ban.coor[2][1]-1&&xx>=ban.coor[2][0]&&xx<=ban.coor {drawman(xx,yy+2,0); yy=ban.coor[i][1]-6;goto a1; }if(i==2) {//if(cnt%sdown==1) drawman(xx,yy,0); yy+=2; } } a1: drawman(xx,yy,1); cnt++; if(cnt==1000) cnt=0; if(cnt%sban==1) { for(i=0;i<3;i++) drawRectangle(ban.coor[i][0]+0,ban.coor[i][1],ban.coor[i][0]+16,ban.coor[i][1]+2,1,0); //if(cnt%sban==1) for(i=0;i<3;i++) {ban.coor[i][1]-=2; drawRectangle(ban.coor[i][0]+0,ban.coor[i][1],ban.coor[i][0]+16,ban.coor[i][1]+2,1,1); } for(i=0;i<3;i++) {if(yy==ban.coor[i][1]-4) if(xx>=ban.coor[i][0]) if(xx<=ban.coor[i][0]+16) yy=ban.coor[i][1]-6; } } //{if(cnt%sdown==1) //yy+=2;} //[2][0]+16)) {//if(cnt%sban==1) //yy+=2; } //**************************************************************************** /********************************clean and draw ban****************************** for(i=0;i<3;i++) { drawRectangle(ban.coor[i][0]+0,ban.coor[i][1]-2,ban.coor[i][0]+16,ban.coor[i][1],1,1); } //********************************************************************************/ //************************换坐标******************************one if(ban.coor[2][1]==0) {ban.number=2; ban.coor[2][0]=ban.coor[1][0]; ban.coor[1][0]=ban.coor[0][0]; ban.coor[2][1]=ban.coor[1][1]; ban.coor[1][1]=ban.coor[0][1]; } //************************************************************one /********************画吃的*************************one if(ban.coor[0][1]==3) {if(big==3) { drawRectangle(ban.coor[0][0]+8,ban.coor[0][1]-6,ban.coor[0][0]+11,ban.coor[0][1]-3,1,0); drawRectangle(ban.coor[0][0]+8,ban.coor[0][1]-4,ban.coor[0][0]+11,ban.coor[0][1]-1,1,1); }else if(big2==10) {drawyuan(ban.coor[0][0]+8,ban.coor[0][1]-6,ban.coor[0][0]+11,ban.coor[0][1]-3,2,0); drawyuan(ban.coor[0][0]+8,ban.coor[0][1]-4,ban.coor[0][0]+11,ban.coor[0][1]-1,2,1); } } //*************************************************************/ //********************************gameover************************************** if(life<1) { Lcd_flash(500,5); drawpicfree(0,0,15,63,*over); flag.gameover=1 ; flag.start=0 ; //应该加入显示“您的最终得分为:XXXX,欢迎再次尝试“ //goto start; } //********************************************************************************* //***********************************score******************************************** scocnt++; if(yy>||yy<0) {life-=1; mannum=0; } if(scocnt==10) {score+=5; guancnt+=1; scocnt=0; drawpicfree(0,,3,61,*clearnmin); drawnum(2,,score,1); } if(guancnt==100) {guan+=1; guancnt=0; if(sban>1) sban-=1; WriteCom(0x01); //清屏 drawpicfree(0,0,15,63,*sj); while(flg < 8); Set_Draw(); guanstart=0; mannum=0; } //************************************************************************************** //Delay(1000); //********************************边栏显示 ****************************************** //WriteCom(0x01); //WriteCom(0x01); //WriteCom(0x01); drawpicfree(6,18,9,25,*clearnmin); drawnum1(114,18,life,1); //************************************************************************** }} 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务