九宫格的解法以---之随机九宫格的产生
来源:互联网 发布:生日网站源码 编辑:程序博客网 时间:2024/05/16 12:37
下面是九宫格类型题目的第一篇 即最简单的九宫格的产生(此篇为在JAVA中编译的
import java.util.Random; //九宫格类的初始化class JiuGong{ int [][]qiBan=new int[9][9]; public JiuGong(){ for(int i=0;i<9;i++){ for(int j=0;j<9;j++){ qiBan[i][j]=0; } } qiBan[0][suiji()]=1; for(int i=2;i<10;i++){ int a=suiji(); while(qiBan[0][a]!=0){ a=suiji(); } qiBan[0][a]=i; } int x=1,y=0; do{ qiBan[x][y]++; if(qiBan[x][y]==10){ qiBan[x][y]=0; y--; if(y<0){ x--; y=8; } continue; } if(yanZheng(x,y,qiBan[x][y])){ y++; if(y==9){ x++;y=0; }; } }while(x<9); } //下面为输出九宫格: public void show(){ System.out.println("--------------------------"); for(int i=0;i<9;i++){ for(int j=0;j<9;j++){ System.out.print(qiBan[i][j]+"| "); if(j==8) { System.out.println(""); System.out.println("--------------------------"); } } } } private int suiji(){ Random random = new Random(); random.nextInt(20); return random.nextInt(9); } //下一段为验证在横 竖 斜的是否为 0~9 不重复 private Boolean yanZheng(int x,int y,int value){ for(int i=0;i<9;i++){ if(i==y) continue; if(qiBan[x][i]==value) return false; } for(int i=0;i<9;i++){ if(i==x) continue; if(qiBan[i][y]==value) return false; } int n=x/3; int m=y/3; for(int i=n*3;i<3*(n+1);i++){ for(int j=m*3;j<3*(m+1);j++){ if(x==i&&y==j) continue; if(qiBan[i][j]==value) return false; } } return true; } }
):
下面是测试代码:
public class Example {public static void main(String[] args) {// TODO 自动生成的方法存根long t=System.currentTimeMillis();System.out.println("开始产生一个九宫格: ");JiuGong m=new JiuGong();m.show();long t2=System.currentTimeMillis();System.out.println("产生这个九宫格花了"+(t2-t)+"毫秒");}}
0 0
- 九宫格的解法以---之随机九宫格的产生
- 计算九宫格解锁的解法和
- 九宫格的实现
- 九宫格的算法
- 九宫格的计算
- 九宫格的使用
- Android之九宫格解锁的实现
- Android之GridView的使用(九宫格)
- Android之九宫格解锁的实现
- Android之九宫格解锁的实现
- 我的九宫格算法
- 关于bitmap的九宫格
- android九宫格的实现
- iphone九宫格的界面
- android的九宫格实现
- 九宫格的单行求解
- 九宫格的简化算法
- android 九宫格的实现
- 关于Django模板不能运算的临时解决办法 在Django 模板template 中实现加法,减法,乘法,除法运算
- uvaoj 10066 - The Twin Towers 最长公共子序列(LCS)
- XCode6 生成prefix.pch文件
- copy和mutablecopy
- ubuntu下mysql搭建
- 九宫格的解法以---之随机九宫格的产生
- Mysql插入内容过长(Packet for query is too large)
- Linux个人杂记
- 人体身份识别(Person Re-Identification)系统框架
- myEclipse的web project 的src目录下建立package时出现package跑到libraries目录下或者和src在同一级目录下
- 升级iOS8和iOS9系统后,保险箱Pro、私人保险箱、私密相册打开就闪退的官方解决方案
- 探索Fragment(1)----基本使用
- 基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作
- 最优三角形剖分