该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#include
#include
#include
short body[50][2];//最长长度为50
short length,frame=10;
short cas1=0,j=1;
short i,ii,iii,i4;
short ran[2];
char key='d';
short timer=25;
int autochange(){
for(i=length-1;i>0;i--){
body[i][0]=body[i-1][0];
body[i][1]=body[i-1][1];
}
return 0;
}
int println(){
while(1){
system("cls");
while(ran[0]==body[0][0]&&ran[1]==body[0][1]){
randomw();
length++;
timer=timer-1;
body[length-1][0]=frame;
body[length-1][1]=frame;
}
for(i=0;i
for(ii=0;ii
for(iii=0;iii
if(body[iii+1][1]==i&&body[iii+1][0]==ii){
printf(" *");
cas1=1;
}
}
if(body[0][0]==ii&&body[0][1]==i){
printf(" @");
}else if(ran[0]==ii&&ran[1]==i){
printf(" Q");
}else if(ii==frame){
printf(" #");
}else if(cas1==1){
cas1=0;
}else{
printf(" ");
}
}
printf("\n");
}
for(i4=0;i4
printf(" #");
}
printf("\n");
getkey();
autochange();
keywalk();
if(body[0][0]==-1||body[0][0]==frame||body[0][1]==-1||body[0][1]==frame){
printf("you died\nyou guard is %d\n",length-3);
break;
}
for(i=1;i
if(body[0][0]==body[i][0]&&body[0][1]==body[i][1]){
j=0;
break;
}else{
j=1;
}
}
if(j==0){
printf("you died\nyou guard is %d\n",length-3);
break;
}
}
return 0;
}
int randomw(){
srand(time(NULL));
ran[0]=rand()%frame;
ran[1]=rand()%frame;
for(i=0;i
if(body[i][0]==ran[0]&&body[i][1]==ran[1]){
randomw();
}
}
return 0;
}
int getkey(){//获取键盘码
char ch=0,k=0;
while(ch!='w'&&ch!='s'&&ch!='a'&&ch!='d'&&ch==0){
if(kbhit()){
ch=getch();
}
Sleep(timer);
k++;
if(k>=15){
ch=0;
break;
}
}
while(k<15){
Sleep(timer);
k++;
}
if(ch!=0&&(ch=='w'||ch=='s'||ch=='a'||ch=='d')){
if(key=='w'&&ch!='s'){
key=ch;
}else if(key=='a'&&ch!='d'){
key=ch;
}else if(key=='s'&&ch!='w'){
key=ch;
}else if(key=='d'&&ch!='a'){
key=ch;
}
}
return 0;
}
int keywalk(){//控制走向
switch(key){
case 'w':
body[0][1]--;
break;
case 's':
body[0][1]++;
break;
case 'a':
body[0][0]--;
break;
case 'd':
body[0][0]++;
break;
}
return 0;
}
int again(){//控制再试一次
char b;
printf("start(y \\ n)?\n");
scanf("%c",&b);
while(b=='y'){
snake();
printf("are you went try again(y \\ n)?\n");
scanf(" %c",&b);
key='d';
timer=25;
}
return 0;
}
int snake(){//定义函数
length=3;
body[0][0]=2;
body[0][1]=frame/2;
body[1][0]=1;
body[1][1]=frame/2;
body[2][0]=0;
body[2][1]=frame/2;
randomw();
println();
return 0;
}
int main(){
again();
return 0;
}