Olá, eu fiz este código que é basicamente um jogo da velha, ou do galo…
Peço a opinião aos mais experientes para me dares opinião em relação a organização do código.
Sei que existia a possibilidade de criar métodos para organizar melhor o código, porem ainda não aprendi como utilizar tal ferramenta.
Sei que cada um escreve o código da maneira que prefere, porém peço mesmo assim para vocês me darem um feedback sobre isto pois no futuro irei trabalhar em equipe e quero que o meu código seja um código legível para todos os envolvidos.
Por fim…Se possível, gostaria de saber se alguma parte deste codigo poderia ser reduzida.
/**
*
* @author Gustavo
*/
package jogodogalo1p;
import java.util.Random;
import java.util.Scanner;
public class JogoDoGalo1P {
public static void main(String[] args) {
/*lX, CX, DX = Linha, Coluna e Diagonal.
/*N = Número de rodadas.
/*Posi = Posição que o jogador irá dar.
/*NomeX = nome dos jogadores.
/*Simb = Simbolo.
/*Resp = Resposta sobre continuar ou parar o jogo.
*/
//- Declaração das variaveis. -----------------------------------------||
Scanner scan = new Scanner(System.in);
Scanner menu = new Scanner(System.in);
Random random = new Random();
String nome1, simb = "X", l1, l2, l3, c1, c2, c3, d1, d2;
int posi = 1, n = 0, resp, posiBKP;
String pos[][] = new String[3][3];
pos[0][0] = "7";
pos[0][1] = "8";
pos[0][2] = "9";
pos[1][0] = "4";
pos[1][1] = "5";
pos[1][2] = "6";
pos[2][0] = "1";
pos[2][1] = "2";
pos[2][2] = "3";
//- Inicio. -----------------------------------------------------------||
System.out.println("-----------------------------");
System.out.println("\tJogo do Galo.");
System.out.println("-----------------------------\n");
System.out.println(" 1 - Iniciar o jogo.");
System.out.println(" 2 - Sair do jogo.");
System.out.println("\n-----------------------------");
System.out.print(" O que deseja fazer: ");
resp = menu.nextInt();
if (resp == 2) {
while (resp == 2) {
break;
}
}
if (resp == 1) {
System.out.println("\n\n-----------------------------");
System.out.println("\tIniciar o jogo\n");
System.out.print(" - Introduza o seu nome: ");
nome1 = scan.nextLine();
System.out.println(" Você irá iniciar com 'X'.");
System.out.println("\n----------------------------------");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
while (n < 9) {
//- Sistema para verificar quem ganhou. -----------------------||
l1 = pos[0][0] + pos[0][1] + pos[0][2];
l2 = pos[1][0] + pos[1][1] + pos[1][2];
l3 = pos[2][0] + pos[2][1] + pos[2][2];
c1 = pos[0][0] + pos[1][0] + pos[2][0];
c2 = pos[0][1] + pos[1][1] + pos[2][1];
c3 = pos[0][2] + pos[1][2] + pos[2][2];
d1 = pos[0][2] + pos[1][1] + pos[2][0];
d2 = pos[0][0] + pos[1][1] + pos[2][2];
if (l1.equals("XXX") || l2.equals("XXX") || l3.equals("XXX") || c1.equals("XXX") || c2.equals("XXX") || c3.equals("XXX") || d1.equals("XXX") || d2.equals("XXX")) {
System.out.println("\n\tO/A " + nome1 + " ganhou!");
break;
}
if (l1.equals("OOO") || l2.equals("OOO") || l3.equals("OOO") || c1.equals("OOO") || c2.equals("OOO") || c3.equals("OOO") || d1.equals("OOO") || d2.equals("OOO")) {
System.out.println("\n\tO computador ganhou!");
break;
}
//- Questão de determinação de jogada. ------------------------||
if (n % 2 != 0) {
posiBKP = random.nextInt(2);
while (posiBKP == posi) {
posiBKP = random.nextInt(2);
}
posi = posiBKP;
simb = "O";
System.out.println("\n O computador jogou na " + posi + "º.");
}
if (n % 2 == 0) {
System.out.print("\n Onde deseja jogar?");
posi = scan.nextInt();
simb = "X";
}
if (n == 9) {
System.out.println("Decorreu um empate!");
break;
}
//- Determinar onde colocar o símbolo -------------------------||
if (posi == 1 && (pos[2][0].equals("1"))) {
pos[2][0] = simb;
n++;
System.out.println("\n\t-------------------");
System.out.println("\t Ronda número " + n + "\n");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
continue;
}
if (posi == 2 && (pos[2][1].equals("2"))) {
pos[2][1] = simb;
n++;
System.out.println("\n\t-------------------\n");
System.out.println("\t Ronda número " + n + "\n");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
continue;
}
if (posi == 3 && (pos[2][2].equals("3"))) {
pos[2][2] = simb;
n++;
System.out.println("\n\t-------------------\n");
System.out.println("\t Ronda número " + n + "\n");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
continue;
}
if (posi == 4 && (pos[1][0].equals("4"))) {
pos[1][0] = simb;
n++;
System.out.println("\n\t-------------------\n");
System.out.println("\t Ronda número " + n + "\n");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
continue;
}
if (posi == 5 && (pos[1][1].equals("5"))) {
pos[1][1] = simb;
n++;
System.out.println("\n\t-------------------\n");
System.out.println("\t Ronda número " + n + "\n");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
continue;
}
if (posi == 6 && (pos[1][2].equals("6"))) {
pos[1][2] = simb;
n++;
System.out.println("\n\t-------------------\n");
System.out.println("\t Ronda número " + n + "\n");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
continue;
}
if (posi == 7 && (pos[0][0].equals("7"))) {
pos[0][0] = simb;
n++;
System.out.println("\n\t-------------------\n");
System.out.println("\t Ronda número " + n + "\n");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
continue;
}
if (posi == 8 && (pos[0][1].equals("8"))) {
pos[0][1] = simb;
n++;
System.out.println("\n\t-------------------\n");
System.out.println("\t Ronda número " + n + "\n");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
continue;
}
if (posi == 9 && (pos[0][2].equals("9"))) {
pos[0][2] = simb;
n++;
System.out.println("\n\t-------------------\n");
System.out.println("\t Ronda número " + n + "\n");
System.out.println("\n\t" + pos[0][0] + "\t" + pos[0][1] + "\t" + pos[0][2]);
System.out.println("\n\t" + pos[1][0] + "\t" + pos[1][1] + "\t" + pos[1][2]);
System.out.println("\n\t" + pos[2][0] + "\t" + pos[2][1] + "\t" + pos[2][2]);
continue;
} //- Verifica se a posição está ocupada. ---------------------------||
else {
if (n % 2 == 0) {
System.out.println("\n A " + posi + "º posição já está ocupada.\n Por favor, introduza outra posição.");
}
}
}
}
}
}