Eu preciso criar uma tabela em que o usuario informa o numero de colunas e linhas, sendo o maximo 9 linhas e 9 colunas. Depois devo preenche-la com numeros de 1 a 9, sem repeti-los numa mesma linha ou coluna. Por exemplo:
[quote=nbluis]
int linhas = 10;
int colunas = 10;
for (int i = 0; i < linhas; i++) {
for (int j = 0; j < colunas; j++) {
System.out.print(i + j + 1 + " ");
}
System.out.println("");
}
Esse foi de cabeça.;…[/quote]
Se for de 1 a 9 os números possíveis, esse código está errado, mesmo que com 9x9.
Se for para um curso técnico, a solução trivial é válida, já que ele não quer um tabuleiro aleatório, mas sim algo tão simples quanto a permutação mostrada.
Você adapta para o caso em que menos colunas e linhas são necessárias.
[code]
class TesteTabuleiro {
public static void main(String[] args) {
int nLinhas = 9;
int nColunas = 9;
for (int i = 1; i <= nLinhas; ++i) {
for (int j = 1; j <= nColunas; ++j) {
int x = i + j;
x = x % 9; // explique-me o que isto faz...
if (x == 0) { // explique-me o que isto faz...
x = 9; // explique-me o que isto faz...
}
System.out.print (x + " ");
}
System.out.println ();
}
}
}[/code]
Pergunta: no código acima, qual é o primeiro número que aparece na tabela?
Para que simplificar se pode complicar?
Vou tirar o if daí
[code]
//Adaptado do thingol
class TesteTabuleiro2 {
public static void main(String[] args) {
int nLinhas = 9;
int nColunas = 9;
for (int i = 1; i <= nLinhas; ++i) {
for (int j = 1; j <= nColunas; ++j) {
int x = i + j;
x = x % 9 +1; // agora sim! Ficou mais legal. =)
System.out.print (x + " ");
}
System.out.println ();
}
}