推箱子(小康之路)数据结构课程设计实验总结

最近几天做了数据结构的课程设计,一路磕磕碰碰,最终还是解决了各种问题。我做了一个推箱子的小游戏,用了大概600多行的代码。这个小游戏采用的是Visual Studio2015做的开始,基于win32的C++语言。
大一的时候只学过C语言,老师说的是不用怕,C++和C语言差不多的,我信了他的话,然后打开课程设计的书,粗略的看了一下,我靠,什么玩意,我怎么一个也看不懂,我人傻了。这玩意在这么短的几天真的能做成一个课程设计来,我用手摸了摸下巴,眉头紧皱,这玩意看起来不是那么简单啊,还是得一步一步的慢慢看起来才懂啊。所以第一天一早上,我都在看那本课程设计的书,同时在网上找了一些案例来看,才摸索出了一些思路,写了一个小案例玩了玩。
我摸懂了一些和C语言不同的套路。Win32中,main函数叫做WinMain函数,很多的界面和注册类都写在这里面,同时还有一个回调函数叫做WndProc,用于处理所有的消息事件,然后将它分发出去给各个函数,在我的小康之路之推箱子这个游戏中,最常用到的算是WM_COMMAND,WM_KEYDOWN,WM_TIMERER,WM_PAINT这几个事件了,可以说是我的整个游戏,就是监听了这几个事件,才实现了我的游戏逻辑。得到推箱子的游戏核心源码之后,我第一想法就是先把选关功能做出来,但是之前也没有做过呀,我想到了用对话快,第一次用这个,我也不知道怎么画出一个对话框,索性我就把关于那个对话框复制过来,然后在上面复制了44个按钮,通过这样的方式来实现选关功能,等到我写回调函数的时候,我人又傻了,难道我得写40多个按钮的监听判断吗?这可不是程序员的作风,我于是又在网上寻找了解决方案,找了半天,事实证明,没有,那还是老老实实的写吧,虽然这样麻烦了一点,但是总归功能实现了,这就很棒,舒服了。然后我想到的第二个功能就是给游戏加上音效,我先在书上找了一下,书上介绍了一个叫做PlaySound的函数,使用这个函数就可以实现音乐的播放,我赶紧把把写上去,卧槽,结果一大堆错误就来了,嗯?什么情况?赶紧上网搜索了一番,啊哈,原来是还需要引入库文件mmsystem.h和winmm.lab,写上之后,错误是没有了,但是播放的音效不是我选择的音效,刚开始我还没注意,后来我想,这个是微软公司开发的,会不会是因为需要把音乐的格式转换成wav格式才可以,然后我把我的音乐格式转换了一下,再次运行软件,听到那个熟悉的音效,我微微一笑了,一个功能又实现了。接下来,我又想,再加一个什么功能好呢,我想到了,再加一个音效设置的功能,我想到,既然是音效设置,那就肯定需要长期保存,这就肯定需要用配置文件的方式来存储。行吧,然后我就用记事本创建了一个配置文件,然后我去写一个函数实现将我的音效配置开关把他读取出来,然后,我又傻了,我配置文件写的明明是1,它给我读出来一个0,这什么玩意,然后我想可能是字符串格式化的原因,我把他格式化成%s,然后再打印出来看,烫烫烫烫烫烫烫烫,这又是什么情况?然后我又去网上找解决方案,网上有人介绍到,fscanf函数只能读取asni码,我赶紧用notepad++打开我的配置文件看,果然问题就在这,我的配置文件的编码是utf-8,这谁顶得住啊,我赶紧把他改成了asni编码,然后在运行程序,长叹一口气,这回舒服了,终于正确了,编码的问题,这谁想得到啊。
大概这些就是我这次做课程设计的一些总结吧,最深的印象就是编码的问题,下次我可不愿意再掉进这个坑了。令人头秃的一次课程设计经历。总算也是有些收获。我觉得还行。哎,程序员性格就是好,一旦软件报错,第一想到的就是我错了我错了,我到底那里错了呢,慢慢找吧。程序人生,就是在不断的找Bug与修Bug中提升自己的技术。程序人生,就是这么多姿多彩。程序人生,就是这么有趣。

最后附上几张游戏截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

背着行囊去远方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值