diff --git a/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java b/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java index 7904e97..d6f2099 100644 --- a/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java +++ b/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java @@ -15,6 +15,7 @@ public class Mavenproject4 { Random random = new Random(); while (true) { + System.out.println("\n╔════════════════════════════════════╗"); System.out.println("║ PORTAL PRINCIPAL ║"); System.out.println("╠════════════════════════════════════╣"); @@ -31,31 +32,40 @@ public class Mavenproject4 { // REGISTAR case 1: + System.out.print("Nome: "); String email = scanner.nextLine(); + System.out.print("Senha: "); String senha = scanner.nextLine(); + escreverNoFicheiro(email, senha, "0", "utilizadores.txt"); + System.out.println("Registado com sucesso!"); break; // LOGIN case 2: + System.out.print("Nome: "); String emailLogin = scanner.nextLine(); + System.out.print("Senha: "); String senhaLogin = scanner.nextLine(); + if (verificarLogin(emailLogin, senhaLogin, "utilizadores.txt")) { + System.out.println("Login bem-sucedido!"); while (true) { + System.out.println("\n╔════════════════════════════════════╗"); System.out.println("║ MENU UTILIZADOR ║"); System.out.println("╠════════════════════════════════════╣"); System.out.println("║ 1 ➜ Depositar ║"); System.out.println("║ 2 ➜ Ver Saldo ║"); System.out.println("║ 3 ➜ Menu de Jogos ║"); - System.out.println("║ 4 ➜ Sair ║"); + System.out.println("║ 4 ➜ Logout ║"); System.out.println("╚════════════════════════════════════╝"); System.out.print("Opção: "); @@ -63,19 +73,31 @@ public class Mavenproject4 { switch (op) { + // DEPOSITAR case 1: + System.out.print("Valor a depositar: "); int deposito = scanner.nextInt(); + saldoAtual += deposito; + atualizarSaldo("utilizadores.txt"); + System.out.println("Novo saldo: " + saldoAtual); + break; + // VER SALDO case 2: + System.out.println("Seu saldo é: " + saldoAtual); + break; + // MENU DE JOGOS case 3: + + menuJogos: while (true) { System.out.println("\n╔════════════════════════════════════╗"); @@ -84,93 +106,115 @@ public class Mavenproject4 { System.out.println("║ 1 ➜ Golden Number ║"); System.out.println("║ 2 ➜ Slot Machine Simples ║"); System.out.println("║ 3 ➜ Par ou Ímpar ║"); - System.out.println("║ 4 ➜ Sair ║"); + System.out.println("║ 4 ➜ Voltar ║"); System.out.println("╚════════════════════════════════════╝"); System.out.print("Opção: "); + int opcao = scanner.nextInt(); + switch (opcao) { + // GOLDEN NUMBER case 1: + System.out.println("|==========| Golden Number |==========|"); + System.out.println("Quanto desejas apostar?"); int dinheiroApostado = scanner.nextInt(); + if (dinheiroApostado > saldoAtual) { + System.out.println("Saldo insuficiente!"); break; } System.out.println("Introduza um número de 1 a 9"); int numeroEscolhido = scanner.nextInt(); + saldoAtual -= dinheiroApostado; + atualizarSaldo("utilizadores.txt"); + int numeroRandom = random.nextInt(9) + 1; - int saldo2x = dinheiroApostado * 2; - System.out.println("O número aleatório entre 1 a 9 foi " + numeroRandom); + + System.out.println("O número aleatório foi: " + numeroRandom); if (numeroEscolhido == numeroRandom) { - System.out.println("GANHASTE! Conseguiu adquirir o dobro do dinheiro que apostaste!"); + + int premio = dinheiroApostado * 2; + + saldoAtual += premio; + + atualizarSaldo("utilizadores.txt"); + + System.out.println("GANHASTE!"); + System.out.println("Recebeste: " + premio); } else { System.out.println("Perdeste..."); - } - System.out.println("Seu saldo atual é: " + saldoAtual); + System.out.println("Saldo atual: " + saldoAtual); + break; + // SLOT MACHINE case 2: - System.out.println("|==========| Slot Machine |==========|"); - System.out.println("Regras: \n" - + "🍒 🍒 🍒 = x5\n" - + "💎 💎 💎 = x50\n" - + "7 7 7 = JackPot"); - System.out.print("Insira o valor a apostar: "); + System.out.println("|==========| Slot Machine |==========|"); + System.out.println("Regras: "); + System.out.println("🍒 🍒 🍒 = x5"); + System.out.println("💎 💎 💎 = x50"); + System.out.println("🎰 🎰 🎰 = x1000"); + + System.out.print("Valor a apostar: "); int dinheiroApostado2 = scanner.nextInt(); + if (dinheiroApostado2 > saldoAtual) { + System.out.println("Saldo insuficiente!"); break; - } + saldoAtual -= dinheiroApostado2; + atualizarSaldo("utilizadores.txt"); - String[] simbolos = {"🍒", "💎", "7"}; + String[] simbolos = {"🍒", "💎", "🎰"}; String s1 = simbolos[random.nextInt(simbolos.length)]; String s2 = simbolos[random.nextInt(simbolos.length)]; String s3 = simbolos[random.nextInt(simbolos.length)]; System.out.println("\nA rodar..."); - System.out.println("| " + s1 + " | " + s2 + " | " + s3 + " |"); + if (s1.equals("🍒") && s2.equals("🍒") && s3.equals("🍒")) { int premio = dinheiroApostado2 * 5; + saldoAtual += premio; + System.out.println("🍒🍒🍒 GANHASTE x5!"); System.out.println("Prémio: " + premio); + } else if (s1.equals("💎") && s2.equals("💎") && s3.equals("💎")) { int premio = dinheiroApostado2 * 50; - saldoAtual += premio; - System.out.println("💎💎💎 MEGA WIN x50!"); + saldoAtual += premio; + + System.out.println("💎💎💎 MEGA WIN x50!"); System.out.println("Prémio: " + premio); - } else if (s1.equals("7") && s2.equals("7") && s3.equals("7")) { + } else if (s1.equals("🎰") && s2.equals("🎰") && s3.equals("🎰")) { int premio = dinheiroApostado2 * 1000; - saldoAtual += premio; - System.out.println("🎰 JACKPOT 777 x1000 🎰"); - System.out.println("Prémio: " + premio); - } else if (s1.equals(s2) && s2.equals(s3)) { - - int premio = dinheiroApostado2 * 2; saldoAtual += premio; - System.out.println("3 símbolos iguais! x2"); + + System.out.println("🎰 JACKPOT x1000 🎰"); System.out.println("Prémio: " + premio); } else { @@ -179,39 +223,55 @@ public class Mavenproject4 { } atualizarSaldo("utilizadores.txt"); + System.out.println("Saldo atual: " + saldoAtual); + break; + // PAR OU ÍMPAR case 3: - System.out.println("|==========| Par ou Ímpar |==========|"); - System.out.println("Regras do jogo: Dependendo do que escolher (Par ou Ímpar) irá ser sorteado um numero aleatório (Par ou Ímpar) se Ganhar multiplica-se por 2"); - System.out.println("Qunto desejas apostar?"); + System.out.println("|==========| Par ou Ímpar |==========|"); + + System.out.println("Quanto desejas apostar?"); int dinheiroApostado3 = scanner.nextInt(); + if (dinheiroApostado3 > saldoAtual) { + System.out.println("Saldo insuficiente!"); break; } - System.out.println("Escolhe:"); System.out.println("1 - Par"); System.out.println("2 - Ímpar"); + int escolha = scanner.nextInt(); + if (escolha != 1 && escolha != 2) { + System.out.println("Opção inválida!"); break; } saldoAtual -= dinheiroApostado3; + atualizarSaldo("utilizadores.txt"); + int numero = random.nextInt(100) + 1; + System.out.println("Número sorteado: " + numero); + boolean numeroPar = numero % 2 == 0; - if ((numeroPar && escolha == 1) || (!numeroPar && escolha == 2)) { + if ((numeroPar && escolha == 1) + || (!numeroPar && escolha == 2)) { + int premio = dinheiroApostado3 * 2; + saldoAtual += premio; + atualizarSaldo("utilizadores.txt"); + System.out.println("GANHASTE!"); System.out.println("Recebeste: " + premio); @@ -221,21 +281,26 @@ public class Mavenproject4 { } System.out.println("Saldo atual: " + saldoAtual); + break; + // VOLTAR case 4: - System.out.println("Adeus!"); - return; + System.out.println("A voltar ao Menu Utilizador..."); + break menuJogos; default: System.out.println("Opção inválida"); - } } + break; + + // LOGOUT case 4: + System.out.println("Logout..."); break; @@ -244,130 +309,143 @@ public class Mavenproject4 { System.out.println("Opção inválida"); } - if (op == 3) { + if (op == 4) { break; } } } else { - System.out.println("Nome ou senha incorretos."); + System.out.println("Nome ou senha incorretos."); } break; // SAIR case 3: - System.out.println("Adeus!"); + System.out.println("Adeus!"); return; default: System.out.println("Opção inválida"); - } - } - } - // ESCREVER UTILIZADOR + // ESCREVER UTILIZADOR private static void escreverNoFicheiro(String email, String senha, String saldo, String nomeFicheiro) { try { + BufferedWriter bw = new BufferedWriter(new FileWriter(nomeFicheiro, true)); + bw.write(email); bw.newLine(); + bw.write(senha); bw.newLine(); + bw.write(saldo); bw.newLine(); + bw.close(); } catch (IOException e) { System.out.println("Erro ao escrever."); - } - } // LER FICHEIRO private static String[] lerFicheiro(String nomeFicheiro) { try { + File ficheiro = new File(nomeFicheiro); + if (!ficheiro.exists()) { ficheiro.createNewFile(); } Scanner leitor = new Scanner(ficheiro); + String conteudo = ""; + while (leitor.hasNextLine()) { conteudo += leitor.nextLine() + "\n"; } leitor.close(); + return conteudo.split("\n"); + } catch (IOException e) { System.out.println("Erro ao ler ficheiro."); return new String[0]; } - } - // LOGIN + CARREGAR SALDO + // LOGIN private static boolean verificarLogin(String email, String senha, String nomeFicheiro) { try { + String[] dados = lerFicheiro(nomeFicheiro); + for (int i = 0; i < dados.length; i += 3) { + if (i + 2 >= dados.length) { break; } String emailGuardado = dados[i]; String senhaGuardada = dados[i + 1]; + int saldo = Integer.parseInt(dados[i + 2]); - if (email.equals(emailGuardado) && senha.equals(senhaGuardada)) { + + if (email.equals(emailGuardado) + && senha.equals(senhaGuardada)) { + saldoAtual = saldo; indexUtilizador = i; + return true; } - } } catch (Exception e) { System.out.println("Erro no login."); - } return false; - } - // ATUALIZAR SALDO NO FICHEIRO + // ATUALIZAR SALDO private static void atualizarSaldo(String nomeFicheiro) { try { + String[] dados = lerFicheiro(nomeFicheiro); + dados[indexUtilizador + 2] = String.valueOf(saldoAtual); + BufferedWriter bw = new BufferedWriter(new FileWriter(nomeFicheiro)); + for (String linha : dados) { + bw.write(linha); bw.newLine(); } bw.close(); + } catch (IOException e) { System.out.println("Erro ao atualizar saldo."); - } - } - }