代码拉取完成,页面将自动刷新
#include <stdio.h>
#include <stdlib.h>
#define SNAKE_MAX_LENGTH 20
#define SNAKE_HEAD 'H'
#define SNAKE_BODY 'X'
#define WALL '*'
#define FOOD '$'
char map[12][12] =
{"************",
"*XXXXH *",
"* *",
"* *",
"* *",
"* *",
"* *",
"* *",
"* *",
"* *",
"* *",
"************"
};
int snake_length = 5;
int snake_X[SNAKE_MAX_LENGTH] = {1 , 2 , 3 , 4 , 5};
int snake_Y[SNAKE_MAX_LENGTH] = {1 , 1 , 1 , 1 , 1};
void snake_move (int dy , int dx);
void output(void);
void gameover(void);
int if_dead(void);
int eat_itself(void);
int main(){
char input;
output();
while(if_dead()){
input = getchar();
switch(input){
case 'A':
case 'a':
snake_move(0 , -1);
break;
case 'D':
case 'd':
snake_move(0 , 1);
break;
case 'W':
case 'w':
snake_move(-1 , 0);
break;
case 'S':
case 's':
snake_move(1 , 0);
break;
default:
break;
}
output();
}
gameover();
return 0;
}
int if_dead(){
if(snake_X[snake_length - 1] == 0 || snake_X[snake_length - 1] == 11
|| snake_Y[snake_length - 1] == 0 || snake_Y[snake_length - 1] == 11)
return 0;
if(eat_itself())
return 0;
return 1;
}
int eat_itself(){
int i , j;
for(i = 0 ; i < snake_length ; i ++){
for( j = i + 1 ; j < snake_length ; j ++)
if(snake_X[i] == snake_X[j] && snake_Y[i] == snake_Y[j])
return 1;
}
return 0;
}
void snake_move(int dy , int dx){
if((snake_X[snake_length - 1] + dx )== snake_X[snake_length - 2]
&& (snake_Y[snake_length - 1] + dy) == snake_Y[snake_length - 2])
return;
int i;
for(i = 0 ; i < snake_length - 1 ; i ++){
snake_X[i] = snake_X[i + 1];
snake_Y[i] = snake_Y[i + 1];
}
snake_X[snake_length - 1] += dx;
snake_Y[snake_length - 1] += dy;
return;
}
void output(){
system("cls");
int x , y , i , j;
for( x = 0 ; x < 12 ; x ++ ){
for( y = 0 ; y < 12 ; y ++){
if( x == 0 || x == 11 || y == 11 || y == 0)
map[x][y] = '*';
else
map[x][y] = ' ';
}
}
for( i = 0 ; i < snake_length - 1 ; i ++ ){
map[snake_Y[i]][snake_X[i]] = 'X';
map[snake_Y[snake_length - 1]][snake_X[snake_length - 1]] = 'H';
}
for( i = 0 ; i < 12 ; i ++ ){
for( j = 0 ; j < 12 ; j ++ ){
printf("%c",map[i][j]);
}
printf("\n");
}
}
void gameover(){
system("cls");
printf("END!");
return;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。