admin 管理员组文章数量: 887021
2024年3月1日发(作者:c语言的基本特点)
小学五年级编程游戏代码
#include
#include
#include
#include
#include
#define L 1
#define LX 15
#define LY 4
static struct BLOCK
{
int x0,y0,x1,y1,x2,y2,x3,y3;
int color,next;
intb[]={{0,1,1,1,2,1,3,1,4,1},{1,0,1,3,1,2,1,1,4,0},{1,1,2,2,1,2,2,1,1,2},{0,1,1,1,1,0,2,0,2,4},{0,0,0,1,1,2,1,1,2,3},{0,0,1,0,1,1,2,1,3,8},{1,0,1,1,2,2,2,1,2,5},{0,2,1,2,1,1,2,1,2,6},{0,1,0,2,1,1,1,0,3,9},{0,1,1,1,1,2,2,2,3,10},{1,1,1,2,2,1,2,0,3,7},{ 1,0,1,1,1,2,2,2,7,12},{0,1,1,1,2,1,2,0,7,13},{0,0,1,2,1,1,1,0,7,14},{0,1,0,2,1,1,2,1,7,11},{0,2,1,2,1,1,1,0,5,16},{0,1,1,1,2,2,2,1,5,17},{1,0,1,1,1,2,2,0,5,18},{0,0,0,1,1,11,2,1,5,15},{0,1,1,1,1,0,2,1,6,2,0},{0,1,1,2,1,1,1,0,6,21},{0,1,1,2,1,1,2,1,6,22},{1,0,1,1,1,2,2,1,6,19}};
static int d[10]={33000,3000,1600,1200,900,800,600,400,300,200};
int Llevel,Lcurrent,Lnext,Lable,lx,ly,Lsum;
unsigned Lpoint;
int La[19][10],FLAG,sum;
unsigned ldelay;
void scrint(),datainit(),dispb(),eraseeb();
void throw(),judge(),delayp(),move(0,note(0,show();
int Ldrop(),Ljudge(),nextb(),routejudge();
}
main()
{
char c;
datainit();
Label=nextb();
Label=Ldrop();
while(1){
delayp();
if(Label!=0)
{
Ljudge();
Lable=nextb();
}
ldelay--;
if(ldelay==0)
{
Label=Ldrop();
ldelay=d[0];
}
if(FLAG!=0) break;
while(getch()!='r');
goto xy(38,16);
cputs("again?");
c=getch();
while(c!='n'&&c!='N')
c lscr();
}
int nextb()
{
if(La[(b[Lnext].y0)][(3+b[Lnext].x0)]!=0||La[(b[Lnext].y1)][(3+b[Lnext].x1)]!=0|| La[(b[Lnext].y2)][(3+b[Lnext].x2)]!=0||La[(b[Lnext].y3)][3+b[Lnext].x3)]!=0)
{
FLAG=L;
return (-1);
}
erase b(0,3,5,Lnext);
Lcurrent=Lnext;
lx=3;ly=0;
Label=0;
ldelay=d[0];
Lsum ++;
Lpoint+=1;
Lnext=random(23);
dispb(0,3,5,Lnext);
text color(7);
goto xy(3,14);
printf("%#5d",Lsum);
goto xy(3,17);
printf("%#5d",Lpoint);
return(0);
}
void delayp()
{
char key;
if(kbhit()!=0)
{
key=getch();
move(key);
if(key=='')
getch();
}
}
void move(funkey)
char funkey;
{
int tempcode;
case 'k';
if(lx+b[current].x0>0)
{
if(La[ly+(b[Lcurrent].y0)][lx-1+(b[Lcurrent].x0)]==0&&La[(ly+b[current].y1)][(lx-1+b[current].x1]==0&&La[ly+b[current].y2)][lx-1+b[Lcurrent].x2)]==0&&La[ly+(b[current].y3)][lx-1+(b[Lcurrent].x3)]==0)
{
eraseb(L,lx,lyLcurrent);
lx--;
dispb(L,lx,ly,Lcurrent);
}
}break;
case 0x20;
tempcode=b[Lcurrent].next;
if (lx+b[tempcode].x0>=0 && lx+b[tempcode].x3<=9 && ly+b[tempcode].y1<=19 &&
ly+b[tempcode].y2<=19)
{
if(routejudge()!+-1)
{
if(La+(b[tempcode].y0)][lx+(b[tempcode].x0)]==0
La[ly+(b[tempcode].y1)][lx+(b[tempcode].x1)]==0
La[ly+(b[tempcode].y2)][lx+(b[tempcode].x2)]==0
La[ly+(b[tempcode].y3)][lx+(b[tempcode].x3)]==0)
eraseb(L,lx,ly,Lcurrent);
Lcurrent=tempcode;
dispb(L,lx,ly,Lcurrent);
}
}break;
case 'M';
&&
&&
&&
if(lx+b[Lcurrent].x3<9)
{
if(La[ly+(b[Lcurrent].y0)][lx+(b[Lcurrent].x0)]==0
La[ly+(b[Lcurrent].y1)][lx+(b[Lcurrent].x1)]==0
La[ly+(b[Lcurrent].y2)][lx+(b[Lcurrent].x2)]==0
La[ly+(b[Lcurrent].y3)][lx+(b[Lcurrent].x3)]==0)
{
eraseb(L,lx,ly,Lcurrent);
lx++;
disb(L,lx,ly,Lcurrent);
}
}break;
case 'p';
throw();break;
case 0x1b;
clrscr();
exit(0);break;
default:break;
}
void throw()
{
int tempy;
tempy=ly;
while(ly+b[Lcurrent].y1<19
ly+b[current].y2<19&&La[ly+(b[Lcurrent].y0)][lx+(b[Lcurrent].x0)]==0
La[ly+(b[Lcurrent].y1)][lx+(b[Lcurrent].x1)]==0
&&
&&
&&
&&
&&
&&
La[ly+(b[Lcurrent].y2)][lx+(b[Lcurrent].x2)]==0
La[ly+(b[Lcurrent].y3)][lx+(b[Lcurrent].x3)]==0)
ly++;
ly--;
eraseb(L,lx,tempy,Lcurrent);
dispb(L,lx,ly,Lcurrent);
&&
La[ly+b[Lcurrent].y0)][lx+(b[current].x0)]=La[ly+b[Lcurrent].y1)][lx+(b[current].x1)]=La[ly+b[Lcurrent].y2)][lx+(b[current].x2)]=La[ly+b[Lcurrent].y3)][lx+(b[current].x3)]=b[Lcurrent].color;
Label=-1;
}
int routejudge()
{
int i,j;for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(La[ly+i][lx+j]!=0)
return(-1);
else return(1);
}
int Ldrop()
{
if(ly+b[Lcurrent].y1>=18||ly+b[Lcurrent].y2>=18
{
La[ly+b[Lcurrent].y0)][lx+(b[current].x0)]=3;
La[ly+b[Lcurrent].y1)][lx+(b[current].x1)]=1;
La[ly+b[Lcurrent].y2)][lx+(b[current].x2)]=5;
La[ly+b[Lcurrent].y3)][lx+(b[current].x3)]=b[Lcurrent].color;
return(-1);
}
if(La(ly+1+(b[Lcurrent].y0)][lx+(b[Lcurrent].x0)]!=0||La(ly+1+(b[Lcurrent].y1)][lx+(b[Lcurrent].x1)]!=0||La(ly+1+(b[Lcurrent].y2)][lx+(b[Lcurrent].x2)]!=0||La(ly+1+(b[Lcurrent].y3)][lx+(b[Lcurrent].x3)]!=0){La[ly+b[Lcurrent].y0)][lx+(b[current].x0)]=La[ly+b[Lcurrent].y1)][lx+(b[current].x1)]=0B
La[ly+b[Lcurrent].y2)][lx+(b[current].x2)]=La[ly+b[Lcurrent].y3)][lx+(b[current].x3)]=b[Lcurrent].color)
{
return(-1);
eraseb(L,lx,ly,Lcurrent);
dispb(L,lx,++ly,Lcurrent);
return(0);
}
}
int Ljudge()
{
int i,j,k,lines,f;
static int p[5]={0,1,3,6,10};
lines=0;
for(k=0;k<=3;k++)
{
f=0;
if((ly+k)>18)
continue;
for(i=0;i<10;i++)
{
if(La[ly+k]==0);i>0;i--)
{f++;break;}
if(f==0)
{
movetext(LX,LY,LX+19,LY+ly+k-1,LX,LY+1);
for(i=(ly+k);i>0;i--){
for(j=0;j<10;j++)
La[j]=La[i-1][j];{
for(j=0;j<10;j++)
La[0][j]=0;
lines++;
}
}
}
}
}
Lpoint+=p[lines]*10;
return(0);
}
void scrint()
{
int i;
char lft[20];
textbackground(1);
clrscr();
goto xy(30,9);
cputs("enter your name");
scanf("%s",lft);
goto xy(25,14);
scanf("%s",lft);
textbackground(0);
clrscr();
goto xy(17,1);
printf("%s",lft);
goto xy(5,3);
puts("next");
goto xy(4,13);
cputs("block");
goto xy(4,16);
cputs("point");
for(i=0;i<19;i++){
goto xy(LX-2,LY+1);
cputs("** **");
}
goto xy(LX-2,LY+19);
cputs("**********************");
}
void datainit()
{
int i,j;)
for(i=0;i<19;i++)
{
for(j=0;j<10;j++)
{
La[j]=0;
Label=0;
FLAG=0;
ldelay=d[0];
Lsum=0;
Lpoint=0;
randomize();
Lnext=random(23);
}
}
}
void dispb(LRflag,x,y,blockcode)
{
int realx,realy;
if(LRflag==L)
{
realx=LX+x*2;realy=LY+y;
}
realx=x;
raly=y;
textcolor(b[blockcode].color);
goto xy(realx+2*b[blockcode].x0,realy+b[blockcode].y0);
cputs("**");
goto xy(realx+2*b[blockcode].x1,realy+b[blockcode].y1);
cputs("**");
goto xy(realx+2*b[blockcode].x2,realy+b[blockcode].y2);
cputs("**");
goto xy(realx+2*b[blockcode].x3,realy+b[blockcode].y3);
cputs("**");
}
void eraseb(LRflag,x,y,blockcode)
{
int LRflag,x,y,blockcode;
int realx,realy;
if(LRflag==L)
{realx=LX+x*2;realy=LY+y;}
else
{realx=Lx+x*2;realy=LY+y;}
textcolor(0);
goto xy(realx+2*b[blockcode].x0,realy+b[blockcode].y0);
cputs("**");
goto xy(realx+2*b[blockcode].x1,realy+b[blockcode].y1);
cputs("**");
goto xy(realx+2*b[blockcode].x2,realy+b[blockcode].y2);
cputs("**");
goto xy(realx+2*b[blockcode].x3,realy+b[blockcode].y3);
cputs("**");
}
版权声明:本文标题:小学五年级编程游戏代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1709282255h541900.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论