From 7d50fb75210edca7454878115547bcd4a83b8e5a Mon Sep 17 00:00:00 2001 From: 250408 <250408@localhost> Date: Fri, 8 May 2026 13:34:56 +0100 Subject: [PATCH] Quase tudo comleto --- .../mavenproject4/Mavenproject4.java | 373 ++++++++++++++++++ 1 file changed, 373 insertions(+) create mode 100644 src/main/java/com/mycompany/mavenproject4/Mavenproject4.java diff --git a/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java b/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java new file mode 100644 index 0000000..7904e97 --- /dev/null +++ b/src/main/java/com/mycompany/mavenproject4/Mavenproject4.java @@ -0,0 +1,373 @@ +package com.mycompany.mavenproject4; + +import java.io.*; +import java.util.Random; +import java.util.Scanner; + +public class Mavenproject4 { + + static int saldoAtual = 0; + static int indexUtilizador = -1; + + public static void main(String[] args) { + + Scanner scanner = new Scanner(System.in); + Random random = new Random(); + + while (true) { + System.out.println("\n╔════════════════════════════════════╗"); + System.out.println("║ PORTAL PRINCIPAL ║"); + System.out.println("╠════════════════════════════════════╣"); + System.out.println("║ 1 ➜ Registar ║"); + System.out.println("║ 2 ➜ Iniciar Sessão ║"); + System.out.println("║ 3 ➜ Sair ║"); + System.out.println("╚════════════════════════════════════╝"); + System.out.print("Opção: "); + + int R = scanner.nextInt(); + 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 ➜ Sair ║"); + System.out.println("╚════════════════════════════════════╝"); + System.out.print("Opção: "); + + int op = scanner.nextInt(); + + switch (op) { + + case 1: + System.out.print("Valor a depositar: "); + int deposito = scanner.nextInt(); + saldoAtual += deposito; + atualizarSaldo("utilizadores.txt"); + System.out.println("Novo saldo: " + saldoAtual); + break; + + case 2: + System.out.println("Seu saldo é: " + saldoAtual); + break; + + case 3: + while (true) { + + System.out.println("\n╔════════════════════════════════════╗"); + System.out.println("║ MENU DE JOGOS ║"); + System.out.println("╠════════════════════════════════════╣"); + 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("╚════════════════════════════════════╝"); + System.out.print("Opção: "); + int opcao = scanner.nextInt(); + switch (opcao) { + + 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); + + if (numeroEscolhido == numeroRandom) { + System.out.println("GANHASTE! Conseguiu adquirir o dobro do dinheiro que apostaste!"); + + } else { + + System.out.println("Perdeste..."); + + } + + System.out.println("Seu saldo atual é: " + saldoAtual); + break; + + 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: "); + int dinheiroApostado2 = scanner.nextInt(); + if (dinheiroApostado2 > saldoAtual) { + System.out.println("Saldo insuficiente!"); + break; + + } + saldoAtual -= dinheiroApostado2; + atualizarSaldo("utilizadores.txt"); + + String[] simbolos = {"🍒", "💎", "7"}; + + 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("7") && s2.equals("7") && s3.equals("7")) { + + 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("Prémio: " + premio); + + } else { + + System.out.println("Perdeste!"); + } + + atualizarSaldo("utilizadores.txt"); + System.out.println("Saldo atual: " + saldoAtual); + break; + + 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?"); + + 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)) { + 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); + break; + + case 4: + System.out.println("Adeus!"); + + return; + + default: + + System.out.println("Opção inválida"); + + } + } + + case 4: + System.out.println("Logout..."); + break; + + default: + + System.out.println("Opção inválida"); + } + + if (op == 3) { + 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 + 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 + 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)) { + saldoAtual = saldo; + indexUtilizador = i; + return true; + } + + } + + } catch (Exception e) { + + System.out.println("Erro no login."); + + } + + return false; + + } + + // ATUALIZAR SALDO NO FICHEIRO + 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."); + + } + + } + +}