人生的烦恼,多在于知道的太多,而做的太少。

Android 数独 游戏

Android zhangman523@gmail.com 2694℃ 0评论

先看看效果图

数独设计思路

先看布局,我们可以看到数独由9x9的格子组成,每个格子中间有一个数字。

  • Cell (单个格子、android 中我们可以先用TextView代替)
  • Grid (由3x3Cell组成)
  • Borad (由3x3Grid组成)

数独是由9x9 的格子组成,我们可以分为3个3x3Grid 组成
布局方式用RelativeLayout来布局。

数独检查游戏结束

数独游戏在每一行,每一列 和每个Grid1-9数字不能重复

每次输入时检查是否游戏结束和错误。

代码实现

首先我们使用自定义RelativeLayout来实现 Grid

我们定义3x3Cell数组

TextView来表示单个格子

初始化Cell

使用自定义RelativeLayout来实现 Board

实现也是跟Grid实现一样,只是Grid作为子View

初始化 mGridArray 的逻辑和Grid 一样就不贴代码了。自己去看>_<!

加载map

数独的map 我们用81位长度的字符串来表示 0表示需要补全的,1-9 为默认的数字

找一个默认的地图

加载方法

点击需要改变背景 高亮行和列。

遍历Cell数组选中相同的数字

遍历Cell数组高亮行和列

输入数字

每次输入我们需要判断游戏是否结束(数字重复或者完成数独)

checkFinish()方法中包括检查错误的方法,重复的数字需要高亮。需要检查行、列和宫(3×3的Grid)

检查3x3 格子中是否有重复的数字

游戏的逻辑已经完成了。大家可以去下载代码运行玩玩!

工程已经放在GITHUB

转载请注明:zhangman523 » Android 数独 游戏

喜欢 (8)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址