diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..b58b603
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,5 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..e817251
--- /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..1ede0e8
--- /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..1129278
--- /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..8306744
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HomeWork/pom.xml b/HomeWork/pom.xml
new file mode 100644
index 0000000..a75dada
--- /dev/null
+++ b/HomeWork/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ org.example
+ HomeWork
+ 1.0-SNAPSHOT
+
+
+ 25
+ 25
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/HomeWork/src/main/java/org/example/Attacker.java b/HomeWork/src/main/java/org/example/Attacker.java
new file mode 100644
index 0000000..f06c36e
--- /dev/null
+++ b/HomeWork/src/main/java/org/example/Attacker.java
@@ -0,0 +1,5 @@
+package org.example;
+
+public interface Attacker {
+ void attack(Character character);
+}
diff --git a/HomeWork/src/main/java/org/example/Character.java b/HomeWork/src/main/java/org/example/Character.java
new file mode 100644
index 0000000..916ccbc
--- /dev/null
+++ b/HomeWork/src/main/java/org/example/Character.java
@@ -0,0 +1,48 @@
+package org.example;
+import java.util.Random;
+import java.util.UUID;
+
+public class Character {
+ private String id;
+ private String name;
+ private int hp;
+ private boolean isAlive=true;
+
+
+ public Character(String name,int hp){
+ this.id=UUID.randomUUID().toString();
+ this.name=name;
+ this.hp=hp;
+ }
+
+
+ //setters
+ public void setId(String id){
+ this.id = id;
+ }
+ public void setName(String name){
+ this.name=name;
+ }
+ public void setHp(int hp){
+ this.hp=hp;
+ if(hp<=0){
+ this.hp=0;
+ this.isAlive=false;
+ }
+ }
+ public void setIsAlive(boolean alive){
+ this.isAlive=alive;
+ }
+
+ //getters
+ public String getName(){
+ return name;
+ }
+ public int getHp(){
+ return hp;
+ }
+ public boolean getIsAlive(){
+ return isAlive;
+ }
+
+}
diff --git a/HomeWork/src/main/java/org/example/Main.java b/HomeWork/src/main/java/org/example/Main.java
new file mode 100644
index 0000000..edc8441
--- /dev/null
+++ b/HomeWork/src/main/java/org/example/Main.java
@@ -0,0 +1,33 @@
+package org.example;
+
+
+
+public class Main {
+ static void main() {
+ Warrior warrior = new Warrior("Thor", 150, 30, 8);
+ Wizard wizard = new Wizard("Merlin", 80, 40, 25);
+
+ int round=1;
+ while(warrior.getIsAlive() && wizard.getIsAlive()){
+ System.out.println("-----Round "+round+"------");
+
+ warrior.attack(wizard);
+ wizard.attack(warrior);
+
+ System.out.println(warrior.getName()+"Hp:"+warrior.getHp());
+ System.out.println(wizard.getName()+"Hp:"+wizard.getHp());
+ round++;
+
+ }
+ System.out.println("\n --------Battle Over-------- ");
+ if(warrior.getIsAlive() && !wizard.getIsAlive()){
+ System.out.println("-------Winner:"+warrior.getName()+"-------");
+ }
+ else if(wizard.getIsAlive() && !warrior.getIsAlive()){
+ System.out.println("-------Winner:"+wizard.getName()+"-------");
+ }
+ else{
+ System.out.println("It is a tie! Restarting again....... ");
+ }
+ }
+}
diff --git a/HomeWork/src/main/java/org/example/Warrior.java b/HomeWork/src/main/java/org/example/Warrior.java
new file mode 100644
index 0000000..3698ebb
--- /dev/null
+++ b/HomeWork/src/main/java/org/example/Warrior.java
@@ -0,0 +1,61 @@
+package org.example;
+
+import java.util.Random;
+
+import static java.lang.Math.random;
+
+public class Warrior extends Character implements Attacker{
+ private int stamina;
+ private int strength;
+ private static final Random random = new Random();
+
+ public Warrior(String name,int hp,int stamina, int strength){
+ super(name,hp);
+ this.stamina=stamina;
+ this.strength=strength;
+ }
+ public Warrior(String name){
+ super(name,random.nextInt(100,201));
+ this.stamina=random.nextInt(10,51);
+ this.strength=random.nextInt(1,11);
+ }
+
+ //setters
+ public void setStamina(int stamina){
+ this.stamina=stamina;
+ }
+ public void setStrength(int strength){
+ this.strength=strength;
+ }
+
+ //getters
+ public int getStamina(){
+ return stamina;
+ }
+ public int getStrength(){
+ return strength;
+ }
+
+ @Override
+ public void attack(Character character){
+ if(!character.getIsAlive()) return;
+
+ boolean heavyAttack=random.nextBoolean();
+ int damage=0;
+ if(heavyAttack && this.stamina>=5){
+ damage=strength;
+ stamina-=5;
+ System.out.println(getName()+" Uses Heavy Attack "+damage);
+ }
+ else if(stamina>0){
+ damage=strength/2;
+ stamina++;
+ System.out.println(getName()+" Uses Weak Attack "+damage);
+ }
+ else{
+ stamina+=2;
+ System.out.println(getName()+" is too tired and recovers stamina ");
+ }
+ character.setHp(character.getHp()-damage);
+ }
+}
diff --git a/HomeWork/src/main/java/org/example/Wizard.java b/HomeWork/src/main/java/org/example/Wizard.java
new file mode 100644
index 0000000..9e20ef8
--- /dev/null
+++ b/HomeWork/src/main/java/org/example/Wizard.java
@@ -0,0 +1,59 @@
+package org.example;
+
+import java.util.Random;
+
+public class Wizard extends Character implements Attacker {
+ private int mana;
+ private int intelligence;
+ private static final Random random = new Random();
+
+ public Wizard(String name,int hp,int mana,int intelligence){
+ super(name,hp);
+ this.mana=mana;
+ this.intelligence=intelligence;
+ }
+ public Wizard(String name){
+ super(name,random.nextInt(50,101));
+ this.mana=random.nextInt(10,51);
+ this.intelligence=random.nextInt(1,51);
+ }
+
+ //setters
+ public void setMana(int mana){
+ this.mana=mana;
+ }
+ public void setIntelligence(int intelligence){
+ this.intelligence=intelligence;
+ }
+
+ //getters
+ public int getMana(){
+ return mana;
+ }
+ public int getIntelligence(){
+ return intelligence;
+ }
+
+ @Override
+ public void attack(Character character){
+ if(!character.getIsAlive()) return;
+
+ boolean fireball=random.nextBoolean();
+ int damage=0;
+ if(fireball && mana >= 5){
+ damage=intelligence;
+ mana-=5;
+ System.out.println(getName()+" casts Fireball "+damage);
+ }
+ else if(mana>0){
+ damage=2;
+ mana+=1;
+ System.out.println(getName()+" hits with Staff "+damage);
+ }
+ else{
+ mana+=2;
+ System.out.println(getName()+" has no mana ,regenerates ");
+ }
+ character.setHp(character.getHp()-damage);
+ }
+}
diff --git a/HomeWork/target/classes/org/example/Attacker.class b/HomeWork/target/classes/org/example/Attacker.class
new file mode 100644
index 0000000..bbe460d
Binary files /dev/null and b/HomeWork/target/classes/org/example/Attacker.class differ
diff --git a/HomeWork/target/classes/org/example/Character.class b/HomeWork/target/classes/org/example/Character.class
new file mode 100644
index 0000000..0268b79
Binary files /dev/null and b/HomeWork/target/classes/org/example/Character.class differ
diff --git a/HomeWork/target/classes/org/example/Main.class b/HomeWork/target/classes/org/example/Main.class
new file mode 100644
index 0000000..30b6720
Binary files /dev/null and b/HomeWork/target/classes/org/example/Main.class differ
diff --git a/HomeWork/target/classes/org/example/Warrior.class b/HomeWork/target/classes/org/example/Warrior.class
new file mode 100644
index 0000000..3892a35
Binary files /dev/null and b/HomeWork/target/classes/org/example/Warrior.class differ
diff --git a/HomeWork/target/classes/org/example/Wizard.class b/HomeWork/target/classes/org/example/Wizard.class
new file mode 100644
index 0000000..d6a5775
Binary files /dev/null and b/HomeWork/target/classes/org/example/Wizard.class differ