推箱子游戏课程设计精选

目 录

Ⅰ 摘要

Ⅱ 前言

Ⅲ 功能描述

Ⅳ 配置要求

Ⅴ 总体设计

一、功能模块设计

二、数据结构设计

三、函数功能描述

四、代码实现

Ⅵ 参考文献

Ⅰ 摘 要

推箱子游戏是一款很有趣味的游戏,其开发过程有一定的技巧和方法,其中涉及到软中断、二维数组、键盘操作以及图形化函数等方面的知识。本游戏的开发者需要基本掌握显示器中断寄存器的设置。二维数组及结构体的定义、键盘上键值的获取、图形方式下光标的显示各定位,以及部分图形函数的使用。

Ⅱ 前 言

推箱子游戏是目前比较流行的游戏之一,很多操作系统或者流行软件都会带有这种游戏。它既能锻炼思维的严密性,又有很多乐趣。我个人也比较喜欢玩这个游戏,因此,我就借这个机会将这个推箱子游戏用C语言实现了出来,当然,我也借鉴了前人的一些技巧经验。由于时间仓促和本人水平有限,此游戏的制作显得有些粗糙,希望老师能够谅解,我以后将会再接再厉。

Ⅲ 功能描述

本游戏一共4关,由易到难,每一关都有初化、按键处理、重置及退出功能。

(1)初始化包括屏幕初始化和每一关卡的初始化,屏幕被初始化宽80像素,高25像素。

(2)按键处理包括移动小人和移动箱子,通过移动上下左右键来控制小人的移动,从而推动箱子,以把箱子推到指定的目的地为过关。

(3)每一关都可以重置,按空格键可以重置当前关。

(4)按Esc键可以在任何时候退出游戏。

Ⅳ 配置要求

(1)硬件配置

CPU:≥Pentium III 600

内存:≥64MB

硬盘剩余空间:≥128MB

(2)软件环境

Turbo C 2.0及其以上版本

Ⅴ 总体设计

功能模块设计

1、系统模块图

本程序包括5个模块,分别是初始化模块、画图模块、移动箱子模块、移动小人模块和功能控制模块,如图(一)所示。各个模块的功能描述如下:

(1)初始化模块。

该模块包括屏幕初始化和游戏第一关的初始化。屏幕初始化用于输出欢迎信息和操作提示,游戏每一关的初始化是构建每一关的关卡。

(2)画图模块。

该模块主要是被其它模块调用,用于画墙、在空地画箱子、在目的地画箱子、画小人和画目的地。

(3)移动箱子模块。

该模块用于移动箱子,包括目的地之间、空地之间和目的地与空地之间的箱子移动。

(4)移动小人模块。

该模块用于控制小人移动,从而推动箱子到目的地。

(5)功能控制模块。

该模块是几个功能函数的集合,包括屏幕输出功能、指定位置状态判断功能和关卡重置功能。

图(一) 系统模块图

2、任务执行流程图

游戏从第一关开始,按上下左右方向键控制小人移动来推动箱子,可以在游戏中的任何时候按Esc键退出。如果游戏无成功希望,可以按空格键回到当前任务的开始状态;如果成功完成当前关,则进入下一关,如果当前关是最后一关,则显示通关信息,提示游戏结束。图(二)显示了任务执行的流程。

图(二) 任务执行流程图

3、小人移动流程图

小人移动的方向有4个,move()函数(处理小人移动的函数)对这4个方向移动的处理都一致,只是调用函数时的参数有所不同。首先判断小人移动的方向,然后根据小人所处世的当前状态、下一步状态或者下下一步状态进行适当的处理。处理过程如图(三)所示。

是否

否是

是否否

否是是

是否否

否是是

图(三) 小人移动流程图

续图(三) 小人移动流程图

二、数据结构设计

1、设置全局变量

定义二维数组char status[20][20],用于记录屏幕一各点的状态。其中,“0”表示什么都没有,“b”表示箱子,“w”表示目的地,“i”表示箱子在目的地。首先将屏幕20*20范围内的状态初始化为0,然后根据具体情况,在画箱子时,将箱子所在点的状态改为“b”;在画墙壁时,将墙壁所在点的状态改为“w”;在画目的地时,将目的地所在点的状态改为“m”;当箱子被推到目的地时,箱子所在点的状态改为“i”,如果每一关中所有目的地的状态都为“i”,则说明该关已完成。

定义全局变量,char far *printScreen=(char far*)0xB8000000,用于在屏幕上输出字符。彩色显示器的字符缓冲区首地址为0xB8000000,每一个字符占2个字节(第一个字节为ASCII值,第二个字节为颜色值),字符模式下屏幕宽80像素,高25像素,一屏可以写80*25个字符。

2、定义结构体

typedef

