一 引言
数组实现的贪吃蛇代码比较复杂,换成链表逻辑更加清晰。每一个节点对应蛇的一节。
二 基本原理
对于贪吃蛇怎么在屏幕上移动,一种方法是移动蛇头,坐标依次传递,还有一种添头去尾。本文采用链表实现,移动采用添头去尾。
三 代码
/**************************************************************************
**文件:snake.c
**功能:贪吃蛇
**编写者:Nightmare
**编写日期:2017-01-28
**简要说明:链表实现;可加速
**修改者:
**修改日期:
**注:在VC 6.0下编写完成
**************************************************************************/
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#define FrameX 4 //游戏地图位置
#define FrameY 4
#define FrameHeight 20
#define FrameWidth 40
int i;
char ch=72; //初始移动方向
int len=3; //初始蛇长
int speed=200; //初始速度
COORD cor; //临时坐标变量
int grow=0; //蛇是否变长
typedef struct Snake{ //蛇的结构体
COORD cor;
struct Snake* next;
}snake, *psnake;
psnake head;
**文件:snake.c
**功能:贪吃蛇
**编写者:Nightmare
**编写日期:2017-01-28
**简要说明:链表实现;可加速
**修改者:
**修改日期:
**注:在VC 6.0下编写完成
**************************************************************************/
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#define FrameX 4 //游戏地图位置
#define FrameY 4
#define FrameHeight 20
#define FrameWidth 40
int i;
char ch=72; //初始移动方向
int len=3; //初始蛇长
int speed=200; //初始速度
COORD cor; //临时坐标变量
int grow=0; //蛇是否变长
typedef struct Snake{ //蛇的结构体
COORD cor;
struct Snake* next;
}snake, *psnake;
psnake head;