[RESOLVIDO] Problema ao gerar número aleatório

10 respostas
paulo10171

Gostaria de ajuda , pois meu código não está funcionando :

public void firstLineSudoku() // gera primeira linha do sudoku

{

for (j = 0 ; j < 9 ; j++)

{
sudoku[0][j] = random.nextInt(9) + 1;
       s = " " + Integer.toString(sudoku[0][j]);
   
   }
   
   System.out.print(s); // exibe para teste
} // fim de firstLineSudoku

10 Respostas

Rodrigo_Sasaki

O que que “não funciona” ?

paulo10171

Aparece essa mensagem de erro no netBean :

Exception in thread main java.lang.NullPointerException

at sudokujava.SudokuGenerator.firstLineSudoku(SudokuGenerator.java:23)

at sudokujava.SudokuJava.main(SudokuJava.java:19)

Java Result: 1

Eu gostaria que fosse impresso uma linha com números aleatórios , mas esse código ainda estou aperfeiçoado ,
pois ele ainda vai ter que detectar os números que já estão na matriz de forma que não se repitam .

paulo10171
paulo10171:
Rodrigo Sasaki:
O que que "não funciona" ?

Aparece essa mensagem de erro no netBean :

Exception in thread "main" java.lang.NullPointerException
at sudokujava.SudokuGenerator.firstLineSudoku(SudokuGenerator.java:23)
at sudokujava.SudokuJava.main(SudokuJava.java:19)
Java Result: 1

Eu gostaria que fosse impresso uma linha com números aleatórios , mas esse código ainda estou aperfeiçoado ,
pois ele ainda vai ter que detectar os números que já estão na matriz de forma que não se repitam .

/*
 * Esta Classe gera os números para o Sudoku
 */
package sudokujava;
import java.util.Random; // importa classe que gera números aleatórios

/**
 *
 * @author Paulo Sérgio
 */
public class SudokuGenerator {
    
    Random random = new Random();
    public int sudoku[][]; // sudoku 9 x 9 linhas x coluna
    public int i , j ; // posições de linha i , posições coluna j ;
    String s ; // usado somente para testes
    
    public void firstLineSudoku() // gera primeira linha do sudoku
    {
       for (j = 0 ; j < 9 ; j++) 
       {
           
           sudoku[0][j] = random.nextInt(9) + 1;
           s = "/t" + Integer.toString(sudoku[0][j]);
       
       }
       
       System.out.print(s); // exibe para teste
    } // fim de firstLineSudoku
    
    public void firstColuneSudoku() // gera primeira coluna do sudoku
    {
        
    }
    
}
RodrigoKaos

Vc precisa instanciar o array e dps popular;

int sudoku[][] = new int[0][9];//por exemplo
paulo10171
RodrigoKaos:
Vc precisa instanciar o array e dps popular;
int sudoku[][] = new int[0][9];//por exemplo

Estou iniciando em Java , como faço pra instanciar o array e depois popular ? Existe tutorial ?
Obrigado .

paulo10171
paulo10171:
RodrigoKaos:
Vc precisa instanciar o array e dps popular;
int sudoku[][] = new int[0][9];//por exemplo

Estou iniciando em Java , como faço pra instanciar o array e depois popular ? Existe tutorial ?
Obrigado .

Consegui instanciar a array , eu acho : int sudoku[][] = new array[9][9];

Mas agora o problema é outro , a String gerada só tem um elemento . Aparece um número de cada vez ao invés de aparecer uma
String contendo os 9 elementos .

RodrigoKaos

[i]Blz, sempre que vc vier com alguma duvida da uma pesquisada no forum antes, provavelmente vc vai encontrar a solução.

nesse link tem alguma coisa, da uma lida.

Boa sorte

[/i]

paulo10171
paulo10171:
paulo10171:
RodrigoKaos:
Vc precisa instanciar o array e dps popular;
int sudoku[][] = new int[0][9];//por exemplo

Estou iniciando em Java , como faço pra instanciar o array e depois popular ? Existe tutorial ?
Obrigado .

Consegui instanciar a array , eu acho : int sudoku[][] = new array[9][9];

Mas agora o problema é outro , a String gerada só tem um elemento . Aparece um número de cada vez ao invés de aparecer uma
String contendo os 9 elementos .

OPS , era int sudoku[][] = new int[9][9];

Consegui criar a String só pra testes , era assim : s = s + " " + Integer.toString(sudoku[0][j]) ;

No caso , ainda estou implementando o resto do código . Mas valeu , obrigadão mesmo .

RodrigoKaos
paulo10171:
Consegui criar a String só pra testes , era assim : s = s + " " + Integer.toString(sudoku[0][j]) ;
Isso ae msm, vc pode simplificar usando:
s += " " + Integer.toString(sudoku[0][j]) ;

//Outros exemplos:

 i = i + 2;
 i += 2;

 x = x * 4;
 x *= 4;
Só coloca a tag [Resolvido] no tópico, vlw. abc.
paulo10171
RodrigoKaos:
paulo10171:
Consegui criar a String só pra testes , era assim : s = s + " " + Integer.toString(sudoku[0][j]) ;
Isso ae msm, vc pode simplificar usando:
s += " " + Integer.toString(sudoku[0][j]) ;

//Outros exemplos:

 i = i + 2;
 i += 2;

 x = x * 4;
 x *= 4;
Só coloca a tag [Resolvido] no tópico, vlw. abc.

Legal , eu tinha esquecido disso , é usado em c++ senão me engano . Eu estudei c++ há muito tempo , uns três anos eu acho .
Agora vou partir para gerar números sem repetir na mesma linha usando do {} while(); Existe alguma class em java que faça isso ?

Criado 21 de junho de 2013
Ultima resposta 21 de jun. de 2013
Respostas 10
Participantes 3