TUdo Feito

This commit is contained in:
250408
2026-06-23 11:13:18 +01:00
parent a7fe7fb9e6
commit 1872b8881f

View File

@@ -1,223 +1,66 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
*/
package com.mycompany.tic_projeto_final; package com.mycompany.tic_projeto_final;
/**
*
* @author 250408
*/
import java.util.Random; import java.util.Random;
import java.util.Scanner; import java.util.Scanner;
import java.io.File; import java.io.*;
import java.io.FileWriter;
import java.io.PrintWriter;
public class TIC_Projeto_Final { public class TIC_Projeto_Final {
// Jogador
static String nome;
static int vida = 100; static int vida = 100;
static int fome = 100; static int fome = 100;
static int agua = 100; static int agua = 100;
static int moedas = 10; static int moedas = 10;
static int xp = 0; static int xp = 0;
static int nivel = 1; static int nivel = 1;
static int dias = 1;
// Inventário
static int comida = 2; static int comida = 2;
static int garrafas = 2; static int garrafas = 2;
static int kits = 1; static int kits = 1;
// Armas
static String arma = "Paus";
static int danoArma = 10;
static Scanner ler = new Scanner(System.in); static Scanner ler = new Scanner(System.in);
static Random random = new Random(); static Random random = new Random();
// ===================== ESTADO =====================
public static void estado() { public static void estado() {
System.out.println("\n===== ESTADO ====="); System.out.println("\n===== ESTADO =====");
System.out.println("Jogador: " + nome);
System.out.println("Vida: " + vida); System.out.println("Vida: " + vida);
System.out.println("Fome: " + fome); System.out.println("Fome: " + fome);
System.out.println("Água: " + agua); System.out.println("Água: " + agua);
System.out.println("Moedas: " + moedas); System.out.println("Moedas: " + moedas);
System.out.println("XP: " + xp); System.out.println("XP: " + xp);
System.out.println("Nível: " + nivel); System.out.println("Nível: " + nivel);
System.out.println("Dias: " + dias);
System.out.println("\n===== INVENTÁRIO ====="); System.out.println("\n===== INVENTÁRIO =====");
System.out.println("Comida: " + comida); System.out.println("Comida: " + comida);
System.out.println("Garrafas de Água: " + garrafas); System.out.println("Água: " + garrafas);
System.out.println("Kits Médicos: " + kits); System.out.println("Kits: " + kits);
System.out.println("Arma: " + arma);
} }
// ===================== XP =====================
public static void ganharXP(int valor) { public static void ganharXP(int valor) {
xp += valor; xp += valor;
if (xp >= nivel * 100) { while (xp >= nivel * 100) {
xp -= nivel * 100;
nivel++; nivel++;
System.out.println("\n⭐ Parabéns! Subiste para o nível " + nivel); System.out.println("\n⭐ Subiste para o nível " + nivel);
}
}
public static void procurar() {
int sorte = random.nextInt(4) + 1;
if (sorte == 1) {
comida++;
System.out.println("🍎 Encontraste comida!");
} else if (sorte == 2) {
garrafas++;
System.out.println("💧 Encontraste água!");
} else if (sorte == 3) {
moedas += 5;
System.out.println("💰 Encontraste 5 moedas!");
} else {
System.out.println("😔 Não encontraste nada.");
}
ganharXP(10);
passarTempo();
}
public static void lutar() {
String[] inimigos = {"Lobo", "Urso", "Javali"};
String inimigo = inimigos[random.nextInt(3)];
System.out.println("\n🐺 Encontraste um " + inimigo);
int ataqueJogador = random.nextInt(16) + 15;
if (ataqueJogador >= 20) {
int recompensa = random.nextInt(11) + 5;
moedas += recompensa;
System.out.println("🏆 Venceste a luta!");
System.out.println("💰 Ganhaste " + recompensa + " moedas!");
ganharXP(25);
} else {
int dano = random.nextInt(16) + 5;
vida -= dano;
System.out.println("💥 Sofreste " + dano + " de dano!");
}
passarTempo();
}
public static void comer() {
if (comida > 0) {
comida--;
fome += 25;
if (fome > 100) {
fome = 100;
}
System.out.println("🍔 Comeste.");
} else {
System.out.println("❌ Não tens comida.");
}
}
public static void beber() {
if (garrafas > 0) {
garrafas--;
agua += 25;
if (agua > 100) {
agua = 100;
}
System.out.println("🥤 Bebeste água.");
} else {
System.out.println("❌ Não tens água.");
}
}
public static void usarKit() {
if (kits > 0) {
kits--;
vida += 30;
if (vida > 100) {
vida = 100;
}
System.out.println("🩹 Usaste um kit médico.");
} else {
System.out.println("❌ Não tens kits médicos.");
}
}
public static void loja() {
System.out.println("\n===== LOJA =====");
System.out.println("1 - Comprar comida (5 moedas)");
System.out.println("2 - Comprar água (5 moedas)");
System.out.println("3 - Comprar kit médico (15 moedas)");
int op = ler.nextInt();
switch (op) {
case 1:
if (moedas >= 5) {
moedas -= 5;
comida++;
System.out.println("🍎 Compraste comida.");
} else {
System.out.println("❌ Moedas insuficientes.");
}
break;
case 2:
if (moedas >= 5) {
moedas -= 5;
garrafas++;
System.out.println("💧 Compraste água.");
} else {
System.out.println("❌ Moedas insuficientes.");
}
break;
case 3:
if (moedas >= 15) {
moedas -= 15;
kits++;
System.out.println("🩹 Compraste um kit médico.");
} else {
System.out.println("❌ Moedas insuficientes.");
}
break;
default:
System.out.println("Opção inválida.");
} }
} }
// ===================== TEMPO =====================
public static void passarTempo() { public static void passarTempo() {
dias++;
fome -= 5; fome -= 5;
agua -= 5; agua -= 5;
@@ -234,148 +77,280 @@ public class TIC_Projeto_Final {
} }
} }
public static void guardarJogo() { // ===================== EVENTOS =====================
public static void eventoAleatorio() {
int evento = random.nextInt(10);
switch (evento) {
case 0:
vida -= 10;
System.out.println("🐍 Cobra atacou-te!");
break;
case 1:
moedas += 10;
System.out.println("💰 Encontraste tesouro!");
break;
case 2:
kits++;
System.out.println("🩹 Encontraste kit médico!");
break;
case 3:
agua += 10;
System.out.println("🌧️ Chuva aumentou a água!");
break;
}
}
// ===================== PROCURAR =====================
public static void procurar() {
int sorte = random.nextInt(4);
switch (sorte) {
case 0:
comida++;
System.out.println("🍎 Encontraste comida!");
break;
case 1:
garrafas++;
System.out.println("💧 Encontraste água!");
break;
case 2:
moedas += 5;
System.out.println("💰 Encontraste moedas!");
break;
default:
System.out.println("😔 Não encontraste nada.");
}
eventoAleatorio();
ganharXP(10);
passarTempo();
}
// ===================== LUTA =====================
public static void lutar() {
String[] inimigos = {"Lobo", "Urso", "Javali"};
String inimigo = inimigos[random.nextInt(inimigos.length)];
System.out.println("\n🐺 Encontraste um " + inimigo);
int vidaInimigo = 40 + random.nextInt(30);
while (vidaInimigo > 0 && vida > 0) {
int ataqueJogador = random.nextInt(10) + danoArma;
int danoInimigo = random.nextInt(10) + 5;
vidaInimigo -= ataqueJogador;
vida -= danoInimigo;
System.out.println("Tu atacaste: -" + ataqueJogador);
System.out.println("Inimigo atacou: -" + danoInimigo);
}
if (vida > 0) {
int recompensa = random.nextInt(10) + 5;
moedas += recompensa;
System.out.println("🏆 Venceste! +" + recompensa + " moedas");
ganharXP(25);
}
passarTempo();
}
// ===================== CONSUMO =====================
public static void comer() {
if (comida > 0) {
comida--;
fome = Math.min(100, fome + 25);
System.out.println("🍔 Comeste.");
} else {
System.out.println("❌ Sem comida.");
}
}
public static void beber() {
if (garrafas > 0) {
garrafas--;
agua = Math.min(100, agua + 25);
System.out.println("🥤 Bebeste água.");
} else {
System.out.println("❌ Sem água.");
}
}
public static void usarKit() {
if (kits > 0) {
kits--;
vida = Math.min(100, vida + 30);
System.out.println("🩹 Usaste kit.");
} else {
System.out.println("❌ Sem kits.");
}
}
// ===================== LOJA =====================
public static void loja() {
System.out.println("\n===== LOJA =====");
System.out.println("💰 Tens " + moedas + " moedas");
System.out.println("\n1 - Comida (5 moedas)");
System.out.println("2 - Água (5 moedas)");
System.out.println("3 - Kit (15 moedas)");
System.out.println("4 - Faca (25 moedas)");
System.out.println("5 - Espada (50 moedas)");
int op = ler.nextInt();
switch (op) {
case 1:
if (moedas >= 5) { moedas -= 5; comida++; }
break;
case 2:
if (moedas >= 5) { moedas -= 5; garrafas++; }
break;
case 3:
if (moedas >= 15) { moedas -= 15; kits++; }
break;
case 4:
if (moedas >= 25) {
moedas -= 25;
arma = "Faca";
danoArma = 20;
}
break;
case 5:
if (moedas >= 50) {
moedas -= 50;
arma = "Espada";
danoArma = 35;
}
break;
}
}
// ===================== SAVE =====================
public static void guardar() {
try { try {
PrintWriter p = new PrintWriter(new FileWriter("save.txt"));
PrintWriter ficheiro = new PrintWriter(new FileWriter("save.txt")); p.println(nome);
p.println(vida);
ficheiro.println(vida); p.println(fome);
ficheiro.println(fome); p.println(agua);
ficheiro.println(agua); p.println(moedas);
ficheiro.println(moedas); p.println(xp);
ficheiro.println(xp); p.println(nivel);
ficheiro.println(nivel); p.println(dias);
ficheiro.println(comida); p.println(comida);
ficheiro.println(garrafas); p.println(garrafas);
ficheiro.println(kits); p.println(kits);
p.println(arma);
ficheiro.close(); p.println(danoArma);
System.out.println("💾 Jogo guardado com sucesso!");
p.close();
System.out.println("💾 Guardado!");
} catch (Exception e) { } catch (Exception e) {
System.out.println("Erro ao guardar.");
System.out.println("Erro ao guardar jogo.");
} }
} }
public static void carregarJogo() { // ===================== LOAD =====================
public static void carregar() {
try { try {
File f = new File("save.txt");
if (!f.exists()) return;
File ficheiro = new File("save.txt"); Scanner s = new Scanner(f);
if (!ficheiro.exists()) { nome = s.nextLine();
System.out.println("⚠️ Não existe jogo guardado."); vida = Integer.parseInt(s.nextLine());
return; fome = Integer.parseInt(s.nextLine());
} agua = Integer.parseInt(s.nextLine());
moedas = Integer.parseInt(s.nextLine());
Scanner leitor = new Scanner(ficheiro); xp = Integer.parseInt(s.nextLine());
nivel = Integer.parseInt(s.nextLine());
vida = Integer.parseInt(leitor.nextLine()); dias = Integer.parseInt(s.nextLine());
fome = Integer.parseInt(leitor.nextLine()); comida = Integer.parseInt(s.nextLine());
agua = Integer.parseInt(leitor.nextLine()); garrafas = Integer.parseInt(s.nextLine());
moedas = Integer.parseInt(leitor.nextLine()); kits = Integer.parseInt(s.nextLine());
xp = Integer.parseInt(leitor.nextLine()); arma = s.nextLine();
nivel = Integer.parseInt(leitor.nextLine()); danoArma = Integer.parseInt(s.nextLine());
comida = Integer.parseInt(leitor.nextLine());
garrafas = Integer.parseInt(leitor.nextLine());
kits = Integer.parseInt(leitor.nextLine());
leitor.close();
System.out.println("📂 Jogo carregado com sucesso!");
s.close();
System.out.println("📂 Jogo carregado!");
} catch (Exception e) { } catch (Exception e) {
System.out.println("Erro ao carregar.");
System.out.println("Erro ao carregar jogo.");
} }
} }
// ===================== MENU =====================
public static void menu() { public static void menu() {
System.out.println("\n===== MENU =====");
System.out.println("\n===== SOBREVIVÊNCIA ====="); System.out.println("1 Procurar");
System.out.println("1 - Procurar recursos"); System.out.println("2 Lutar");
System.out.println("2 - Lutar"); System.out.println("3 Comer");
System.out.println("3 - Comer"); System.out.println("4 Beber");
System.out.println("4 - Beber"); System.out.println("5 Kit");
System.out.println("5 - Usar kit médico"); System.out.println("6 Loja");
System.out.println("6 - Loja"); System.out.println("7 Estado");
System.out.println("7 - Ver estado"); System.out.println("8 Guardar");
System.out.println("8 - Guardar jogo"); System.out.println("9 Sair");
System.out.println("9 - Sair");
} }
// ===================== MAIN =====================
public static void main(String[] args) { public static void main(String[] args) {
System.out.println("🏕️ JOGO DE SOBREVIVÊNCIA"); System.out.println("🏕️ JOGO DE SOBREVIVÊNCIA");
System.out.println("\n1 - Novo Jogo"); System.out.print("Nome do jogador: ");
System.out.println("2 - Continuar Jogo"); ler.nextLine();
nome = ler.nextLine();
int inicio = ler.nextInt(); System.out.println("1 - Novo jogo");
System.out.println("2 - Carregar");
if (inicio == 2) { int op = ler.nextInt();
carregarJogo(); if (op == 2) carregar();
}
while (true) { while (true) {
if (vida <= 0) { if (vida <= 0) {
System.out.println("\n💀 Morreste!"); System.out.println("💀 Morreste!");
break; break;
} }
if (nivel >= 5) { if (nivel >= 5) {
System.out.println("\n🏆 Parabéns! Chegaste ao nível máximo!"); System.out.println("🐉 BOSS FINAL!");
System.out.println("Ganhaste o jogo!");
break; break;
} }
menu(); menu();
int escolha = ler.nextInt(); int escolha = ler.nextInt();
switch (escolha) { switch (escolha) {
case 1 -> procurar();
case 1: case 2 -> lutar();
procurar(); case 3 -> comer();
break; case 4 -> beber();
case 5 -> usarKit();
case 2: case 6 -> loja();
lutar(); case 7 -> estado();
break; case 8 -> guardar();
case 9 -> { return; }
case 3:
comer();
break;
case 4:
beber();
break;
case 5:
usarKit();
break;
case 6:
loja();
break;
case 7:
estado();
break;
case 8:
guardarJogo();
break;
case 9:
System.out.println("👋 Até à próxima!");
return;
default:
System.out.println("❌ Opção inválida.");
} }
} }
} }