首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混合然后打印数组,但它们最终都是一样的吗?

混合然后打印数组,但它们最终都是一样的吗?
EN

Stack Overflow用户
提问于 2015-08-29 05:18:32
回答 2查看 32关注 0票数 0

我在做数独游戏。我有一个包含9个其他数组(zone1-zone9)的数组(puzzle[]),每个数组最初包含{{1,2,3},{4,5,6},{7,8,9}} (它们是从zone1.clone()中分配的值,所以这不是一个引用问题)。

我将这些值与以下值混合:

代码语言:javascript
复制
Random rand = new Random();
for(int z = 0; z < 9; z++) //cycles through zones
{
    for(int i = 0; i < 3; i++) //cycles through zone rows
    {
        for(int j = 0; j < 3; j++) //cycles through zone columns
        {
            int temp = puzzle[z][i][j];
            int newI = rand.nextInt(3);
            int newJ = rand.nextInt(3);
            puzzle[z][i][j] = puzzle[z][newI][newJ];
            puzzle[z][newI][newJ] = temp;
        }
    }
}

然后,我将所有值添加到char数组(它添加了边框),从而将拼图打印到屏幕上。应该不会有任何问题,因为我只是通过puzzle82单独添加了拼图。

因此,当我运行该程序时,我希望得到9个具有不同混合值的“区域”。相反,我得到了这样的结论:

代码语言:javascript
复制
/-----------------------\
| 2 1 5 | 2 1 5 | 2 1 5 |
| 6 9 8 | 6 9 8 | 6 9 8 |
| 4 3 7 | 4 3 7 | 4 3 7 |
|-------+-------+-------|
| 2 1 5 | 2 1 5 | 2 1 5 |
| 6 9 8 | 6 9 8 | 6 9 8 |
| 4 3 7 | 4 3 7 | 4 3 7 |
|-------+-------+-------|
| 2 1 5 | 2 1 5 | 2 1 5 |
| 6 9 8 | 6 9 8 | 6 9 8 |
| 4 3 7 | 4 3 7 | 4 3 7 |
\-----------------------/

我确定这是很简单的东西,但我就是看不出来。

编辑:好的,这是打印部分。

