Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package game;
- import java.util.Scanner;
- import java.util.Random;
- public class Game {
- public static void main(String[] args) {
- Scanner entry = new Scanner(System.in);
- int matrizJogo[][] = new int[3][3];
- int caracterPlayer = 0, jogadasVeia = 0, jogadasPlayer = 0, jogadasOutroPlayer = 0;
- boolean jogoAcabado = false;
- System.out.println("Velha ~> Olá desconhecido, bem vindo ao meu jogo! \nVelha ~> Digite seu nome para começar a jogar.");
- System.out.print("Meu nome é: ");
- String username = entry.next();
- System.out.println("\nVelha ~> Oi " + username + "! Agora que já nos conhecemos melhor, que tal jogar comigo ou com um amigo?!");
- System.out.print("Você quer jogar com a velha ou com um amigo? ");
- String spmp = entry.next();
- while(!spmp.equals("velha") && !spmp.equals("amigo")) {
- System.out.println("\nVelha ~> " + username + ", eu não consegui entender com quem você quer jogar, tá com medo?");
- System.out.print("Você quer jogar com a velha ou com um amigo? ");
- spmp = entry.next();
- }
- char caracter = '-';
- String secondPlayerName = "-";
- if(!spmp.equals("velha")) {
- System.out.print("\nQual é o nome do seu amigo? ");
- secondPlayerName = entry.next();
- }
- Random rand = new Random();
- int carac = rand.nextInt(2);
- System.out.println("debug: "+ carac);
- int outroCarac = 0;
- switch(carac) {
- case 0: { carac = 1; outroCarac = 2; break; }
- case 1: { carac = 2; outroCarac = 1; break; }
- default: carac = 0;
- }
- caracterPlayer = carac;
- desenharJogo(matrizJogo);
- System.out.println("\nVelha ~> Ok " + username + ", agora vamos jogar!");
- if(secondPlayerName.equals("-")) {
- comecarJogoVeia(matrizJogo, carac, outroCarac, caracterPlayer, username);
- } else {
- comecarJogoVersus(matrizJogo, carac, outroCarac, caracterPlayer, username, secondPlayerName);
- }
- }
- public static void desenharJogo(int mat[][]) {
- char caracter[][] = new char[3][3];
- for(int i = 0; i <= 2; i++) {
- for(int j = 0; j <= 2; j++) {
- if(mat[i][j] == 1) {
- caracter[i][j] = 'X';
- } else if(mat [i][j] == 2) {
- caracter[i][j] = 'O';
- } else {
- caracter[i][j] = '-';
- }
- }
- }
- System.out.println("\n A B C");
- System.out.println("1 " + caracter[0][0] + " " + caracter[0][1] + " " + caracter[0][2] +
- "\n2 " + caracter[1][0] + " " + caracter[1][1] + " " + caracter[1][2] +
- "\n3 " + caracter[2][0] + " " + caracter[2][1] + " " + caracter[2][2]);
- }
- public static void vezJogador(String uName, int mat[][], int carc) {
- Scanner entry = new Scanner(System.in);
- System.out.print("\nVelha ~> Digite a coluna em que você quer jogar (A/B/C): ");
- char coluna = entry.next().charAt(0);
- int col = -255, lin = -255;
- switch(coluna) {
- case 'a': case 'A': {
- col = 0;
- break;
- }
- case 'b': case 'B': {
- col = 1;
- break;
- }
- case 'c': case 'C': {
- col = 2;
- break;
- }
- default: col = -255;
- }
- while(col == -255) {
- System.out.println("\nVelha ~> " + uName + ", eu não consegui entender esta coluna! Tá confuso?");
- System.out.print("Digite a coluna que você quer jogar (A/B/C): ");
- coluna = entry.next().charAt(0);
- switch(coluna) {
- case 'a': case 'A': {
- col = 0;
- break;
- }
- case 'b': case 'B': {
- col = 1;
- break;
- }
- case 'c': case 'C': {
- col = 2;
- break;
- }
- default: col = -255;
- }
- }
- System.out.print("Velha ~> Agora digite em qual linha você quer jogar (1/2/3): ");
- int linha = entry.nextInt();
- while(linha != 1 && linha != 2 && linha != 3) {
- System.out.println("\nVelha ~> " + uName + ", eu não consegui entender esta linha! Tá confuso?");
- System.out.print("Agora digite em qual linha você quer jogar (1/2/3): ");
- linha = entry.nextInt();
- }
- if(linha == 1) lin = 0;
- else if(linha == 2) lin = 1;
- else lin = 2;
- while(mat[lin][col] != 0) {
- System.out.println("\nNão é possível jogar aí, " + uName +"\nVamos tentar de novo.");
- vezJogador(uName, mat, carc);
- break;
- }
- mat[lin][col] = carc;
- desenharJogo(mat);
- }
- public static void vezSegundoJogador(String uName, int mat[][], int carc) {
- Scanner entry = new Scanner(System.in);
- System.out.print("\nVelha ~> Digite a coluna em que você quer jogar (A/B/C): ");
- char coluna = entry.next().charAt(0);
- int col = -255, lin = -255;
- switch(coluna) {
- case 'a': case 'A': {
- col = 0;
- break;
- }
- case 'b': case 'B': {
- col = 1;
- break;
- }
- case 'c': case 'C': {
- col = 2;
- break;
- }
- default: col = -255;
- }
- while(col == -255) {
- System.out.println("\nVelha ~> " + uName + ", eu não consegui entender esta coluna! Tá confuso?");
- System.out.print("Digite a coluna que você quer jogar (A/B/C): ");
- coluna = entry.next().charAt(0);
- switch(coluna) {
- case 'a': case 'A': {
- col = 0;
- break;
- }
- case 'b': case 'B': {
- col = 1;
- break;
- }
- case 'c': case 'C': {
- col = 2;
- break;
- }
- default: col = -255;
- }
- }
- System.out.print("Velha ~> Agora digite em qual linha você quer jogar (1/2/3): ");
- int linha = entry.nextInt();
- while(linha != 1 && linha != 2 && linha != 3) {
- System.out.println("\nVelha ~> " + uName + ", eu não consegui entender esta linha! Tá confuso?");
- System.out.print("Agora digite em qual linha você quer jogar (1/2/3): ");
- linha = entry.nextInt();
- }
- if(linha == 1) lin = 0;
- else if(linha == 2) lin = 1;
- else lin = 2;
- while(mat[lin][col] != 0) {
- System.out.println("\nNão é possível jogar aí, " + uName +"\nVamos tentar de novo.");
- vezSegundoJogador(uName, mat, carc);
- }
- mat[lin][col] = carc;
- desenharJogo(mat);
- }
- public static void vezVelha(int mat[][], int carc) {
- Random rand = new Random();
- int col = rand.nextInt(3);
- int lin = rand.nextInt(3);
- boolean validate = false;
- switch(mat[lin][col]) {
- case 0: {
- validate = true;
- break;
- }
- }
- while(!validate) {
- col = rand.nextInt(3);
- lin = rand.nextInt(3);
- switch(mat[lin][col]) {
- case 0: {
- validate = true;
- break;
- }
- }
- }
- mat[lin][col] = carc;
- System.out.println("\nVelha ~> Minha vez.");
- desenharJogo(mat);
- }
- public static int checarGanhador(int mat[][], int carc) {
- int retorn = 0;
- if(mat[0][0] == mat[0][1] && mat[0][1] == mat[0][2] && mat[0][0] != 0) retorn = mat[0][0];
- else if(mat[1][0] == mat[1][1] && mat[1][1] == mat[1][2] && mat[1][0] != 0) retorn = mat[1][0];
- else if(mat[2][0] == mat[2][1] && mat[2][1] == mat[2][2] && mat[2][0] != 0) retorn = mat[2][0];
- else if(mat[0][0] == mat[1][0] && mat[1][0] == mat[2][0] && mat[0][0] != 0) retorn = mat[0][0];
- else if(mat[0][1] == mat[1][1] && mat[1][1] == mat[2][1] && mat[0][1] != 0) retorn = mat[0][1];
- else if(mat[0][2] == mat[1][2] && mat[1][2] == mat[2][2] && mat[0][2] != 0) retorn = mat[0][2];
- else if(mat[0][0] == mat[1][1] && mat[1][1] == mat[2][2] && mat[0][0] != 0) retorn = mat[0][0];
- else if(mat[2][0] == mat[1][1] && mat[1][1] == mat[0][2] && mat[2][0] != 0) retorn = mat[2][0];
- else retorn = 0;
- return retorn;
- }
- public static void falasVeia(int ganhador, int jogadasVeia, int jogadasPlayer, boolean deuVelha) {
- Random rand = new Random();
- int fala = rand.nextInt(4);
- if(!deuVelha && ganhador != 0) {
- if(ganhador == 1) {//Primeiro Jogador
- if(jogadasPlayer == 3) {
- switch(fala) {
- case 0: System.out.println("Velha ~> Nossa! Você é muito bom e essa foi muito rápida, parabéns!"); break;
- case 1: System.out.println("Velha ~> O que você andou fazendo pra ficar bom assim?"); break;
- case 2: System.out.println("Velha ~> Acho que te subestimei! Essa foi muito rápida"); break;
- case 3: System.out.println("Velha ~> Acho que vou voltar a fazer tricô. Você ganhou muito rápido"); break;
- }
- }
- else if(jogadasPlayer >= 4) {
- switch(fala) {
- case 0: System.out.println("Velha ~> Ah, minha novela já vai começar mesmo..."); break;
- case 1: System.out.println("Velha ~> Ganhei, mas foi difícil! Você andou estudando minhas jogadas, né?"); break;
- case 2: System.out.println("Velha ~> Essa foi quase!"); break;
- case 3: System.out.println("Velha ~> Aposto que isso é efeito do chá que eu fiz para você."); break;
- }
- }
- }
- else if(ganhador == 2) {//veia
- if(jogadasPlayer == 3) {
- switch(fala) {
- case 0: System.out.println("Velha ~> AHA! A véia aqui não é fraca não!"); break;
- case 1: System.out.println("Velha ~> Chupa essa jovem."); break;
- case 2: System.out.println("Velha ~> E ai, gostou?"); break;
- case 3: System.out.println("Velha ~> Na próxima agente aposta cinquentinha."); break;
- }
- }
- else if(jogadasPlayer >= 4) {
- switch(fala) {
- case 0: System.out.println("Velha ~> Essa foi suada hein! Vamos mais uma?"); break;
- case 1: System.out.println("Velha ~> A véia aqui ainda sabe jogar!"); break;
- case 2: System.out.println("Velha ~> E então, aprendeu?"); break;
- case 3: System.out.println("Velha ~> Aposto que você não conhecia essa jogada."); break;
- }
- }
- }
- } else {
- switch(fala) {
- case 0: System.out.println("Velha ~> Nós 2 estamos em um nível muito parecido, meu jovem!"); break;
- case 1: System.out.println("Velha ~> Meu jovem, essa foi difícil!"); break;
- case 2: System.out.println("Velha ~> Deu véia."); break;
- case 3: System.out.println("Velha ~> Empate?! Não acredito!"); break;
- }
- }
- }
- public static void comecarJogoVeia(int mat[][], int carac, int outroCarac, int caracterPlayer, String username) {
- Scanner entry = new Scanner(System.in);
- int jogadasTotal = 9, jogadasPlayer = 0, jogadasVeia = 0;
- boolean jogoAcabado = false, deuVeia = false;
- while(!jogoAcabado) {
- System.out.println("\nSua vez.");
- vezJogador(username, mat, carac);
- jogadasPlayer++;
- int test = checarGanhador(mat, carac);
- if(test == carac) {
- System.out.println("");
- falasVeia(1, jogadasVeia, jogadasPlayer, false);
- jogoAcabado = true;
- deuVeia = false;
- break;
- }
- jogadasTotal--;
- vezVelha(mat, outroCarac);
- jogadasVeia++;
- int test2 = checarGanhador(mat, outroCarac);
- if(test2 == outroCarac) {
- System.out.println("");
- falasVeia(2, jogadasVeia, jogadasPlayer, false);
- jogoAcabado = true;
- deuVeia = false;
- break;
- }
- jogadasTotal--;
- if(jogadasTotal == 0 && jogoAcabado == false) {
- falasVeia(0, jogadasVeia, jogadasPlayer, true);
- jogoAcabado = true;
- deuVeia = true;
- break;
- }
- }
- for(int i = 0; i <= 2; i++) {
- for(int j = 0; j <= 2; j++) {
- mat[i][j] = 0;
- }
- }
- System.out.println("Velha ~> Quer jogar outra antes que o chá esfrie?");
- System.out.print("(1 - sair | 2 - jogar novamente | 3 - jogar multiplayer): ");
- int jogarOutra = entry.nextInt();
- switch(jogarOutra) {
- case 1: break;
- case 2: {
- desenharJogo(mat);
- comecarJogoVeia(mat, carac, outroCarac, caracterPlayer, username);
- break;
- }
- case 3: {
- System.out.print("\nQual é o nome do seu amigo?");
- String secondPlayerName = entry.next();
- System.out.print("O jogo começou.\n");
- desenharJogo(mat);
- comecarJogoVersus(mat, carac, outroCarac, caracterPlayer, username, secondPlayerName);
- break;
- }
- default: {
- System.out.println("Velha ~> Não identifiquei essa opção meu jovem!");
- System.out.println("O jogo foi encerrado.");
- break;
- }
- }
- }
- public static void comecarJogoVersus(int mat[][], int carac, int outroCarac, int caracterPlayer, String username, String secondUser) {
- Scanner entry = new Scanner(System.in);
- int jogadasTotal = 9, jogadasPlayer = 0, jogadasSegundoJogador = 0;
- boolean jogoAcabado = false, deuVeia = false;
- while(!jogoAcabado) {
- System.out.println("\n" + username + ", sua vez.");
- vezJogador(username, mat, carac);
- jogadasPlayer++;
- int test = checarGanhador(mat, carac);
- if(test == carac) {
- System.out.println("");
- System.out.println(username + " ganhou.");
- jogoAcabado = true;
- deuVeia = false;
- break;
- }
- jogadasTotal--;
- System.out.println("\n" + secondUser + ", sua vez.");
- vezSegundoJogador(secondUser, mat, outroCarac);
- jogadasSegundoJogador++;
- int test2 = checarGanhador(mat, outroCarac);
- if(test2 == outroCarac) {
- System.out.println("");
- System.out.println(secondUser + " ganhou.");
- jogoAcabado = true;
- deuVeia = false;
- break;
- }
- jogadasTotal--;
- if(jogadasTotal == 0 && jogoAcabado == false) {
- falasVeia(0, jogadasSegundoJogador, jogadasPlayer, true);
- jogoAcabado = true;
- deuVeia = true;
- break;
- }
- }
- for(int i = 0; i <= 2; i++) {
- for(int j = 0; j <= 2; j++) {
- mat[i][j] = 0;
- }
- }
- System.out.println("Velha ~> Quer jogar outra antes que o chá esfrie?");
- System.out.print("(1 - sair | 2 - jogar novamente | 3 - jogar singleplayer): ");
- int jogarOutra = entry.nextInt();
- switch(jogarOutra) {
- case 1: break;
- case 2: {
- desenharJogo(mat);
- comecarJogoVeia(mat, carac, outroCarac, caracterPlayer, username);
- break;
- }
- case 3: {
- desenharJogo(mat);
- comecarJogoVeia(mat, carac, outroCarac, caracterPlayer, username);
- break;
- }
- default: {
- System.out.println("Velha ~> Não identifiquei essa opção meu jovem!");
- System.out.println("O jogo foi encerrado.");
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement