打印

毕业论文“摆一摆”——纪念参与21IC第一期最佳版主评选活

[复制链接]
7682|60
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
古道热肠|  楼主 | 2007-11-7 12:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    为了活跃本次活动的气氛,也让大家更好的认识我,特翻箱倒柜,找出当年的原创作品,与大家共赏。
  根据本人当年大学毕业设计文档稍作改编而成。
  用C语言对原程序进行了移植,最大的感受就是C语言比QB方便多了,有个毫秒级的Delay函数,再也不必是延时处理而犯难。C语言最初是用BC31的DOS环境完成,其最大的不便是加汉字注释无法在调试时显示,后迁移到BC40的WindowS平台,编辑编译都很方便,只是不能调试DOS程序,到了此时,本人因为长期从事单片机研发,也习惯了不联调,只要看看结果,就能找到原因的思维模式,所以也很方便修改。
  最近弄得一NOKIA5510手机屏,遂决定将程序移植到单片机平台,采用了分层驱动的方式,首先针对84*48点阵的手机屏进行驱动,构造出写点函数和读点函数,再做文本API中间件,最后移植应用层代码,最大的体会是单片机RAM空间受限,凡事要节简过日子。
  完整的单片机程序见后续发贴。

相关帖子

沙发
古道热肠|  楼主 | 2007-11-7 12:04 | 只看该作者

论文提纲

毕业论文提纲

一、    论文题目
贪吃蛇游戏(The greedy snake)

二、    简介
贪吃蛇游戏是一个经典程序,在八十年代初的苹果机上就十分流行。随着科技的发展,被移植到各种游戏机、PDA、和掌上电子设备.例如诺基亚手机(5110、3210、3330)就含有此游戏。我编制的游戏内容如下:在屏幕上设置一个窗口,在窗口内设置一些障碍,由玩家通过上下左右键控制蛇的行走方向。蛇吃到屏幕上出现的数字后就会变长,越长越难控制。如果吃完1到9共9个数字,则进入下一关,设置新的游戏场景。一旦碰撞到障碍物或蛇自已的身驱,蛇就死了,即游戏结束。
三、    开发背景
    贪吃蛇游戏虽然是一款游戏软件,但它很具有代表性。通过对它的开发,将会对面向过程的结构化程序设计方法有一个全面掌握。把我们的专业课“软件工程”和“数据结构”所学的理论知识与实际结合起来。要解决一个现实问题“贪吃蛇”游戏,必须建立几个关键的数据结构,再围绕这几个数据结构建立核心算法。当然还必须用软件工程中学到的程序设计方法来指导设计程序,才能保证软件的开发质量和进度。游戏中还用到少量的计算机动画知识和电脑音乐,对我们所学知识也是一个补充。
四、    初步规划
(1)    界面的选择,游戏中使用的窗口、蛇、障碍物可以用图形方式实现,也可用文本方式。因图形开发太复杂,故选用文本字符方式来实现。将计算机屏幕设置其工作在25行,80列的模式0(screen 0)方式,用特殊字符“▊”来模拟蛇和障碍物,并用不同颜色来显示,以便于区分。游戏时,屏幕上随机可用坐标上依次出现数字1到9待蛇吃完这9个数字后进入下一关,下一关障碍物有所增多,来增加操作难度。
(2)    蛇的数据结构,将蛇定义为结构类型,包括蛇的头部位置、长度、横坐标、纵坐标、性命数、得分、颜色、等。
屏幕的数据结构,初步定义为数组,数组元素为行地址、列地址、颜色等。数量为25×80个
(3)    关键算法的介绍:
3.1 蛇的移动:当程序运行时,屏幕上好像有一条蛇在不停的走动,实际上每次变化的只是头和尾,每次重画一个蛇头,擦除蛇尾的内容就能实现动感效果。故设置一大数组,元素为行地址、列地址,数量为蛇的最大长度再加2。将以上数组作为队列使用,循环执行如下动作:将蛇头坐标入队,调整蛇身长度,找到蛇尾,按蛇尾提供的坐标删除屏幕上的内容,再按蛇头坐标在屏幕上画出蛇头的符号。
3.2蛇的变长处理:当蛇吃到屏幕上显示的数字时,只需根据数字来调整蛇身的长度,当蛇移动时会自动加长身体。调整游戏得分,并将数字加1,如果数字是最后的数字9则进入下一关。
3.3蛇碰撞障碍物的处理:将屏幕坐标数组中有障碍物的坐标的颜色设置为浅红色,无障碍物的坐标点颜色为蓝色,蛇头跨入的坐标点颜色是浅红色则蛇必死掉,将蛇标记为已死了,并将蛇的性命数减1,系统得知蛇已死后退出当前循环,重新开始游戏。

