Sudoku

Gostaria de uma ajuda com um projeto, estou desenvolvendo um jogo de sudoku e existe 3 dificuldades (easy,medium,hard) , e gostaria de saber de um modo de randomizar um jogo predefinido quando selecionado uma dificuldade.

private int puzzle[] = new int[9 * 9];

   private final String easyPuzzle =
      "360000000004230800000004200" +
      "070460003820000014500013020" +
      "001900000007048300000000045";
   private final String mediumPuzzle =
      "650000070000506000014000005" +
      "007009000002314700000700800" +
      "500000630000201000030000097";
   private final String hardPuzzle =
      "009000000080605020501078000" +
      "000000700706040102004000000" +
      "000720903090301080000000600";

Como mostrado , so predefini 1 jogo para cada nivel, gostaria de saber como poderia predefinir outros jogos e ao momento que selecionace o nivel aleatoriamente escolheria um.

Obrigado

public static final int DIFFICULTY_EASY = 0;
   public static final int DIFFICULTY_MEDIUM = 1;
   public static final int DIFFICULTY_HARD = 2;
   protected static final int DIFFICULTY_CONTINUE = -1;

Ok agora entendo a tua pergunta,a dificuldade e definida pela quantidade de numeros iniciais como por exemplo o 3,6 o 0 representa a casa em branco que o jogador colocaria o numero.A primeira linha reprensentaria as 3 primeiras fileiras de quadrados e assim por diante. Se eu predefinice um segundo jogo para o easyPuzzle, como adicionaria ele e ao escolher o nivel easy um dos dois jogos seria aleatoriamente escolhido. Como vc falou sobre definir algoritimos aleatorios, seria possivel definir uma linha de codigo que criase jogos apartir dos nivel selecionados?

Alguma sugestao?

qual seria a regra para a variável inicial de cada nível?

acho que você não entendeu minha pergunta…

Você apresentou exemplos de easy, medium, hard certo?

[code]private int puzzle[] = new int[9 * 9];

private final String easyPuzzle =
“360000000004230800000004200” +
“070460003820000014500013020” +
“001900000007048300000000045”;
private final String mediumPuzzle =
“650000070000506000014000005” +
“007009000002314700000700800” +
“500000630000201000030000097”;
private final String hardPuzzle =
“009000000080605020501078000” +
“000000700706040102004000000” +
“000720903090301080000000600”;
[/code]
O que, em cada caso, define a dificuldade? Quantidade de casas em branco (zeros)? Posição dos números (de 1 a 9)? Outra?
Sem esse tipo de regra não é possível definir um algorítmo que possa gerar aleatórios.