diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..ab1f416
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Ignored default folder with query files
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..71e2ee5
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..177c90b
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/homework-java-ironbattle.iml b/.idea/homework-java-ironbattle.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/homework-java-ironbattle.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..348a215
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..54cb84e
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/battle/pom.xml b/battle/pom.xml
new file mode 100644
index 0000000..7e0a47f
--- /dev/null
+++ b/battle/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ org.ironhack.homework
+ battle
+ 1.0-SNAPSHOT
+
+
+ 17
+ 17
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/battle/src/main/java/org/ironhack/homework/Attacker.java b/battle/src/main/java/org/ironhack/homework/Attacker.java
new file mode 100644
index 0000000..03bb730
--- /dev/null
+++ b/battle/src/main/java/org/ironhack/homework/Attacker.java
@@ -0,0 +1,5 @@
+package org.ironhack.homework;
+
+public interface Attacker {
+ void attack(Character target);
+}
diff --git a/battle/src/main/java/org/ironhack/homework/BattleSimulator.java b/battle/src/main/java/org/ironhack/homework/BattleSimulator.java
new file mode 100644
index 0000000..36dcb34
--- /dev/null
+++ b/battle/src/main/java/org/ironhack/homework/BattleSimulator.java
@@ -0,0 +1,46 @@
+package org.ironhack.homework;
+
+import java.util.Scanner;
+
+public class BattleSimulator {
+ public static void main(String[] args) {
+ Scanner sc = new Scanner(System.in);
+
+ System.out.println("Enter Warrior name:");
+ String wName = sc.nextLine();
+ Warrior warrior = new Warrior(wName, 150, 30, 8);
+
+ System.out.println("Enter Wizard name:");
+ String wizName = sc.nextLine();
+ Wizard wizard = new Wizard(wizName, 80, 30, 15);
+
+ boolean tie;
+ do {
+ tie = false;
+ warrior.setHp(150);
+ wizard.setHp(80);
+ warrior.setIsAlive(true);
+ wizard.setIsAlive(true);
+
+ while (warrior.getIsAlive() && wizard.getIsAlive()) {
+ warrior.attack(wizard);
+ wizard.attack(warrior);
+
+ System.out.println(warrior.getName() + " HP: " + warrior.getHp());
+ System.out.println(wizard.getName() + " HP: " + wizard.getHp());
+ System.out.println("-----------------------");
+ }
+
+ if (warrior.getIsAlive() && !wizard.getIsAlive()) {
+ System.out.println(warrior.getName() + " wins!");
+ } else if (!warrior.getIsAlive() && wizard.getIsAlive()) {
+ System.out.println(wizard.getName() + " wins!");
+ } else {
+ System.out.println("It's a tie! Restarting battle...");
+ tie = true;
+ }
+ } while (tie);
+
+ sc.close();
+ }
+}
\ No newline at end of file
diff --git a/battle/src/main/java/org/ironhack/homework/Character.java b/battle/src/main/java/org/ironhack/homework/Character.java
new file mode 100644
index 0000000..9779d53
--- /dev/null
+++ b/battle/src/main/java/org/ironhack/homework/Character.java
@@ -0,0 +1,33 @@
+package org.ironhack.homework;
+
+import java.util.UUID;
+
+public abstract class Character {
+ private String id;
+ private String name;
+ private int hp;
+ private boolean isAlive;
+
+ public Character(String name, int hp) {
+ this.id = UUID.randomUUID().toString();
+ this.name = name;
+ this.hp = hp;
+ this.isAlive = true;
+ }
+
+
+ public String getId() { return id; }
+ public String getName() { return name; }
+ public int getHp() { return hp; }
+ public boolean getIsAlive() { return isAlive; }
+
+
+ public void setName(String name) { this.name = name; }
+
+ public void setHp(int hp) {
+ this.hp = Math.max(hp, 0);
+ if (this.hp == 0) this.isAlive = false;
+ }
+
+ public void setIsAlive(boolean isAlive) { this.isAlive = isAlive; }
+}
\ No newline at end of file
diff --git a/battle/src/main/java/org/ironhack/homework/Warrior.java b/battle/src/main/java/org/ironhack/homework/Warrior.java
new file mode 100644
index 0000000..7705690
--- /dev/null
+++ b/battle/src/main/java/org/ironhack/homework/Warrior.java
@@ -0,0 +1,47 @@
+package org.ironhack.homework;
+
+import java.util.Random;
+
+public class Warrior extends Character implements Attacker {
+ private int stamina;
+ private int strength;
+ private Random rand = new Random();
+
+ public Warrior(String name, int hp, int stamina, int strength) {
+ super(name, hp);
+ this.stamina = stamina;
+ this.strength = strength;
+ }
+
+ public int getStamina() { return stamina; }
+ public void setStamina(int stamina) { this.stamina = stamina; }
+ public int getStrength() { return strength; }
+ public void setStrength(int strength) { this.strength = strength; }
+
+ @Override
+ public void attack(Character target) {
+ int damage = 0;
+ boolean heavy = rand.nextBoolean();
+
+ if (heavy && stamina >= 5) {
+ damage = strength;
+ stamina -= 5;
+ System.out.println(getName() + " performs a Heavy Attack causing " + damage + " damage!");
+ } else if (!heavy && stamina > 0) {
+ damage = strength / 2;
+ stamina += 1;
+ System.out.println(getName() + " performs a Weak Attack causing " + damage + " damage!");
+ } else if (stamina > 0) {
+
+ damage = strength / 2;
+ stamina += 1;
+ System.out.println(getName() + " performs a Weak Attack causing " + damage + " damage!");
+ } else {
+ damage = 0;
+ stamina += 2;
+ System.out.println(getName() + " is too tired to attack! Recovering stamina...");
+ }
+
+ target.setHp(target.getHp() - damage);
+ }
+}
\ No newline at end of file
diff --git a/battle/src/main/java/org/ironhack/homework/Wizard.java b/battle/src/main/java/org/ironhack/homework/Wizard.java
new file mode 100644
index 0000000..a8cfddd
--- /dev/null
+++ b/battle/src/main/java/org/ironhack/homework/Wizard.java
@@ -0,0 +1,46 @@
+package org.ironhack.homework;
+
+import java.util.Random;
+
+public class Wizard extends Character implements Attacker {
+ private int mana;
+ private int intelligence;
+ private Random rand = new Random();
+
+ public Wizard(String name, int hp, int mana, int intelligence) {
+ super(name, hp);
+ this.mana = mana;
+ this.intelligence = intelligence;
+ }
+
+ public int getMana() { return mana; }
+ public void setMana(int mana) { this.mana = mana; }
+ public int getIntelligence() { return intelligence; }
+ public void setIntelligence(int intelligence) { this.intelligence = intelligence; }
+
+ @Override
+ public void attack(Character target) {
+ int damage = 0;
+ boolean fireball = rand.nextBoolean();
+
+ if (fireball && mana >= 5) {
+ damage = intelligence;
+ mana -= 5;
+ System.out.println(getName() + " casts Fireball causing " + damage + " damage!");
+ } else if (!fireball && mana > 0) {
+ damage = 2;
+ mana += 1;
+ System.out.println(getName() + " hits with Staff causing " + damage + " damage!");
+ } else if (mana > 0) {
+ damage = 2;
+ mana += 1;
+ System.out.println(getName() + " hits with Staff causing " + damage + " damage!");
+ } else {
+ damage = 0;
+ mana += 2;
+ System.out.println(getName() + " is out of mana! Recovering...");
+ }
+
+ target.setHp(target.getHp() - damage);
+ }
+}
\ No newline at end of file
diff --git a/battle/target/classes/org/ironhack/homework/Attacker.class b/battle/target/classes/org/ironhack/homework/Attacker.class
new file mode 100644
index 0000000..c570da7
Binary files /dev/null and b/battle/target/classes/org/ironhack/homework/Attacker.class differ
diff --git a/battle/target/classes/org/ironhack/homework/BattleSimulator.class b/battle/target/classes/org/ironhack/homework/BattleSimulator.class
new file mode 100644
index 0000000..0f7a802
Binary files /dev/null and b/battle/target/classes/org/ironhack/homework/BattleSimulator.class differ
diff --git a/battle/target/classes/org/ironhack/homework/Character.class b/battle/target/classes/org/ironhack/homework/Character.class
new file mode 100644
index 0000000..90434bd
Binary files /dev/null and b/battle/target/classes/org/ironhack/homework/Character.class differ
diff --git a/battle/target/classes/org/ironhack/homework/Warrior.class b/battle/target/classes/org/ironhack/homework/Warrior.class
new file mode 100644
index 0000000..4b81a0d
Binary files /dev/null and b/battle/target/classes/org/ironhack/homework/Warrior.class differ
diff --git a/battle/target/classes/org/ironhack/homework/Wizard.class b/battle/target/classes/org/ironhack/homework/Wizard.class
new file mode 100644
index 0000000..1af02ca
Binary files /dev/null and b/battle/target/classes/org/ironhack/homework/Wizard.class differ