贪吃蛇游戏程序设计
一、课程设计任务
贪吃蛇小游戏程序设计
二、设计要求
通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。
(1).收集资料,分析课题,分解问题,形成总体设计思路;
(2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;
(3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;
(4).完成课程设计报告,并进行答辩
三、需求分析
3.1、程序功能
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
3.2、设计思想
3.3、流程图
开始 |
初始化界面和蛇身 |
放置食物 |
蛇开始运动 |
蛇吃到食? |
蛇长大 |
蛇死亡? |
继续? |
退出界面 |
N
|
N |
Y |
N |
Y
|
游戏者按键选择
|
Y |
四、设计的具体实现
(1)函数定义
函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用
#define N 200
#define M 200
#include"graphics.h"
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<iostream.h>
#include<dos.h>
#include<conio.h>
#include <windows.h>
#define LEFT 97//A
#define RIGHT 100//D
#define DOWN 115//S
#define UP 119//W
#define Esc 0x011b
int i,key;
int score=0;
int gamespeed=250;//游戏速度可根据实际情况自行调整
struct Food
{
int x;//食物的横坐标
int y;//食物的纵坐标
int yes;//判断是否要出现食物的变量
}food;//食物的结构体
struct Snake
{
int x[M];
int y[M];
int node;//蛇的节数
int direction;//蛇的移动方向
int life;//蛇的生命,0表示活着,1表示死亡
}snake;
void Init();//图形驱动
void Close();//图形结束
void DrawK();//开始画面
void GamePlay();//玩游戏的具体过程
void GameOver();//游戏结束
void PrScore();//输出成绩
(2)主函数main( )
主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序
{
Init();//图形驱动
DrawK();//开始画面
GamePlay();//玩游戏的具体过程
Close();//图形结束
}
void Init()//图形驱动
{
int gd=DETECT,gm;
initgraph(&gd,&gm," ");/*此处为turboc的路径,读者可以根据自己的电脑而改*/
cleardevice();
}
(3) 画界面函数DrawK( )
主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度均的矩形方块,表示围墙,为了醒目,设置为白色。