推箱子android课程设计,推箱子游戏课程设计精选.doc相关推荐

  1. c语言剪刀石头布课程设计,C++剪刀石头布游戏课程设计方案.doc

    C剪刀石头布游戏课程设计方案 计算机科学与技术学院 <C++高级语言程序设计课程设计>报告 (2016/2017学年 第一学期) 学生姓名: 常满琪 学生班级: 软件工程152601 学生 ...

  2. android教育游戏设计方案,基于Android平台的儿童教育游戏的设计与开发

    摘要: 在通讯技术和信息技术的不断发展时代,智能手机(平板电脑)等移动终端的普及和功能的不断强大,基于移动终端的移动学习的理念渐渐深入人心且被广大的学习者所青睐,逐渐成为一种新的学习方式.学习者在面对 ...

  3. c语言射击类小游戏任务书,(c语言课程设计报告小游戏“石头剪子布”.doc

    (c语言课程设计报告小游戏"石头剪子布" <C语言课程设计>报告 题目:石头剪子布 班级: 学号: 姓名: 指导教师: 成绩: 目 录: 一.选题背景- 3 - 二.设 ...

  4. 猜数字小c语言游戏课程任务书,猜数字游戏课程设计.doc

    猜数字游戏课程设计.doc 1(c/c程序设计课程设计)设 计 说 明 书猜数字游戏的设计与实现学 生 姓 名学 号班 级成 绩指 导 教 师计算机科学与技术系2010 年 7 月 9 日C/C程序设 ...

  5. 现代软件工程课程设计——“黄金点游戏”课程报告一

    课程报告目录 黄金点游戏 系统需求分析 项目背景 任务概述与功能划分 需求分配 本次功能实现 GDEYE-002 用户信息确认 GDEYE-003 游戏开始 GDEYE-004 输入数字 GDEYE- ...

  6. 教师计算机课游戏教学设计,有趣的游戏教学设计及课堂实录

    共1课时 有趣的游戏 小学语文       人教2001课标版 1新设计 <有趣的游戏>是人教版语文第一册第三单元语文园地的一堂口语交际课.口语交际是训练听话.说话能力的一种形式,是一种双 ...

  7. uniapp push 推送 个推 安卓Android添加Google 推送服务 FCM 离线推送 Dcloud

    项目甲方在国外需要用到google推送服务,看了文档中说明,如果安卓要实现离线推送,需要通过厂商来解决 在google开发者后台添加项目,获取Legancy server key 获取google-s ...

  8. [原创]雷电小游戏app设计

    [原创]雷电小游戏app设计 相信雷电是很多人的童年回忆,本文就尝试用android studio做一个简单的雷电小游戏. 游戏界面如下: 项目结构如下: 设计思路: 游戏机制设计 游戏目前的场景比较 ...

  9. 游戏艺术设计学什么,就业前景如何

    回答游戏艺术设计主要学习游戏角色设计.游戏场景设计.游戏三维装备建模.游戏三维建筑建模.游戏三维人物建模.游戏三维场景制作.次时代游戏模型制作.游戏动作设计等课程,能利用各种图形图像软件进行游戏角色. ...

  10. 什么是游戏美术设计?3D游戏建模常用的软件有哪些

    网络游戏设计师.游戏美术设计师,这些听起来很新鲜,感觉起来还有些"不务正业"的职业. 什么是游戏美术设计 游戏美术设计师是指负责网络游戏页面设计制作和网页的美术创意设计等人员. 常 ...

最新文章

  1. python tkinter设置窗口大小_Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例...
  2. Akka 系列(五):Java 和 Scala 中的 Future
  3. swagger 返回json字符串_Net Core微服务入门全纪录(完结)——Ocelot与Swagger
  4. libsvm 数据预处理 模块化程序
  5. 随机森林特征重要性计算_R语言随机森林模型中具有相关特征的变量重要性
  6. NIOS2随笔——BMP解码与VGA显示
  7. Mac电脑下配置maven环境变量
  8. javascript释放对象_一文深入理解JavaScript如何运作
  9. 微信小程序发送模板消息通知
  10. 计算机系统的今后应用,计算机系统毕业论文范本(2)
  11. Raspberry Pi Zero W 安装配置
  12. Just Do It!
  13. 我把电脑系统升级成Windows11,体验了一下还是换回Windows10
  14. 阿里云-邮件推送 配置 购买域名 配置域名
  15. mysql 重做日志 镜像_mysql重做日志 - osc_vr7hvjd2的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. java 匿名接口_匿名内部类实现接口
  17. 服务器主板cpld芯片作用,CPLD的工作原理是什么呢?
  18. 小班中班,随机10以内加法练习题,A4纸可直接打印
  19. 常用软件最新版本注册码
  20. 想要将PDF文件进行编辑该使用什么PDF编辑器

热门文章

  1. 黑莓手机时代落幕;阿里巴巴为 Linux 内核调度器提出新概念;清理 Linux 内核“依赖地狱” | 开源日报
  2. 【转】定员108的车厢号码分布图
  3. c语言报错 error:1d returned 1 exit status 。(原因:把main写成了mian)
  4. 【图像处理】像素坐标系、像平面坐标系、相机坐标系、世界坐标系、内参矩阵、外参矩阵
  5. kibana笔记 -- KQL
  6. 计算机应用基础精品课程申报表,计算机应用基础精品课程申报书.doc
  7. Ubuntu 查看电脑配置
  8. 愿编程不再乱码(含Qt)-根因深究
  9. 用js写随机抽奖代码
  10. 推荐系统实践(项亮)读书笔记