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