c语言十全十美游戏规则,C语言编写的游戏“十全十美”

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

if(LargeRect.nowx>LargeStartx+LargeRect.size*(array-1))  {LargeRect.nowx-=LargeRect.size;continue;}

setwritemode(1);

DrawLargeRect(LargeRect.agox,LargeRect.agoy,LargeRect.size,LargeRect.color);

DrawLargeRect(LargeRect.nowx,LargeRect.nowy,LargeRect.size,LargeRect.color);

setwritemode(0);

position+=1;

break;

}

case P:

{

setbkcolor(BLUE);

cleardevice();

if(array<10)  array++;

else array=5;

InitData2();

InitPic();

break;

}

case R:

{

setbkcolor(BLUE);

cleardevice();

InitData2();

InitPic();

break;

}

case Enter:

{

SmallRect.nowx=LargeRect.nowx+10;

SmallRect.nowy=LargeRect.nowy+10;

for(int i=0;i<5;i++)

ChargeColor(i);

break;

}

case Esc:

{

closegraph();

exit(1);

}

}

if(Win())

{

outtextxy(100,50,"CONGRATULATIONS!");

sleep(5);

setbkcolor(BLUE);

cleardevice();

if(array<10)  array++;

else array=5;

InitData2();

InitPic();

}

}while(1);

}

void InitData1()

{

array=5;

LargeStartx=50;

LargeStarty=50;

SmallStartx=LargeStartx+10;

SmallStarty=LargeStarty+10;

LargeRect.size=40;

LargeRect.color=RED;

SmallRect.size=20;

}

void InitData2()    //随着关数的变化会改变的数据

{

position=0;

LargeRect.nowx=LargeStartx;

LargeRect.nowy=LargeStarty;

for(int i=0;i<100;i++)

Attr[i]='W';

}

void DrawSmallRect(int x,int y,int size,char color)

{

setfillstyle(1,color);

bar(x,y,x+size,y+size);

}

void DrawLargeRect(int x,int y,int size,char color)

{

setcolor(color);

rectangle(x,y,x+size,y+size);

}

void InitPic()

{

for(int j=0;j

for(int i=0;i

DrawSmallRect(SmallStartx+i*40,SmallStarty+j*40,SmallRect.size,WHITE);

DrawLargeRect(LargeStartx,LargeStarty,LargeRect.size,LargeRect.color);

}

void ChargeColor(int Direction)

{

Add Add;

switch(Direction)

{

case 0:               //当前位置

{

Add.x=0;

Add.y=0;

Add.p=0;

break;

}

case 1:               //左

{

Add.x=-40;

Add.y=0;

Add.p=-1;

break;

}

case 2:               //右

{

Add.x=40;

Add.y=0;

Add.p=1;

break;

}

case 3:               //上

{

Add.x=0;

Add.y=-40;

Add.p=-array;

break;

}

case 4:               //下

{

Add.x=0;

Add.y=40;

Add.p=array;

break;

}

}

if(Judge(Add.x+SmallRect.nowx,Add.y+SmallRect.nowy))

{

if(Attr[Add.p+position]=='R')

{

Attr[Add.p+position]='W';

SmallRect.color=WHITE;

}

else

{

Attr[Add.p+position]='R';

SmallRect.color=RED;

}

DrawSmallRect(SmallRect.nowx+Add.x,SmallRect.nowy+Add.y,SmallRect.size,SmallRect.color);

}

}

int Win()

{

for(int i=0;i

if(Attr[i]!='R')  return 0;

return 1;

}

int Judge(int x,int y)

{

if(x>=SmallStartx&&x<=(SmallStartx+(array-1)*40)&&y>=SmallStarty&&(y<=SmallStarty+(array-1)*40))

return 1;

else return 0;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值