基于基于Android实现数独游戏实现数独游戏
主要为大家详细介绍了基于Android实现数独游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Android实现数独游戏的具体代码,供大家参考,具体内容如下
1、在src中有4个Java类:
其中代码分别是:
Game.java:
package com.example.test1;
import android.R.integer;
public class Game {
public final String str="360000000004230800000004200"
+"070460003820000014500013020"
+"001900000007048300000000045";
/*public final String str="124576893"+"967348521"+"835291674"+
"259784316"+"316952748"+"748613902"+"582439160"+"493167285"+"671825430";*/
static int sudoku[]=new int [9*9];
private int used[][][]=new int[9][9][];
int sum=0;
public int[] getSudoku(){
return sudoku;
}
public int sum(int a[]){
for(int i=0;i<a.length;i++)
sum+=a[i];
return sum;
}
public Game()
{
sudoku=fromPuzzleString(str);
calculateAllUesdTiles();
}
// 根据九宫格中的坐标,返回该坐标,所应该返回的数字
public int getTile(int x,int y){
return sudoku[y*9+x];
}
public String getTileString(int x,int y)
{
int v=getTile(x,y);
if(v==0)
{
return "";
}
else
{
return String.valueOf(v);
}
}
//根据一个字符串数据,生成一个整型数组,作为数独游戏的初始化数据
protected int[] fromPuzzleString(String src)
{
int []sudo=new int [src.length()];
for(int i=0;i<sudo.length;i++)
{
sudo[i]=src.charAt(i)-'0';
}
return sudo;
}
//用于计算所有单元格对应的不可用数据
public void calculateAllUesdTiles()
{
for(int x=0;x<9;x++)
{
for(int y=0;y<9;y++)
{
used[x][y]=calculateUesdTiles(x,y);
评论1