想学习Android有一段时间了,只是翻书,没怎么动手写过,想写个华容道练练手。突然有一天,我的lead看到我在看Android的书,于是拿回去翻了翻,然后没几天就写出了华容道!据说只用了3个小时!3个小时啊,有木有!然后只能督促自己赶紧动手
其实之前虽然没有动手,但是动脑想过算法,一旦知道怎么渲染界面就不难写了(好吧,我承认如何渲染界面的代码是“参考”我lead的代码),先看一下效果(餐后看的后果自负)
为了答谢大家看到上面的图还没有关掉浏览器,我分享出我跟我lead的代码供刚接触Android的同学学习。
我的代码:HuaRongRoad.rar, Lead的代码:HuaRongDao.rar
apk文件在bin目录下。
我的代码的思路:
把棋盘抽象成一个二维数组,数组的维度就是棋盘的坐标,数组的值代表着当前格子有没有棋子,是哪个棋子(比如曹操的值是1的话初始状态 棋盘[1][1], 棋盘[1][2], 棋盘[2][1], 棋盘[2][2]的值都为1)所有对棋子的操作都最终转化为在二维数组上的操作。
Fragment类是棋子类,PlayBoard类是棋盘类,Fragment中有一个静态的hashtable储存了所有棋子,ChessboardView类把屏幕上的输入转化成Fragment类,PlayBoard类可以接受的输入,并最终把所有Fragment画到屏幕上。HuaRongRoad.java就是启动一个ChessboardView的实例而已。
看到这里(真有人能看到这里么?)你也许能理解我的思路了,我把前台显示跟后台数据处理分开,Fragment类,PlayBoard类就相当于model层,ChessboardView类相当于View跟Controller。这样如果日后我前台的水平提高了,只需要改前台的实现方式,实现逻辑的代码可以不用动(虽然实现逻辑的代码很简单,动不动都差不多
),而且后台代码几乎没有hardcode,以后只要是拼图类的游戏我都可以用这一套代码轻松实现后台逻辑
(我想太多了)。
写到这里,你我都发现,其实我是一个标题党,这里面根本没有多少跟Android有关的东西
木办法,我也刚学,希望有前辈能跟指教,或者有相同兴趣的人共同学习,本人QQ:81774487,希望有机会能同各位android新手老鸟交流。
最后抱怨一下,用惯了ruby写java真的蛋疼的要死。
-------------------- 5月11日 更新 --------------------
感谢雷雷同学为我添加图片。
-------------------- 5月12日 更新 --------------------
加的图片居然是bmp格式,坑死爹了。如果把图片改成png,view.invalidate()方法加上参数(局部重绘)运行效率会有很大的提升。
- 大小: 83.7 KB
- 大小: 276.2 KB
分享到:
相关推荐
做了一个数字华容道的小游戏练练手,偶尔会出现无解的情况。不过会玩的话应该会很快过关的。。。。。。。。。
一款很古老的游戏,华容道,仿照那种在盒子中棋子的样子做的一款游戏,一开始,曹操在最上面,目的是曹操冲出五虎将的层层包围,到达屏幕的最下方,才算胜利
基于android的华容道游戏的源代码基于android的华容道游戏的源代码
安卓开发中的一个小作业,初步认识手机移动开发,做了一个小游戏,中国古老游戏之一华容道。
参考使用,欢迎下载
一个简单的华容道小程序,包含计时器和重置程序
这款华容道游戏设计是在Android Studio软件环境下,使用Java语言编程实现的可以在Android系统上运行的华容道游戏。
这款华容道游戏设计是在Android Studio软件环境下,使用Java语言编程实现的可以在Android系统上运行的华容道游戏。
华容道小游戏开发 完整代码 配有部分注释
Android 华容道游戏源代码,代码中附加了详细的注释,很好的android学习资料,很值得学习哦
2个Java华容道源码,附有文档资料和代码说明,对学习Java游戏不错。在本练习中,利用Java提供的一些库函数实现了三国中的经典游戏华容道的人物制作。 通过类的实例化技术,使用户理解面向对象的程序设计方法,...
我遍的这个程序完全是模仿吕震宇老师的"华容道与数据结构"的架构,但速度比他的慢几十倍,运行时间要花几十秒钟,虽然我也可以把这个程序优化,如可以通过更改布局的表述方式,传给movable的是两个空位的位置,而不是一个...
创作背景:当前的数学教育环境下,更强调的是数学素养的提升,本程序提供了一个免费的数学益智小游戏的学习和训练平台,旨在提升当今青少年对数学知识的热爱,为社会的和谐共同发展贡献一份微弱的力量。希望用户能...