代码语言:javascript
复制
char[][] display = {{'/','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','\\'},
        {'|',' ',(char)('0' + puzzle[0][0][0]),' ',(char)('0' + puzzle[0][0][1]),' ',(char)('0' + puzzle[0][0][2]),' ','|',' ',(char)('0' + puzzle[1][0][0]),' ',(char)('0' + puzzle[1][0][1]),' ',(char)('0' + puzzle[1][0][2]),' ','|',' ',(char)('0' + puzzle[2][0][0]),' ',(char)('0' + puzzle[2][0][1]),' ',(char)('0' + puzzle[2][0][2]),' ','|'},
        {'|',' ',(char)('0' + puzzle[0][1][0]),' ',(char)('0' + puzzle[0][1][1]),' ',(char)('0' + puzzle[0][1][2]),' ','|',' ',(char)('0' + puzzle[1][1][0]),' ',(char)('0' + puzzle[1][1][1]),' ',(char)('0' + puzzle[1][1][2]),' ','|',' ',(char)('0' + puzzle[2][1][0]),' ',(char)('0' + puzzle[2][1][1]),' ',(char)('0' + puzzle[2][1][2]),' ','|'},
        {'|',' ',(char)('0' + puzzle[0][2][0]),' ',(char)('0' + puzzle[0][2][1]),' ',(char)('0' + puzzle[0][2][2]),' ','|',' ',(char)('0' + puzzle[1][2][0]),' ',(char)('0' + puzzle[1][2][1]),' ',(char)('0' + puzzle[1][2][2]),' ','|',' ',(char)('0' + puzzle[2][2][0]),' ',(char)('0' + puzzle[2][2][1]),' ',(char)('0' + puzzle[2][2][2]),' ','|'},
        {'|','-','-','-','-','-','-','-','+','-','-','-','-','-','-','-','+','-','-','-','-','-','-','-','|'},
        {'|',' ',(char)('0' + puzzle[3][0][0]),' ',(char)('0' + puzzle[3][0][1]),' ',(char)('0' + puzzle[3][0][2]),' ','|',' ',(char)('0' + puzzle[4][0][0]),' ',(char)('0' + puzzle[4][0][1]),' ',(char)('0' + puzzle[4][0][2]),' ','|',' ',(char)('0' + puzzle[5][0][0]),' ',(char)('0' + puzzle[5][0][1]),' ',(char)('0' + puzzle[5][0][2]),' ','|'},
        {'|',' ',(char)('0' + puzzle[3][1][0]),' ',(char)('0' + puzzle[3][1][1]),' ',(char)('0' + puzzle[3][1][2]),' ','|',' ',(char)('0' + puzzle[4][1][0]),' ',(char)('0' + puzzle[4][1][1]),' ',(char)('0' + puzzle[4][1][2]),' ','|',' ',(char)('0' + puzzle[5][1][0]),' ',(char)('0' + puzzle[5][1][1]),' ',(char)('0' + puzzle[5][1][2]),' ','|'},
        {'|',' ',(char)('0' + puzzle[3][2][0]),' ',(char)('0' + puzzle[3][2][1]),' ',(char)('0' + puzzle[3][2][2]),' ','|',' ',(char)('0' + puzzle[4][2][0]),' ',(char)('0' + puzzle[4][2][1]),' ',(char)('0' + puzzle[4][2][2]),' ','|',' ',(char)('0' + puzzle[5][2][0]),' ',(char)('0' + puzzle[5][2][1]),' ',(char)('0' + puzzle[5][2][2]),' ','|'},
        {'|','-','-','-','-','-','-','-','+','-','-','-','-','-','-','-','+','-','-','-','-','-','-','-','|'},
        {'|',' ',(char)('0' + puzzle[6][0][0]),' ',(char)('0' + puzzle[6][0][1]),' ',(char)('0' + puzzle[6][0][2]),' ','|',' ',(char)('0' + puzzle[7][0][0]),' ',(char)('0' + puzzle[7][0][1]),' ',(char)('0' + puzzle[7][0][2]),' ','|',' ',(char)('0' + puzzle[8][0][0]),' ',(char)('0' + puzzle[8][0][1]),' ',(char)('0' + puzzle[8][0][2]),' ','|'},
        {'|',' ',(char)('0' + puzzle[6][1][0]),' ',(char)('0' + puzzle[6][1][1]),' ',(char)('0' + puzzle[6][1][2]),' ','|',' ',(char)('0' + puzzle[7][1][0]),' ',(char)('0' + puzzle[7][1][1]),' ',(char)('0' + puzzle[7][1][2]),' ','|',' ',(char)('0' + puzzle[8][1][0]),' ',(char)('0' + puzzle[8][1][1]),' ',(char)('0' + puzzle[8][1][2]),' ','|'},
        {'|',' ',(char)('0' + puzzle[6][2][0]),' ',(char)('0' + puzzle[6][2][1]),' ',(char)('0' + puzzle[6][2][2]),' ','|',' ',(char)('0' + puzzle[7][2][0]),' ',(char)('0' + puzzle[7][2][1]),' ',(char)('0' + puzzle[7][2][2]),' ','|',' ',(char)('0' + puzzle[8][2][0]),' ',(char)('0' + puzzle[8][2][1]),' ',(char)('0' + puzzle[8][2][2]),' ','|'},
        {'\\','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','/'}};

for(int i = 0; i < 13; i++)
{
    for(int j = 0; j < 25; j++)
    {
        System.out.print(display[i][j]);
    }
    System.out.println();
}
EN

回答 2

Stack Overflow用户

发布于 2015-08-29 05:57:54

感谢您添加您的显示代码!我很优雅地把它们放在一起,如下所示:

代码语言:javascript
复制
import java.util.Random;

public class SudokuArray
{
    public static void main(String[] args)
    {
    new SudokuArray();
    }

