北京工业大学耿丹学院
c语言设计课程报告
课程设计名称:高级语言程序设计
专业班级:计算机科学与技术1
姓名:吴双
学号:150809201
2016年4月24日
一设计题目
………………………………………………………………
二总体设计
………………………………………………………………
三 程序分析和主要知识点应用
………………………………………………………………
四程序流程和原理分析
………………………………………………………………
五自己修改后的程序同原程序的改进
………………………………………………………………
六设计体会
………………………………………………………………
(一)设计题目
对网上获得的贪吃蛇游戏代码进行分析和理解再修改。以此逐步掌握c语言的实际应用。
贪吃蛇是我们小时候都玩过的游戏,这次就来试着了解它。
(二)总体设计
大概就是建立背景,建立食物和小蛇,通过玩家指令操控小蛇,最后输出game over时的结果。
(三)程序分析和主要知识应用
#include
#include
#include
#include
#include
const int H = 8; //地图的高
const int L = 16; //地图的长
const是一个C语言(ANSI C)的关键字,它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。另外CONST在其他编程语言中也有出现,如A++、PHP5、B#.net、HC08 C、C#。
这样地图就不会改变了。
char GameMap[H][L]; //游戏地图
二维数组定义地图。
int key; //按键保存
int sum = 1, over = 0; //蛇的长度,游戏结束(自吃或碰墙)
int dx[4] = {0, 0, -1, 1}; //左、右、上、下的方向
运用数组定义方向。
int dy[4] = {-1, 1, 0, 0};
struct Snake //蛇的每个节点的数据类型
{
int x, y; //左边位置
int now; //保存当前节点的方向, 0,1,2,3分别为左右上下
}Snake[H*L];
建立各个部分的图标。
const char Shead = '@'; //蛇头
const char Sbody = '#'; //蛇身
const char Sfood = '*'; //食物
const char Snode = '.'; //'.'在地图上标示为空
void Initial(); //地图的初始化
void Create_Food(); //在地图上随机产生食物
void Show(); //刷新显示地图
void Button(); //取出按键,并判断方向
void Move(); //蛇的移动
void Check_Border(); //检查蛇头是否越界
void Check_Head(int x, int y); //检查蛇头移动后的位置情况
int main()
{
Initial();
Show();
return 0;
}
void Initial() //地图的初始化
{
int i, j;
int hx, hy;
system("title 贪吃蛇"); //控制台的标题
memset(GameMap, '.', sizeof(GameMap)); //初始化地图全部为空'.'
system("cls");
srand(time(0)); //随机种子