五、    其它事项
开发语言的选择,用软件工程来指导开发的程序都具有较强的移植性,结构化程序设计语言如pascal ; c; c++; qbasic; 汇编等都可作为开发工具,由于本人对qbasic 比较熟悉,故选用它作为开发工具较为适宜。

开发进度:设计阶段 一个月
      编码:半个月
测试:一个月



附图:第一关场景及界面示意图。
    













附图:游戏第四关场景图

    











学生个人情况:
姓名:古道热肠 
职业:21IC侃单片机斑竹
邮箱:xg_2004_sy@126.com
QQ呢称:“古道热肠”
MSN: I_Love_MCU@hotmail.com



相关链接:https://bbs.21ic.com/upfiles/img/200711/200711712219219.pdf

使用特权

评论回复
板凳
古道热肠|  楼主 | 2007-11-7 12:14 | 只看该作者

奉上游戏测试图片

在最新的A61本本上测试捕屏制作而成。

使用特权

评论回复
地板
xwj| | 2007-11-7 12:14 | 只看该作者

呵呵,热肠兄和我的想法差不多,

我也建议别人论文就做个游戏机

使用特权

评论回复
5
古道热肠|  楼主 | 2007-11-7 12:17 | 只看该作者

再来一幅好看的

小蛇撞墙,光荣牺牲,初追认为烈士。

使用特权

评论回复
6
古道热肠|  楼主 | 2007-11-7 12:22 | 只看该作者

上传在QB7.0下编译成的贪吃蛇可执行文件

古道热肠的贪吃蛇,解压缩后直接执行。
相关链接:https://bbs.21ic.com/upfiles/img/200711/2007117122155755.rar

使用特权

评论回复
7
古道热肠|  楼主 | 2007-11-7 12:26 | 只看该作者

上传用QB语言写的全部源代码

使用特权

评论回复
8
古道热肠|  楼主 | 2007-11-7 12:29 | 只看该作者

送上手机屏贪吃蛇的效果图

      详细的源代码及图片见后续发贴,NOKIA5110(兼容NOKIA3310)手机屏的驱动是全网首发的哟,喜欢玩的朋友可不要错过的!gdrc

使用特权

评论回复
9
韩秋婷| | 2007-11-7 12:30 | 只看该作者

你用qb,有一些年头了,起码在12年前吧

使用特权

评论回复
10
古道热肠|  楼主 | 2007-11-7 12:38 | 只看该作者

欢迎大家也拿出自己的用心之作与大家共赏

  两个占位内容将在稍后整理完成后发表,欢迎大家去其它版块招唤好友过来看好戏
用C语言PC机平台改编的程序可读性很高,也便于与大家交流。
用C51语言51单片机平台改编的程序更是贴近生活,更富趣味和挑战性。
////////////////////////////////////
//
//             办法总比困难多
//
///////////////////////////////////////
//

使用特权

评论回复
11
HWM| | 2007-11-7 12:47 | 只看该作者

好象QB内有一个类似的范例吧,当初还拿来玩过。

使用特权

评论回复
12
xwj| | 2007-11-7 12:50 | 只看该作者

呵呵,也来看看我写的俄罗斯方块游戏吧,

使用特权

评论回复
13
huangqi412| | 2007-11-7 13:30 | 只看该作者

呵呵,顶啊,,

使用特权

评论回复
14
古道热肠|  楼主 | 2007-11-7 13:38 | 只看该作者

上传一个本人制作的俄罗斯方块游戏运行效果图

   老早就生成了,一直未发表,借此机会与大家见面。

使用特权

评论回复
15
程序匠人| | 2007-11-7 14:19 | 只看该作者

好啊,用实际行动来拉票。比什么都好

使用特权

评论回复
16
hqgboy| | 2007-11-7 15:38 | 只看该作者

ding....

使用特权

评论回复
17
gyt| | 2007-11-8 10:04 | 只看该作者

不错不错

使用特权

评论回复
18
starlite_jason| | 2007-11-8 10:56 | 只看该作者

看来大家都喜欢写小游戏啊

我刚毕业的时候没事做就是写这些小游戏,那时候还是在DOS下,想起来也挺怀念的

使用特权

评论回复
19
xwj| | 2007-11-8 11:01 | 只看该作者

是啊,没事写些小游戏,可以更好的熟悉编程,让自己的程

更有条理啊



--而且,再过几年,回头看看当年的程序,发现竟然是那么的幼稚、不规范,这就是进步的象征啊:-)

使用特权

评论回复
20
alice84| | 2007-11-8 11:12 | 只看该作者

好玩

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

284

主题

6411

帖子

16

粉丝