坐完地铁的第二天,我就开始兴奋的开始动手了。但事情没有想象地那么简单,首先遇到的瓶颈是要创建4*4的控件数组(因为2048界面也是4*4的方块),这个没有在教学**中提过。在教程中。
创建控件一般都是从工具箱拖拽到窗口,但如果添加4*4的按钮控件只能是button1 button2各个控件不能够在一个二维数组中管理。但这个游戏的算法必须要求是二维数组才能很好实现。教程中有提到过用**实现添加控件,但也只有单个控件的添加。
对于我一个初学者真不知道该如何进行下去,那时似乎有点绝望,想放弃这个项目。但想想这么简单的程序都做不好,太怂,所以我还是坚持下去,车到山前必有路。因为学c#的同学并不多,我决定自己找相关的网络资料。
大概折腾了一个下午。终于在一个论坛上找到正确的指导。按照论坛上所说,通过**生成控件数组,我攻破了这个困难,因此我对自己更有信心了。
接下来的任务就是设计相关的算法和界面。算法还是比较容易实现的,主要就是设计上下左右键的触发事件相关**以及方格的颜色的变化和判别游戏结束的**,属于游戏的核心**。另外我也采用了文件流来记录游戏最高分,使玩家更有挑战的游戏欲望。
随后就是后期处理,调整控件的位子大小,增强友好度,调整数字的字体大小及其背景颜色的变化,增强游戏的特效感。整个作业大概花了两天的下午时间,比预期的更快完成,自己也比较满意。
我将介绍更多关于游戏的方面。1024相对于2048同样遵守数字相同的格子会合成为一个双倍的数字的格子。但其不同之处是1024游戏开始时会随机产生一个“0”格子。
数字“0”不与其他任何数字合成,亦不可移动。玩家在合成大数字时必须要考虑“0”格子的障碍,所以1024更具有挑战性和趣味性。游戏结束的判定啊条件是玩家合成了1024这个数字或者玩家按下方向键时系统无法产生新的数字,即宣告游戏结束。
游戏的分数计算是游戏结束时所有数字的总和,新的最高分会记录在文件里。游戏的规则大致如此。
游戏的ui方面,我尽力去效仿2048界面,给用户一个简洁,舒适游戏体验,大部分还做得可以,但美中不足的是没有实现数字的平移,缺失游戏的连贯性。由于我初学技术不是特别到家、ui只能做到这个程度,希望日后有时间可以实现数字平移。
从准备到开工到完工,都是我凭一己之力完成的这个项目。在学习c#的过程中,我明显感觉到c#的封装性的函数与c/c++相比更完善更便捷。在以往的c/c++的编程中,几乎大部分的功能需自己手动写**。
而c#便捷性使我完做项目时避免了对可视化基底知识不理解,只需调用函数即可实现游戏的可视化。可以说没有这些函数的封装,我根本不可能在如此短的时间里作出这样一个小游戏。我认为c#的确更适合开发窗口类应用程序。
除了在知识上的补充,在精神上我也获得不少收益。在整个过程中,我体会到了编程的不易,亦体会到看到自己的游戏成功运行的那一刻的欣喜。同时作为一个软件生,我更多的理解了自学能力是多么重要。
随着时代的发展,编程语言的不断更,我们需不断学习才能增强自己的实力。持之以恒,精益求精是每个编程员该有的品质。
暑期实践项目
近年我国新能源产业迅猛发展,风力发电 光伏发电在能源结构中所占地位日益重要。但与此同时,风能 太阳能本身受气候影响大,随机性强 波动大 有间歇,难以提供连续稳定的电能输出。这已成为制约新能源大规模开发利用的关键技术瓶颈。国家风光储输示范工程 由国家电网公司设计 建设,列入国家 金太阳 工程重点项目 ...
暑期项目总结
项目背景。苹果的成功带来了一系列app开发的高潮。objective c也成为现今最流行的一门语言。本次暑期项目我们选择学习objective c这门语言,我们认为开始学习阶段应该先从简单入手,所以我们选择通过编写一个有图形界面的高精度计算器来加深我们对objective c的认知,一方面项目不会因...
TowerDefense暑期项目
towerdefense暑期项目学习心得。编程是一件很难的事情。当然我的意思跟那篇著名的 编程是一件很难的事情 不一样。想把 写好,本来就是一件非常困难的事情。我曾听一个已经工作的人说,就光是c 长达四年后她还搞不清楚模板元编程究竟是什么,而且还有c语言学会了转c 会把坏习惯带进来啦,c 的人转做c...