android数独游戏

最近没事干,照着视频教程写了一个数独游戏,很粗糙还有很多要修改的地方。下面就来说说这个游戏吧

1.自定义一个View控件,用来在屏幕上显示一个9*9的格子,其实就是横着画8条线,竖着画8跳线,然后将其中的几条线加粗一下。这样就形成了9*9的格子了

2.用一个字符串初始化游戏界面上的数字

1 String str_int = "360000000004230800000004200"+
2             "070460003820000014500013020"+
3             "001900000007048300000000045";//数据初始化数据

上面我就是用一个字符串来填初始化的数字

3.点击一个格子的时候,我们需要计算出这个格子所在的行列,小9宫格中已经出现的数字,即不能使用的数字,然后给用户提供可以使用的数字。(这里有点绕了)这里我用了一个自定义Dialog来显示给用户

4.用户点击Dialog上面的数字,重新计算已经使用的数字,刷新界面,即重新调用ondraw()方法

源码下载

ps:源码写的有点乱,这里文档也写得很乱

时间: 2024-10-05 16:10:48

android数独游戏的相关文章

[Android]开发数独游戏思路分析过程

数独游戏风靡已久,下面就将开发一款数独游戏的Android应用过程进行分解和说明. 先上图,再逐次分析开发这款游戏的涉及到的技术点,游戏逻辑. 简述:数独游戏是通过在9*9(大九宫格)的格子中空白的格子填写1-9中的任意一个数字,使得每一个行和每一列都由1-9这10个数字填满,并且在每3*3(小九宫格)的格子中同样也是由1-9这10个数组填满.即表示游戏完成. 分析游戏逻辑: 游戏中的每个格子可能的数字有1-9 游戏开始显示的数字,通过一份完整的数独,将部分格子设为空白,得到游戏初始值 游戏中的

android 小游戏 ---- 数独(一)

segment 1 android 小游戏 ----  数独(一) 规则:在9X9的棋盘中,每个横行和竖列中的9个格子都包含数字1至9,不重复, 且每个黑色粗实线围住的9个格子都包含数字1至9,不重复. 既然涉及到棋盘,那就少不了绘图,我们知道在android中绘图的工作是由UI线程完成的, 一般是指主线程,而android系统设定UI绘图线程超过5秒不响应就会报异常,所以一般在 子线程中进行数据的计算,然后将消息发给UI线程,使之更新界面. 在Java中我们可以通过View来绘图,在默认情况下

android 小游戏 ---- 数独(四)

segment 4 android 小游戏 ----  数独(四) 好的,棋盘绘制出来了.那么我们如何在空白方格中填写数字呢? 这时按钮就发挥出来它的作用了. 我们在控制器类game中设置一个标志,标示当前用户想要填写的数字, 可以通过监听器监听当前用户点击是哪个按钮,然后用game的set方法设置一下. 首先在MainActivity.java 中设置一下监听器. public class MainActivity extends Activity { private Game game; p

android 小游戏 ---- 数独(三)

segment 3 android 小游戏 ----  数独(三) 好的,既然要把数独棋盘中初始提示数字绘制出来,我们就要先了解数独的一些特点. 数独棋盘中总共是81个数字,那我们是否可以用一个数组来代表整个棋盘对应的数字呢想象我们初始化一个9x9的数组,private int[] sudoku = new int[9*9] //初始化数据 private int[] sudoku = new int[9*9]; 这里使用一维数组,当然使用二维数组更加明了直接,这个随个人喜好. 那么我们可以让

安卓开发_数独游戏基础(二)

老师视频教程结束了,但是游戏并未完成.下面便开始自己动手完善部分功能 需要完善的功能: 1.设置给定的数独数据数字不可改变 2.设置给定的数独数据数字和玩家填入的数字颜色不同,方便区分 3.判断填写后的数独是否符合数独游戏规则 解决方法: 1.设置给定的数独数据数字不可改变 我的思路,因为给定的数据数字是给定的,而数据是放在一个字符串里的,如下:0代表需要玩家输入的,非0则是给定的 1 private final String str = "061030020050008107000007034

数独游戏求解程序

最近玩数独游戏,每行.每列.以及9宫格都包含1-9个数组.觉得这东西很适合用程序来求解.于是我就仿照中国象棋的暴力搜索算法(可参考我之前写的文章极大极小搜索算法),写了一个程序求解数独,直接贴代码了 /** * 模仿象棋程序的搜索算法,写一个求解数独的程序 * @author royhoo * */ public class ShuDu { private int[][] board; // 数独矩阵 private int zeroNum; // 缺失的数字个数 private int fil

数独游戏的设计与实现

前景:数独游戏,是一种数学智力拼图游戏,是“独立的数字游戏”的简称,源自18世纪末的瑞士,后在美国发展,在日本得以发扬光大. 数独游戏可以训练玩家的逻辑推理能力,不少教育者皆认为数独是锻炼脑筋的好方法. 然而如何制作出这个游戏?首先要了解它的规则: 1.游戏会从一个部分带有数字的九宫格开始. 在9×9的大九宫格(即3格宽×3格高)方阵里,每一格又细分为一个小九宫格. 2.游戏开始,已给定若干数字,其它宫位留白,玩家需要自己按照逻辑推敲出剩下的空格里是什么数字. 3.填数字时必须满足以下条件:在空

5乘5的数独游戏

用了三个周的业余时间,日思夜想的牵挂才把5乘5的数独游戏填满了二十五个宫格. 在这前一篇<数独游戏新篇章>里面,通过对第一个宫格使用位移变换来得到后面的二十四个宫格,总觉得没有什么意思.现在可以通过回溯的办法填满整个二十五个宫格,又觉得这样的结果好像120个点的连通图里面的哈密顿回路的条数那样多得不可思议,所以就想在一个已经填入了一部分数字的情况下,再把其余的格子填满,因为已经有了可以解决3乘3标准数独的基础(前一篇那一个是芬兰数学家给出的世界最难标准数独,编写的程序运行十小时就能得到结果,就

C语言学习 数独游戏

摘要:花了1周多时间学习了C语言,开始练手写解数独游戏的程序. 作者:乌龙哈里 时间:2015-11-22 平台:Window7 64bit,TCC 0.9.26(x86-64 Win64) 参考: 互动百科 数独 章节: 正文: 原来也用C#和Go语言写过,主要思路是暴力撞大运破解.思路什么的在程序了都注释了,不多说了.可能是没用什么先进的算法,感觉C解题速度和C#差不多(除了C#第一次运行之外),基本上出来一个数独表都不用1秒. 附完整程序: 1 /*********************