    public SudokuArray()
    {
    int[][][] puzzle = {{{1,2,3},{4,5,6},{7,8,9}},
                {{1,2,3},{4,5,6},{7,8,9}},
                {{1,2,3},{4,5,6},{7,8,9}},
                {{1,2,3},{4,5,6},{7,8,9}},
                {{1,2,3},{4,5,6},{7,8,9}},
                {{1,2,3},{4,5,6},{7,8,9}},
                {{1,2,3},{4,5,6},{7,8,9}},
                {{1,2,3},{4,5,6},{7,8,9}},
                {{1,2,3},{4,5,6},{7,8,9}}};
    Random rand = new Random();
    for(int z = 0; z < 9; z++) //cycles through zones
    {
        for(int i = 0; i < 3; i++) //cycles through zone rows
        {
        for(int j = 0; j < 3; j++) //cycles through zone columns
        {
            int temp = puzzle[z][i][j];
            int newI = rand.nextInt(3);
            int newJ = rand.nextInt(3);
            puzzle[z][i][j] = puzzle[z][newI][newJ];
            puzzle[z][newI][newJ] = temp;
        }
        }
    }
    char[][] display = {{'/','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','\\'},
                {'|',' ',(char)('0' + puzzle[0][0][0]),' ',(char)('0' + puzzle[0][0][1]),' ',(char)('0' + puzzle[0][0][2]),' ','|',' ',(char)('0' + puzzle[1][0][0]),' ',(char)('0' + puzzle[1][0][1]),' ',(char)('0' + puzzle[1][0][2]),' ','|',' ',(char)('0' + puzzle[2][0][0]),' ',(char)('0' + puzzle[2][0][1]),' ',(char)('0' + puzzle[2][0][2]),' ','|'},
                {'|',' ',(char)('0' + puzzle[0][1][0]),' ',(char)('0' + puzzle[0][1][1]),' ',(char)('0' + puzzle[0][1][2]),' ','|',' ',(char)('0' + puzzle[1][1][0]),' ',(char)('0' + puzzle[1][1][1]),' ',(char)('0' + puzzle[1][1][2]),' ','|',' ',(char)('0' + puzzle[2][1][0]),' ',(char)('0' + puzzle[2][1][1]),' ',(char)('0' + puzzle[2][1][2]),' ','|'},
                {'|',' ',(char)('0' + puzzle[0][2][0]),' ',(char)('0' + puzzle[0][2][1]),' ',(char)('0' + puzzle[0][2][2]),' ','|',' ',(char)('0' + puzzle[1][2][0]),' ',(char)('0' + puzzle[1][2][1]),' ',(char)('0' + puzzle[1][2][2]),' ','|',' ',(char)('0' + puzzle[2][2][0]),' ',(char)('0' + puzzle[2][2][1]),' ',(char)('0' + puzzle[2][2][2]),' ','|'},
                {'|','-','-','-','-','-','-','-','+','-','-','-','-','-','-','-','+','-','-','-','-','-','-','-','|'},
                {'|',' ',(char)('0' + puzzle[3][0][0]),' ',(char)('0' + puzzle[3][0][1]),' ',(char)('0' + puzzle[3][0][2]),' ','|',' ',(char)('0' + puzzle[4][0][0]),' ',(char)('0' + puzzle[4][0][1]),' ',(char)('0' + puzzle[4][0][2]),' ','|',' ',(char)('0' + puzzle[5][0][0]),' ',(char)('0' + puzzle[5][0][1]),' ',(char)('0' + puzzle[5][0][2]),' ','|'},
                {'|',' ',(char)('0' + puzzle[3][1][0]),' ',(char)('0' + puzzle[3][1][1]),' ',(char)('0' + puzzle[3][1][2]),' ','|',' ',(char)('0' + puzzle[4][1][0]),' ',(char)('0' + puzzle[4][1][1]),' ',(char)('0' + puzzle[4][1][2]),' ','|',' ',(char)('0' + puzzle[5][1][0]),' ',(char)('0' + puzzle[5][1][1]),' ',(char)('0' + puzzle[5][1][2]),' ','|'},
                {'|',' ',(char)('0' + puzzle[3][2][0]),' ',(char)('0' + puzzle[3][2][1]),' ',(char)('0' + puzzle[3][2][2]),' ','|',' ',(char)('0' + puzzle[4][2][0]),' ',(char)('0' + puzzle[4][2][1]),' ',(char)('0' + puzzle[4][2][2]),' ','|',' ',(char)('0' + puzzle[5][2][0]),' ',(char)('0' + puzzle[5][2][1]),' ',(char)('0' + puzzle[5][2][2]),' ','|'},
                {'|','-','-','-','-','-','-','-','+','-','-','-','-','-','-','-','+','-','-','-','-','-','-','-','|'},
                {'|',' ',(char)('0' + puzzle[6][0][0]),' ',(char)('0' + puzzle[6][0][1]),' ',(char)('0' + puzzle[6][0][2]),' ','|',' ',(char)('0' + puzzle[7][0][0]),' ',(char)('0' + puzzle[7][0][1]),' ',(char)('0' + puzzle[7][0][2]),' ','|',' ',(char)('0' + puzzle[8][0][0]),' ',(char)('0' + puzzle[8][0][1]),' ',(char)('0' + puzzle[8][0][2]),' ','|'},
                {'|',' ',(char)('0' + puzzle[6][1][0]),' ',(char)('0' + puzzle[6][1][1]),' ',(char)('0' + puzzle[6][1][2]),' ','|',' ',(char)('0' + puzzle[7][1][0]),' ',(char)('0' + puzzle[7][1][1]),' ',(char)('0' + puzzle[7][1][2]),' ','|',' ',(char)('0' + puzzle[8][1][0]),' ',(char)('0' + puzzle[8][1][1]),' ',(char)('0' + puzzle[8][1][2]),' ','|'},
                {'|',' ',(char)('0' + puzzle[6][2][0]),' ',(char)('0' + puzzle[6][2][1]),' ',(char)('0' + puzzle[6][2][2]),' ','|',' ',(char)('0' + puzzle[7][2][0]),' ',(char)('0' + puzzle[7][2][1]),' ',(char)('0' + puzzle[7][2][2]),' ','|',' ',(char)('0' + puzzle[8][2][0]),' ',(char)('0' + puzzle[8][2][1]),' ',(char)('0' + puzzle[8][2][2]),' ','|'},
                {'\\','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','-','/'}};

    for(int i = 0; i < 13; i++)
    {
        for(int j = 0; j < 25; j++)
        {
        System.out.print(display[i][j]);
        }
        System.out.println();
    }
    }
}

