C语言贪吃蛇游戏代码实现
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #define ROW 8 #define COL 8 #define LEN 3
int i,j; int food=1;
int snake[LEN][2];
int map[ROW][COL];//设置8*8的棋盘 void Init_map()//初始化棋盘 { for(i=0;i<ROW;i++) for(j=0;j<COL;j++) map[i][j]=0; for(i=0;i<LEN;i++) map[snake[i][0]][snake[i][1]]=1; map[3][3]=2;//设置食物 } void Init_snake()//初始化蛇 { srand((unsigned)time(NULL)); snake[0][0]=rand()%ROW;//蛇头 snake[0][1]=rand()%COL; for(i=1;i<LEN;i++) { snake[i][0]=snake[i-1][0]; snake[i][1]=snake[i-1][1]-1; } } void Print_map()//打印棋盘 { system("cls"); printf("\n"); for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { if(map[i][j]==0) printf(" ■"); else if(map[i][j]==1) printf(" ★"); else printf(" ◆"); } printf("\n"); } printf("\n"); } void Move_snake()//蛇移动 { int temp_x,temp_y; for(i=LEN-1;i>0;i--) { snake[i][0]=snake[i-1][0]; snake[i][1]=snake[i-1][1]; } temp_x=snake[0][0]; temp_y=snake[0][1]; switch(_getch()) { case 'w': snake[0][0]--; break; case 's': snake[0][0]++; break; case 'a': snake[0][1]--; break; case 'd': snake[0][1]++; break; default : snake[0][0]=temp_x; snake[0][1]=temp_y; break; } if(snake[0][0]<0||snake[0][0]>=ROW||snake[0][1]<0||snake[0][1]>=COL) snake[0][0]=temp_x,snake[0][1]=temp_y; else if(map[snake[0][0]][snake[0][1]]==1) snake[0][0]=temp_x,snake[0][1]=temp_y; else if(map[snake[0][0]][snake[0][1]]==2) { food++; map[snake[0][0]][snake[0][1]]=1; map[3][3]=2; snake[LEN][0]=temp_x; snake[LEN][1]=temp_y; LEN++; } else map[snake[0][0]][snake[0][1]]=1; map[temp_x][temp_y]=0; }
int main() { Init_snake(); Init_map(); Print_map(); printf("按ESC退出游戏\n"); while(1) { Move_snake(); Print_map(); if(_getch()==27) break; } return 0;
原文地址: https://www.cveoy.top/t/topic/lgJj 著作权归作者所有。请勿转载和采集!