joaohd 200 Postado Julho 9, 2011 Share Postado Julho 9, 2011 (editado) Bom, é um jogo da velha em java feito totalmente por mim. Não possui interface gráfica, execute com o auxílio de um debugger. /*Informação do pacote */ package jogodavelha; /*Importação de bibliotecas*/ import java.util.Scanner; public class JogoDaVelha { //Função para mostrar o tabuleiro public static void MostraTabuleiro(String[][] x) { System.out.println(); /*Varrer as linhas*/ for(int l = 0; l < x.length; l++) { /*Varrer as colunas*/ for(int c = 0; c < x.length; c++) { /*Exibir a matriz*/ System.out.print(x[l][c]+ "\t"); } System.out.println("\n"); } System.out.println(); } //Função para verificar ganhador public static String VerificaGanhador(String[][] x, Integer j) { String[] Tab = new String[8]; String Win = "null"; /*Se jogadas = 9, vencedor é velha*/ if(j == 9) { Win = "Velha"; } //Linhas Tab[0] = x[0][0] + x[0][1] + x[0][2]; Tab[1] = x[1][0] + x[1][1] + x[1][2]; Tab[2] = x[2][0] + x[2][1] + x[2][2]; //Colunas Tab[3] = x[0][0] + x[1][0] + x[2][0]; Tab[4] = x[0][1] + x[1][1] + x[2][1]; Tab[5] = x[0][2] + x[1][2] + x[2][2]; //Diagonais Tab[6] = x[0][0] + x[1][1] + x[2][2]; Tab[7] = x[0][2] + x[1][1] + x[2][0]; /*Varrer o vetor Tab, procurando por sequencias iguais de X ou O*/ for(int i = 0; i < Tab.length; i++) { /*Se padrao XXX for encontrado, vencedor = player 1*/ if(Tab[i].equals("XXX")) { Win = "Player 1"; /*Se padrao OOO for encontrado, vencedor = player 2*/ } else if(Tab[i].equals("OOO")) { Win = "Player 2"; } } /*Retorna o vencedor. Caso nao foram encontrados os padrões e tabuleiro cheio, velha. * se Nao foram encontrados os padroes e tabuleiro ainda vazio, nulo * Senao vencedor = player 1 ou player 2 */ return Win; } public static void main(String[] args) { String[][] Tabuleiro = new String[3][3]; Integer Linha = 0; Integer Coluna = 0; Integer Valid = 0; Integer Jogadas = 0; Scanner in = new Scanner(System.in); //Inicializa o tabuleiro com "-" for(int i = 0; i < 3; i++){ for(int x = 0; x < 3; x++){ Tabuleiro[i][x] = "-"; } } //Inicia as jogadas enquanto não houver ganhador while(true) { //Loop infinito //Inicializa e autentica jogada do jogador 1 do { System.out.println("Jogador 1, vamos lá. Informe a linha: "); Linha = in.nextInt(); while(Linha < 0 || Linha > 2) { System.out.println("Esta linha é inválida!."); System.out.println("Jogador 1, vamos lá. Informe a linha: "); Linha = in.nextInt(); } System.out.println("Jogador 1, vamos lá. Informe a coluna: "); Coluna = in.nextInt(); while(Coluna < 0 || Coluna > 2) { System.out.println("Esta coluna é inválida!."); System.out.println("Jogador 1, vamos lá. Informe a coluna: "); Coluna = in.nextInt(); } //Verificar se campo está vazio if(Tabuleiro[Linha][Coluna].equals("-")) { Tabuleiro[Linha][Coluna] = "X"; Valid = 1; } else { Valid = 0; System.out.println("Jogada inválida. Tente novamente."); } } while(Valid == 0); //Verifica ganhador. Se não houver, jogador 2 joga Jogadas++; Valid = 0; MostraTabuleiro(Tabuleiro); if(!VerificaGanhador(Tabuleiro, Jogadas).equals("null")) { break; } //Inicializa e autentica jogada do jogador 2 do { System.out.println("Jogador 2, vamos lá. Informe a linha: "); Linha = in.nextInt(); while(Linha < 0 || Linha > 2) { System.out.println("Esta linha é inválida!."); System.out.println("Jogador 2, vamos lá. Informe a linha: "); Linha = in.nextInt(); } System.out.println("Jogador 2, vamos lá. Informe a coluna: "); Coluna = in.nextInt(); while(Coluna < 0 || Coluna > 2) { System.out.println("Esta coluna é inválida!."); System.out.println("Jogador 2, vamos lá. Informe a coluna: "); Coluna = in.nextInt(); } //Verifica se campo está vazio if(Tabuleiro[Linha][Coluna].equals("-")) { Tabuleiro[Linha][Coluna] = "O"; Valid = 1; } else { Valid = 0; System.out.println("Jogada inválida. Tente novamente."); } } while(Valid == 0); //Verifica ganhador. Se não houver, jogador 1 joga Valid = 0; MostraTabuleiro(Tabuleiro); Jogadas++; if(!VerificaGanhador(Tabuleiro, Jogadas).equals("null")) { break; } } //Finaliza e exibe vencedor System.out.println(VerificaGanhador(Tabuleiro, Jogadas) + " Vence!"); } } flw Editado Julho 9, 2011 por apocarai Link para o comentário Compartilhar em outros sites More sharing options...
fsg 230 Postado Julho 10, 2011 Share Postado Julho 10, 2011 Você mesmo que fez? Muito bom, vou testar depois! Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados