Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数独板上方框的着色算法_Java_Algorithm_Multidimensional Array_Sudoku - Fatal编程技术网

Java 数独板上方框的着色算法

Java 数独板上方框的着色算法,java,algorithm,multidimensional-array,sudoku,Java,Algorithm,Multidimensional Array,Sudoku,我目前正在使用Swing/Awt在Java中编写一个图形数独解算程序。因此,我决定在电路板上给这些盒子(用粗线标记)加上阴影(用3x3和2x3盒子): (来源:) (来源:) 一块6x6板和一块8x8板 程序中的板基本上表示为int[dimension][dimension]数组,程序接受尺寸为4x4->16x16的板 问题在于确保行或列中相邻的框没有相同的着色。GUI着色过程本身不是问题所在,而是找出是否应将正方形作为着色框的一部分进行着色。 我已经尝试了几个小时来实现一个简单的算法来解

我目前正在使用Swing/Awt在
Java
中编写一个图形数独解算程序。因此,我决定在电路板上给这些盒子(用粗线标记)加上阴影(用3x3和2x3盒子):

(来源:)


(来源:)


一块6x6板和一块8x8板

程序中的板基本上表示为
int[dimension][dimension]
数组,程序接受尺寸为4x4->16x16的板

问题在于确保行或列中相邻的框没有相同的着色。GUI着色过程本身不是问题所在,而是找出是否应将正方形作为着色框的一部分进行着色。

我已经尝试了几个小时来实现一个简单的算法来解决这个问题,通过一个双for循环遍历数组,但是我还没有得到任何合理的模式,我也没有想法。到目前为止,我的算法是基于这样一个假设,即每隔一个框都应该从左上到右下着色。这对6x6变型不起作用,因为这里有顺序:彩色框->白色框->白色框


这里有人能提出一种算法或其他方法吗?如果需要,我会提供更多信息。非常感谢。

我将如何在
Java
中重写此返回语句?编译器生成:
。。。操作人员无法应用于int…
。这非常有效!只是,我将部分更改为
x/size\u y
y/size\u x
,以使其与
应该阴影(I,j,boxWidth,boxHeight)
一起工作,其中
boxWidth
是框中的列数和
boxHeight
行数。我不知道为什么这个算法有效,但它太棒了@hesse它之所以有效,是因为如果将
x/size\u x
(即此正方形所在框的x索引)增加1,它会改变颜色;如果将
y/size\u y
增加1,它也会改变颜色。这肯定会满足你的要求,没有两个相邻的盒子有相同的颜色。
bool should_shade(x,y,size_x,size_y) 
//sizes are size of small box and position x,y count from 0
{
     return ( (x/size_x + y/size_y ) % 2) == 0; //division is integer division

}