输出如下所示:

代码语言:javascript
复制
$ java SudokuArray
/-----------------------\
| 4 1 2 | 6 2 3 | 1 6 7 |
| 5 6 7 | 9 4 8 | 2 5 3 |
| 9 8 3 | 5 1 7 | 8 4 9 |
|-------+-------+-------|
| 3 4 2 | 5 2 3 | 3 1 5 |
| 7 8 5 | 4 6 1 | 7 4 9 |
| 9 6 1 | 8 9 7 | 6 2 8 |
|-------+-------+-------|
| 5 6 1 | 6 5 8 | 8 1 7 |
| 9 3 8 | 3 9 2 | 5 2 3 |
| 2 4 7 | 4 7 1 | 9 4 6 |
\-----------------------/

因此,您的代码片段完成了它们的工作(尽管生成的板子对数独无效)。问题出在别处。

票数 0
EN

Stack Overflow用户

发布于 2015-08-29 08:00:49

此解决方案只需启动one random valueone loop即可生成难题。

代码语言:javascript
复制
    for(byte r = zero, c; nine > r; r ++) {
        if(three == r || six == r) {
            rand = maze[r - three][zero];
            rand = nine == rand ? one : (byte)(rand + one);
        } else {
            rand = zero < r ? maze[r - one][six] : rand;
        }
        for(c = zero; nine > c; c ++) {
            maze[r][c] = rand;
            rand = nine == rand ? one : (byte)(rand + one);
        }
    }

这是我的github存储库链接:Full code

Live Demo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32281229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档