admin管理员组

文章数量:1637218

一、贪吃蛇小游戏简介:

用上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,也不能咬到自己的身体,等到了一定的分数,就能过关。

二、函数框架

三、数据结构

typedef struct Snake

{

size_t x; //行

size_t y; //列

struct Snake* next;

}Snake, *pSnake;

定义蛇的结构体,利用单链表来表示蛇,每个结点为蛇身体的一部分。

四、代码实现(vs2010  c语言)

1.Snake.h

#ifndef __SNAKE_H__

#define __SNAKE_H__

#include

#include

#include

#include

#include

#include

//标识地图大小

#define ROW_MAP 10 //地图的行

#define COL_MAP 20 //地图的列

#define SUCCESS_SCORE 10//通关分数

enum Direction //蛇行走的方向

{

R, //右

L, //左

U, //上

D //下

}Direction;

enum State

{

ERROR_SELF, //咬到自己

ERROR_WALL, //撞到墙

NORMAL, //正常状态

SUCCESS //通关

}State;

typedef struct Snake

{

size_t x; //行

size_t y; //列

struct Snake* next;

}Snake, *pSnake;

void StartGame();

void RunGame();

void EndGame();

#endif

2.Snake.c

#include "Snake.h"

pSnake head = NULL; //定义蛇头指针

pSnake Food = NULL; //定义食物指针

int sleeptime = 500;//间隔时间,用来控制速度

int Score = 0; //总分

int everyScore = 1; //每步得分

//定义游戏中用到的符号

const char food = '#';

const char snake = '*';

void Pos(int x, int y) //控制输出光标

{

COORD pos; //pos为结构体

pos.X = x; //控制列

pos.Y = y; //控制行

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);//读取标准输出句柄来控制光标为pos

}

void Face()

{

system("color 0C");

printf("*******************************************************\n");

printf("* Welcome to Snake Game! *\n");

printf("* *\n");

printf("* ->开始游戏请按 enter键 *\n");

printf("* ->退出游戏请按 esc键 *\n");

printf("*

本文标签: 语言小游戏贪吃蛇代码经典小游戏