`
piecehealth
  • 浏览: 47672 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android华容道——我的第二个Android程序(第一个是HelloWorld)

阅读更多
想学习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
分享到:
评论
2 楼 chuchu521 2012-06-27  
1 楼 chnwdx 2012-02-07  
想不支持你都不行

相关推荐

    数字华容道———小游戏

    在数字华容道中,玩家通常面对的是一个由数字排列的方形网格,目标是通过移动这些数字,将特定的数字(通常是“1”)移动到指定位置。游戏规则禁止任何数字跨过其他数字,这就需要玩家巧妙地规划每一步,寻找最优解...

    基于android的华容道游戏的源代码.zip

    本篇文章将详细解析一个基于Android的华容道游戏源代码,旨在帮助读者理解和学习Android游戏开发的相关知识。 首先,我们要明确的是,这个项目是使用Java语言编写的,这是Android平台的主要开发语言。Java以其面向...

    android 华容道游戏

    综上所述,开发一款Android华容道游戏涉及了用户界面设计、游戏逻辑实现、数据存储、性能优化等多个方面,需要开发者具备扎实的Android编程基础,以及良好的问题解决能力。通过这样的项目,开发者不仅能提升技术实力...

    android应用开发app设计小游戏————华容道

    本项目"android应用开发app设计小游戏——华容道"就是这样一个实例,它旨在让开发者对手机移动开发有初步的理解,并通过实现中国古老的游戏——华容道,锻炼其编程能力。 华容道游戏是一款策略性的棋盘游戏,源自...

    基于Android系统的华容道游戏的开发

    我们可以创建一个二维数组来表示棋盘状态,每个元素代表一个棋子的位置。通过算法实现棋子的合法移动判断,包括横向、纵向移动,以及空位替换等操作。同时,为了实现游戏的复原功能,需要记录每一步操作的历史,以便...

    基于android的华容道游戏的源代码

    基于android的华容道游戏的源代码基于android的华容道游戏的源代码

    华容道(android) 源码

    【华容道(Android)源码】是一款基于Android平台开发的经典益智游戏——华容道的完整源代码。华容道游戏源自中国古代,是一种棋盘类智力游戏,玩家需通过移动棋子,帮助曹操从棋盘的一端顺利逃出到另一端。这款...

    华容道的算法实现(java/android)源码.zip

    源码提供了一个基本的Android应用程序,虽然界面可能较为简洁,但核心功能——自动求解算法的实现,无疑是这个项目的核心。 首先,我们要理解华容道的算法设计。通常,这类问题可以通过深度优先搜索(DFS)或者A*...

    tt7_华容道小程序_

    【华容道小程序详解】 华容道是一款源自中国...综上所述,"tt7_华容道小程序_"结合了传统文化、计时挑战和重置功能,旨在提供一个集娱乐与智力锻炼于一体的数字平台,让玩家在游戏中既能享受乐趣,也能锻炼思维能力。

    HuaRongDao.rar_android_android 华容道_huarongdao java

    游戏的核心在于“华容道”算法,这个算法通常由一个二维数组表示棋盘状态,通过移动棋子来解决谜题。在源代码中,应能找到处理棋盘状态、棋子移动以及判断游戏胜利的相关类和方法。 二、Android游戏开发基础 2.1 ...

    华容道解算程序,可以解任何布局的华容道的最优解

    游戏板通常为一个方形或矩形格子,中心是曹操棋子,周围则分布着其他棋子,目标是通过移动棋子,让曹操从设定的起点走到终点——“华容道”。每一步只能横向或纵向移动一个空格,且不能越过其他棋子。游戏的难度在于...

    一个快速解算华容道程序

    在这个数字化的时代,一款名为"一个快速解算华容道程序"的软件应运而生,它能够高效地解决任何华容道布局的问题,只需短短一两秒就能给出最优解,极大地提升了游戏体验。 该程序的核心在于其解算算法。在编程领域,...

    基于Android系统的华容道游戏的开发实例

    1. **初始化游戏区域**:创建一个二维数组`playArea`来表示游戏棋盘,每个元素表示对应位置上的棋子类型或空位。 ```java for (int i = 0; i ; i++) { for (int j = 0; j [i].length; j++) { playArea[i][j] = 0...

    简单的华容道算法c++实现

    通常,华容道棋盘是一个二维矩阵,其中包含不同大小的空格和固定位置的棋子。在C++中,可以使用二维数组来表示这个棋盘。例如,定义一个`int`型二维数组,`int board[N][N]`,其中`N`是棋盘的边长。 接着,我们需要...

Global site tag (gtag.js) - Google Analytics