课程设计报告
课程名称: 《程序设计基础》
课程设计题目: 吃豆人
系:
信息与机电工程系
业: 计算机科学与技术
级: 2017 级
号:
名:
专
年
学
姓
指导教师:
职
称: 副教授
2018~2019 学年第 1 学期
课程设计结果评定
序号
评定标准
分值 评定结果
1 课程设计报告符合标准,有条理,重点突出
20%
2 程序实现设计方案,软件可靠性好
40%
3 课程设计有自己的收获、体会、感受,等等
10%
4 能够按照要求演示课程设计
5 有一定的创新性,难易程度
20%
10%
合计
成绩:
指导教师签字:
任务下达日期:2017 年 11 月 24 日
评定日期:
目
录
1.课程设计的目的 ............................................................................................................................ 1
2.课程设计的要求 ............................................................................................................................ 1
3.课程设计报告内容 ........................................................................................................................ 1
3.1 需求分析 .............................................................................................................................. 1
3.2 概要设计 .............................................................................................................................. 3
3.3 详细设计 .............................................................................................................................. 4
3.4 程序调试分析 ....................................................................................错误!未定义书签。
3.5 使用说明 ............................................................................................................................ 11
3.6 设计总结 ............................................................................................................................ 11
参考文献 .................................................................................................................................. 12
附录:源程序 .......................................................................................................................... 12
吃豆人
1.课程设计的目的
程序设计语言课程设计的目的是要通过一次集中的强化训练,使学生能及时
巩固已学的知识,补充未学的但又必要的内容。通过课程设计学生可以加深对程
序设计基础中基础理论和基本知识的理解,掌握结构化程序设计方法,促进理论
与实践的结合,进一步提高程序设计的能力。
2.课程设计的要求
1) 具备初步的独立分析和解决问题的能力;
2) 初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能;
3) 提高综合运用所学的理论知识和方法的能力;
4) 训练用系统的观点和软件开发一般规范进行软件开发,培养科学的工作
方法和作风;
5) 设计的题目要求达到一定工作量,并具有一定的深度和难度;
6) 编写出课程设计报告。
3.课程设计报告内容
3.1 需求分析
1.人物的移动:运用光标移动(遇到墙不能穿越需绕道而行)。
2.怪物的移动:①红色怪物(开局出现直接对准玩家);
②紫色怪物(玩家走 8 步后,目标对准玩家前方两格位置);
③湖蓝色怪物(玩家吃地 30 个豆子后出来,目标对准玩家后方两格位置);
④绿色怪物 (玩家吃地 50 个豆子后出来,目标对准玩家后方两格位置)。
1
【怪物遇到墙不能穿越需绕道而行】
3.一个友好的交互界面(游戏界面整洁色彩丰富,游戏提示人性化)。
4.游戏开始前的加载界面。
5.三种游戏结束方式:①豆子全部吃光 ②不想玩了强制结束
③被怪物吃 15 次(在第 8 次被吃时会有提示)
6.此游戏有个无敌模式:该模式下人物不会被吃(在第 12 次被吃时会有提
示开无敌模式的方式)
7.游戏的暂停与继续。
8.人物与怪物移动速度可调整。
吃豆人
界
面
地
图
加
载
界
面
运
行
界
面
结
束
界
面
移
动
操
作
人
物
移
动
速
度
调
节
游戏暂
停与结
束
怪
物
移
动
无
敌
状
态
怪
①
怪
②
怪
③
怪
④
图 3-1 系统功能模块图
2
3.2 概要设计
整体功能:通过 wasd/8456 依次为上下左右来控制人物行走,避开怪物通过
吃豆获得分数。按下 t 键可实现暂停与继续,按下 e 键可强制结束游戏。按下 g
可实现无敌模式,(在被怪物吃掉 12 次后会有提示)。游戏界面中有操作方式、
分数、被吃次数、被吃多少次游戏结束。
图 3-2 整体流程图
各模块关系:主函数 main()调用以下函数:
①begin()函数
②reset()函数
③shuru()函数
④move1()函数
⑤move2()函数;
3
color()函数在以上函数均有调用,gotoxy()函数贯穿程序整体。
3.3 详细设计
1.reset()函数:构建地图、人物,界面右侧的部分游戏提示,并对一些
关键变量进行赋值
for (int k=0; k<=n; k++)
int i=k/27,j=k%27;
gotoxy(i,j)
if (ditu[i][j]==1)
else if
color(7); printf("·");
color(1);
(!ditu[i][j])
printf("■");
图 3-3 流程图
图 3-4 运行效果图
4
代码及分析:
void reset(){
system("cls");color(11);
//颜色函数的调用
gotoxy(0,29); printf("
★ 吃豆人 ★");
color(15);
gotoxy(2,29); printf("控制方向:w/s/a/d");
gotoxy(4,29); printf("你的速度:z 减速/x 加速");
gotoxy(6,29); printf("怪物速度:c 减速/v 加速");
x=22; y=13;
//人物初始位置
x1=x2=x3=x4=14; y1=11; y2=12; y3=14; y4=15;
//怪物初始位置
now=607; now1=389; now2=390; now3=392; now4=393;
for (int k=0; k<=n; k++){
int i=k/27,j=k%27;
gotoxy(i,j);
if (ditu[i][j]==1){color(7); printf("·");}
else if (!ditu[i][j]){color(1); printf("■");}
}
}
gotoxy(0,0);
//将光标移动到屏幕左上角
gotoxy(x,y); color(14); printf("●");
//人物(淡黄色)
gotoxy(x1,y1); color(4); printf("◆");
//红色怪物
gotoxy(x2,y2); color(5); printf("◆");
//紫色怪物
gotoxy(x3,y3); color(3); printf("◆");
//湖蓝色怪物
gotoxy(x4,y4); color(2); printf("◆");
//绿色怪物
fangx=0; T1=T2=guaitimer=0; t1=100; t2=90;stopped=0; fenshu=0; duozi=237;
g1=g2=g3=g4=0; wudi=0;}
5