c语言如何提前结束sleep函数,关于sleep函数的问题,

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

#include

#include

#include

#include

#define RIGHT 77

#define LEFT 75

#define UP 72

#define DOWN 80

const int D=20;

const int X=3;

const int R=7;

const int W=2;

const int NUM=5;

int a[D][D]={

{19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19},

{19,8,1,1,1,1,1,1,1,1,1,1,1,1,W,19,1,W,W,19},

{19,1,1,1,1,19,1,1,1,1,19,1,1,1,1,19,1,1,1,19},

{19,1,1,1,1,19,1,1,1,19,1,19,1,1,1,19,1,1,1,19},

{19,1,1,1,1,19,1,1,19,1,1,1,19,1,1,19,1,1,1,19},

{19,1,1,1,1,19,1,1,1,1,1,1,1,1,1,19,1,1,1,19},

{19,1,1,1,1,19,1,1,1,1,1,1,1,W,19,19,1,1,1,19},

{19,1,1,1,1,1,1,1,1,1,1,1,1,1,1,X+1,1,1,1,19},

{19,1,1,1,1,1,1,1,1,1,1,1,1,1,X+1,1,1,1,1,19},

{19,1,1,19,19,19,19,19,1,1,1,1,19,1,1,1,1,1,1,19},

{19,1,1,1,1,1,1,19,1,1,1,1,19,1,1,1,1,1,1,19},

{19,1,1,1,1+X,1,1,19,1,1,1,1,19,19,1,1,1,1,1,19},

{19,1,1,1,1,1,1,19,1+X,1,1,1,1,19,1,1,1,1,1,19},

{19,1,1,1,1,1,1,19,1,1,1,1,1,19,1,1,1,1,1,19},

{19,1,1,1,1,1,1,19,1,1,1,1,1,19,1,1,1,1,1,19},

{19,1,1,1,1,19,19,19,1,1,1,1,1,19,1,1,1,1,1,19},

{19,1,1,1,1,19,1,1,1,1,1,1,1,19,19,1,1,1,1,19},

{19,1,1,19,19,19,1,1+X,1,1,1,1,1,1,19,1,1,1,1,19},

{19,1,1,19,1,1,1,1,1,1,1,1,1,W,19,1,1,1,1,19},

{19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19}

};

int move(int *x, int *y, int i, int j);

int outPut(int a[D][D]);

int main()

{

int x, y, i, j;

x = 1;

y = 1;

system("color 0B");

char ch;

outPut(a);

while(1)

{

fflush(stdin);

ch = getch();

switch(ch)

{

case RIGHT: move(&x, &y, 0, 1);break;

case LEFT: move(&x, &y, 0, -1);break;

case DOWN: move(&x, &y, 1, 0);break;

case UP: move(&x, &y, -1, 0);break;

}

int count = 0;

count = outPut(a);

if(NUM == count)

{

printf(" 成功!若智商是时间,那你便是永恒!! ");

printf("\n");

system("pause");

return 0;

}

}

}

int move(int *x, int *y, int i, int j)

{

if(a[*x + i][*y + j] < X + 1)

{

a[*x][*y] -= R;

a[*x + i][*y + j] += R;

*x += i;

*y += j;

}

else if(a[*x + i][*y + j] == X + 1 && a[*x + i + i][*y + j + j] < X)

{

a[*x][*y] -= R;

a[*x + i][*y + j] -= X;

a[*x + i + i][*y + j + j] += X;

a[*x + i][*y + j] += R;

*x += i;

*y += j;

}

else if(a[*x + i][*y + j] == X + W && a[*x + i + i][*y + j + j] < X)

{

a[*x][*y] -= R;

a[*x + i][*y + j] -= X;

a[*x + i + i][*y + j + j] += X;

a[*x + i][*y + j] += R;

*x += i;

*y += j;

}

return 1;

}

int outPut(int a[D][D])

{

system("cls");

int count = 0;

int i, j;

int min=1,sec=0,n;

n=60*min+sec;

while(n!=0)

{

for (i = 0 ; i < D; i++)

{

for (j = 0; j < D; j++)

{

if(W + X == a[i][j])

{

count++;

}

switch(a[i][j])

{

case 19 : printf("▓");;break;

case 2 : printf("□");break;

case 8 : printf("*");break;

case 4 : printf("¤");break;

case 5 : printf("※");break;

case 1 : printf(" ");break;

default: printf(" ");

}

}

printf("\n");

}

printf(" 上:↑ 下:↓ 左:← 右:→\n " );

printf(" ▓墙 *人 ¤箱子 □放箱子的空位 ※箱子占用的位置\n ");

printf(" 剩余时间:%2d分:%2d秒" ,n/60,n%60);

n=n-1;

Sleep(1000);

system("cls");

}

return count;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值