开发者

sudoku game constructor

开发者 https://www.devze.com 2023-03-07 17:03 出处:网络
I am having trouble initializing a parameterless constructor with a defined game. Somehow it keeps on returning null if I use a getter method to return the game. Can anyone tell me what would be the b

I am having trouble initializing a parameterless constructor with a defined game. Somehow it keeps on returning null if I use a getter method to return the game. Can anyone tell me what would be the best method to initialize the game?

Currently I'm calling a method from within another class which has a static method but it doesn't seem to work because it gives a null value if I get the game.

This is how I this game to be:

           {{7,8,1,0,0,4,0,0,6},
            {2,0,9,3,6,0,1,0,0},
            {6,0,0,0,9,0,8,0,0},
            {0,0,0,0,3,5,0,0,0},
            {3,5,0,0,0,0,0,1,9},
            {0,0,0,4,2,0,0,0,0},
            {0,0,3,0,1,0,0,0,8},
            {0,0,7,0,8,3,4,0,1},
            {9,0,0,6,开发者_如何学C0,0,5,7,3}},

public class SudokuPlayer
{
    private int [][]  game;
    public enum CellState { EMPTY, FIXED, PLAYED };
    private CellState[][] gamestate;

    private static final int GRID_SIZE=9;

    public SudokuPlayer()
    {
        int[][] copy= SudokuGames.getGame(4);
        int size = copy.length;
        int[][] game = new int[GRID_SIZE][GRID_SIZE];
        for ( int row = 0; row < size; row++)
        {
            for ( int col =0; col < size; col++)
            {
                game[row][col] = copy[row][col];
            }
        }
    }

    public int[][] getGame()
    {
        return game;
    }
}

here is the method from a diferent class im calling:

public class SudokuGames {

    public static final int [][][] GAMES = {
            // Game 0 VE - DEFAULT 30 squares filled
            {{5,3,0,0,7,0,0,0,0},
                {6,0,0,1,9,5,0,0,0},
                {0,9,8,0,0,0,0,6,0},
                {8,0,0,0,6,0,0,0,3},
                {4,0,0,8,0,3,0,0,1},
                {7,0,0,0,2,0,0,0,6},
                {0,6,0,0,0,0,2,8,0},
                {0,0,0,4,1,9,0,0,5},
                {0,0,0,0,8,0,0,7,9}},
            // Game 1 VE
            {{8,0,1,0,3,7,0,5,6},
                {0,0,0,9,0,0,0,0,7},
                {6,0,3,0,1,2,0,9,0},
                {0,2,0,0,0,0,7,0,3},
                {3,0,0,0,2,0,0,0,9},
                {1,0,9,0,0,0,0,8,0},
                {0,3,0,2,7,0,4,0,1},
                {7,0,0,0,0,6,0,0,0},
                {5,6,0,1,9,0,3,0,8}},
            // Game 2 VE
            {{0,9,0,0,3,0,1,4,0},
                {7,0,3,0,0,4,0,0,8},
                {5,0,0,6,0,7,0,2,0},
                {0,7,4,5,0,2,9,0,0},
                {1,0,0,0,0,0,0,0,2},
                {0,0,9,1,0,8,4,6,0},
                {0,5,0,7,0,9,0,0,6},
                {4,0,0,2,0,0,5,0,1},
                {0,8,6,0,5,0,0,7,0}},
            // Game 3 VE
            {{0,0,9,7,3,0,5,2,6},
                {0,0,5,0,2,0,8,0,0},
                {6,0,8,0,0,0,0,4,7},
                {0,0,0,0,0,9,0,6,2},
                {0,4,0,6,0,3,0,8,0},
                {8,9,0,5,0,0,0,0,0},
                {2,6,0,0,0,0,1,0,8},
                {0,0,7,0,1,0,6,0,0},
                {9,5,1,0,6,4,2,0,0}},
            // Game 4 VE
            {{7,8,1,0,0,4,0,0,6},
                {2,0,9,3,6,0,1,0,0},
                {6,0,0,0,9,0,8,0,0},
                {0,0,0,0,3,5,0,0,0},
                {3,5,0,0,0,0,0,1,9},
                {0,0,0,4,2,0,0,0,0},
                {0,0,3,0,1,0,0,0,8},
                {0,0,7,0,8,3,4,0,1},
                {9,0,0,6,0,0,5,7,3}},
            // Game 5 E
            {{0,0,0,9,1,0,0,0,2},
                {5,0,0,0,0,0,0,0,0},
                {3,0,0,5,4,0,0,6,8},
                {0,4,2,7,0,0,3,0,5},
                {0,0,3,4,5,6,2,0,0},
                {1,0,9,0,0,8,7,4,0},
                {8,1,0,0,7,5,0,0,4},
                {0,0,0,0,0,0,0,0,1},
                {9,0,0,0,8,4,0,0,0}},
            // Game 6 E
            {{0,0,0,1,0,7,0,9,0},
                {0,0,0,4,9,0,3,0,0},
                {6,0,0,0,3,0,4,1,0},
                {4,0,5,0,0,0,0,3,0},
                {8,2,0,0,0,0,0,5,4},
                {0,3,0,0,0,0,2,0,6},
                {0,1,4,0,7,0,0,0,5},
                {0,0,8,0,2,5,0,0,0},
                {0,6,0,8,0,1,0,0,0}},
            // Game 7 E
            {{0,0,2,8,0,7,5,0,0},
                {6,0,0,0,0,0,0,0,4},
                {0,8,0,0,6,0,0,7,0},
                {1,3,0,4,0,9,0,2,5},
                {0,0,0,0,0,0,0,0,0},
                {4,5,0,7,0,1,0,6,8},
                {0,6,0,0,3,0,0,9,0},
                {5,0,0,0,0,0,0,0,7},
                {0,0,1,6,0,4,2,0,0}}
        };  //End

    /**
     * getGame(int gameID) returns a a Sudoku game as int [][]
     *  as specified by the gameID. If the gameID is outside the
     *  list of possible games, null is returned.
     *  @param gameID number of game to be played
     *  @return int[][] a game to be played
     */
    public static int [][] getGame (int gameID) {

        /** A little dangerous. A copy of the reference to the original array
         * is returned. Not a copy of the array.
         **/
        if (gameID >= 0 && gameID < GAMES.length) {
            return GAMES[gameID];
        }
        else {
            return null;
        }

    }
}


You are hiding the instance variable.

Change the following

int[][] game = new int[GRID_SIZE][GRID_SIZE];

to

game = new int[GRID_SIZE][GRID_SIZE];
0

精彩评论

暂无评论...
验证码 换一张
取 消