diff --git a/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java b/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java index 572ab40..1874b73 100644 --- a/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java +++ b/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java @@ -16,7 +16,6 @@ public class Mavenproject4 { Random random = new Random(); while (true) { - System.out.println("\n╔════════════════════════════════════╗"); System.out.println("║ PORTAL PRINCIPAL ║"); System.out.println("╠════════════════════════════════════╣"); @@ -30,94 +29,106 @@ public class Mavenproject4 { scanner.nextLine(); switch (R) { - // 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 ➜ Logout ║"); + System.out.println("║ 2 ➜ Sacar Dinheiro ║"); + System.out.println("║ 3 ➜ Ver Saldo ║"); + System.out.println("║ 4 ➜ Menu de Jogos ║"); + System.out.println("║ 5 ➜ Logout ║"); if (admin) { - System.out.println("║ 5 ➜ Painel Admin ║"); + + System.out.println("║ 6 ➜ Painel Admin ║"); + } System.out.println("╚════════════════════════════════════╝"); System.out.print("Opção: "); - int op = scanner.nextInt(); switch (op) { - // DEPOSITAR case 1: System.out.print("Valor a depositar: "); int deposito = scanner.nextInt(); - if (deposito > 100000) { - System.out.println("Não podes depositar mais de 100.000€!"); break; } if (deposito <= 0) { - System.out.println("Valor inválido!"); break; + } saldoAtual += deposito; - atualizarSaldo("utilizadores.txt"); - System.out.println("Novo saldo: " + saldoAtual); break; - // VER SALDO + // SACAR DINHEIRO case 2: + System.out.print("Valor a sacar: "); + int saque = scanner.nextInt(); - System.out.println("Seu saldo é: " + saldoAtual); + if (saque <= 0) { + System.out.println("Valor inválido!"); + + break; + + } + + if (saque > saldoAtual) { + System.out.println("Saldo insuficiente!"); + break; + + } + + saldoAtual -= saque; + atualizarSaldo("utilizadores.txt"); + System.out.println("Levantaste: " + saque + "€"); + System.out.println("Saldo atual: " + saldoAtual + "€"); break; - // MENU DE JOGOS + // VER SALDO case 3: + System.out.println("Seu saldo é: " + saldoAtual + "€"); + break; + // MENU DE JOGOS + case 4: menuJogos: - while (true) { + while (true) { System.out.println("\n╔════════════════════════════════════╗"); System.out.println("║ MENU DE JOGOS ║"); System.out.println("╠════════════════════════════════════╣"); @@ -131,181 +142,231 @@ public class Mavenproject4 { int opcao = scanner.nextInt(); switch (opcao) { - // GOLDEN NUMBER + case 1: + while (true) { - System.out.println("|==========| Golden Number |==========|"); + System.out.println("|==========| Golden Number |==========|"); - System.out.println("Quanto desejas apostar?"); - int dinheiroApostado = scanner.nextInt(); + System.out.println("Quanto desejas apostar?"); + int dinheiroApostado = scanner.nextInt(); - if (dinheiroApostado > saldoAtual) { + if (dinheiroApostado > saldoAtual) { + System.out.println("Saldo insuficiente!"); + break; + } - System.out.println("Saldo insuficiente!"); - break; + if (dinheiroApostado <= 0) { + System.out.println("Valor inválido!"); + break; + } + + System.out.println("Introduza um número de 1 a 9"); + int numeroEscolhido = scanner.nextInt(); + + if (numeroEscolhido > 9 || numeroEscolhido < 1) { + System.out.println("Número não reconhecido"); + break; + } + + saldoAtual -= dinheiroApostado; + atualizarSaldo("utilizadores.txt"); + + int numeroRandom = random.nextInt(9) + 1; + + System.out.println("O número aleatório foi: " + numeroRandom); + + if (numeroEscolhido == numeroRandom) { + + 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("Saldo atual: " + saldoAtual); + + System.out.println("\nDesejas continuar?"); + System.out.println("1 - Sim"); + System.out.println("2 - Não"); + + int continuar = scanner.nextInt(); + + if (continuar != 1) { + break; + } } - System.out.println("Introduza um número de 1 a 9"); - int numeroEscolhido = scanner.nextInt(); - if (numeroEscolhido > 9) { - System.out.println("Número não reconhecido"); - break; - } + break; - saldoAtual -= dinheiroApostado; + //////////////////// SLOT MACHINE //////////////////// + case 2: + while (true) { - atualizarSaldo("utilizadores.txt"); + System.out.println("|==========| Slot Machine |==========|"); - int numeroRandom = random.nextInt(9) + 1; + System.out.println("Regras:"); + System.out.println("🍒 🍒 🍒 = x5"); + System.out.println("💎 💎 💎 = x50"); + System.out.println("🎰 🎰 🎰 = x1000"); - System.out.println("O número aleatório foi: " + numeroRandom); + System.out.print("Valor a apostar: "); - if (numeroEscolhido == numeroRandom) { + int dinheiroApostado2 = scanner.nextInt(); - int premio = dinheiroApostado * 2; + if (dinheiroApostado2 > saldoAtual) { + System.out.println("Saldo insuficiente!"); + break; + } - saldoAtual += premio; + if (dinheiroApostado2 <= 0) { + System.out.println("Valor inválido!"); + break; + } + + saldoAtual -= dinheiroApostado2; + atualizarSaldo("utilizadores.txt"); + + 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!"); + System.out.println("Prémio: " + premio); + + } else if (s1.equals("🎰") && s2.equals("🎰") && s3.equals("🎰")) { + + int premio = dinheiroApostado2 * 1000; + + saldoAtual += premio; + + System.out.println("🎰 JACKPOT x1000 🎰"); + System.out.println("Prémio: " + premio); + + } else { + + System.out.println("Perdeste!"); + + } atualizarSaldo("utilizadores.txt"); - System.out.println("GANHASTE!"); - System.out.println("Recebeste: " + premio); + System.out.println("Saldo atual: " + saldoAtual); - } else { + System.out.println("\nDesejas continuar?"); + System.out.println("1 - Sim"); + System.out.println("2 - Não"); - System.out.println("Perdeste..."); + int continuar = scanner.nextInt(); + + if (continuar != 1) { + break; + } } - System.out.println("Saldo atual: " + saldoAtual); - break; + //////////////////// PAR OU ÍMPAR //////////////////// +case 3: + while (true) { - // SLOT MACHINE - case 2: - - System.out.println("|==========| Slot Machine |==========|"); - System.out.println("Regras:"); - System.out.println("🍒 🍒 🍒 = x5"); - System.out.println("💎 💎 💎 = x50"); - System.out.println("🎰 🎰 🎰 = x1000"); + System.out.println("|==========| Par ou Ímpar |==========|"); - System.out.print("Valor a apostar: "); - int dinheiroApostado2 = scanner.nextInt(); + System.out.println("Quanto desejas apostar?"); + int dinheiroApostado3 = scanner.nextInt(); - if (dinheiroApostado2 > saldoAtual) { + if (dinheiroApostado3 > saldoAtual) { + System.out.println("Saldo insuficiente!"); + break; + } - System.out.println("Saldo insuficiente!"); - - break; - - } + if (dinheiroApostado3 <= 0) { + System.out.println("Valor inválido!"); + break; + } - saldoAtual -= dinheiroApostado2; + System.out.println("1 - Par"); + System.out.println("2 - Ímpar"); - atualizarSaldo("utilizadores.txt"); + int escolha = scanner.nextInt(); - 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!"); - System.out.println("Prémio: " + premio); - - } else if (s1.equals("🎰") && s2.equals("🎰") && s3.equals("🎰")) { - - int premio = dinheiroApostado2 * 1000; - saldoAtual += premio; - - System.out.println("🎰 JACKPOT x1000 🎰"); - System.out.println("Prémio: " + premio); - - } else { - - System.out.println("Perdeste!"); - } - - atualizarSaldo("utilizadores.txt"); - - System.out.println("Saldo atual: " + saldoAtual); - - break; - - // PAR OU ÍMPAR - case 3: - - 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("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)) { - - int premio = dinheiroApostado3 * 2; - - saldoAtual += premio; + if (escolha != 1 && escolha != 2) { + System.out.println("Opção inválida!"); + break; + } + saldoAtual -= dinheiroApostado3; atualizarSaldo("utilizadores.txt"); - System.out.println("GANHASTE!"); - System.out.println("Recebeste: " + premio); + int numero = random.nextInt(100) + 1; - } else { + System.out.println("Número sorteado: " + numero); - System.out.println("Perdeste!"); + boolean numeroPar = numero % 2 == 0; + + 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); + + } else { + + System.out.println("Perdeste!"); + + } + + System.out.println("Saldo atual: " + saldoAtual); + + System.out.println("\nDesejas continuar?"); + System.out.println("1 - Sim"); + System.out.println("2 - Não"); + + int continuar = scanner.nextInt(); + + if (continuar != 1) { + break; + } } - System.out.println("Saldo atual: " + saldoAtual); - break; - // VOLTAR + case 4: System.out.println("A voltar ao Menu Utilizador..."); @@ -314,22 +375,24 @@ public class Mavenproject4 { default: System.out.println("Opção inválida"); + } + } break; // LOGOUT - case 4: + case 5: System.out.println("Logout..."); + break; // PAINEL ADMIN - case 5: + case 6: if (admin) { - System.out.println("\n╔════════════════════════════════════╗"); System.out.println("║ PAINEL DE ADMIN ║"); System.out.println("╚════════════════════════════════════╝"); @@ -337,52 +400,58 @@ public class Mavenproject4 { String[] dados = lerFicheiro("utilizadores.txt"); for (int i = 0; i < dados.length; i += 3) { - if (i + 2 >= dados.length) { break; + } System.out.println("━━━━━━━━━━━━━━━━━━━━━━━━━━"); System.out.println("Utilizador: " + dados[i]); System.out.println("Senha: " + dados[i + 1]); System.out.println("Saldo: " + dados[i + 2]); + } } else { System.out.println("Acesso negado."); + } break; default: - System.out.println("Opção inválida"); + } - if (op == 4) { + if (op == 5) { break; + } + } } else { - System.out.println("Nome ou senha incorretos."); + } break; // SAIR case 3: - System.out.println("Adeus!"); + return; default: - System.out.println("Opção inválida"); + } + } + } // ESCREVER UTILIZADOR @@ -391,70 +460,66 @@ public class Mavenproject4 { 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 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) @@ -463,50 +528,51 @@ public class Mavenproject4 { saldoAtual = saldo; indexUtilizador = i; - // ADMIN if (email.equalsIgnoreCase("Admin")) { - admin = true; } else { - admin = false; + } return true; + } + } } catch (Exception e) { System.out.println("Erro no login."); + } return false; + } // 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."); + } + } + }