From 2ce82001891d201300e69f4becfbc2ab28e829c0 Mon Sep 17 00:00:00 2001 From: Ulvi Haciyev Date: Fri, 27 Feb 2026 00:12:25 +0400 Subject: [PATCH] homework has finished --- .idea/.gitignore | 5 ++ .idea/compiler.xml | 13 ++++ .idea/encodings.xml | 7 ++ .idea/homework-java-ironbattle.iml | 9 +++ .idea/jarRepositories.xml | 20 ++++++ .idea/misc.xml | 14 ++++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 7 ++ HomeWork/pom.xml | 17 +++++ .../src/main/java/org/example/Attacker.java | 5 ++ .../src/main/java/org/example/Character.java | 48 ++++++++++++++ HomeWork/src/main/java/org/example/Main.java | 33 ++++++++++ .../src/main/java/org/example/Warrior.java | 61 ++++++++++++++++++ .../src/main/java/org/example/Wizard.java | 59 +++++++++++++++++ .../target/classes/org/example/Attacker.class | Bin 0 -> 155 bytes .../classes/org/example/Character.class | Bin 0 -> 1268 bytes .../target/classes/org/example/Main.class | Bin 0 -> 1810 bytes .../target/classes/org/example/Warrior.class | Bin 0 -> 2431 bytes .../target/classes/org/example/Wizard.class | Bin 0 -> 2409 bytes 19 files changed, 306 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/homework-java-ironbattle.iml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 HomeWork/pom.xml create mode 100644 HomeWork/src/main/java/org/example/Attacker.java create mode 100644 HomeWork/src/main/java/org/example/Character.java create mode 100644 HomeWork/src/main/java/org/example/Main.java create mode 100644 HomeWork/src/main/java/org/example/Warrior.java create mode 100644 HomeWork/src/main/java/org/example/Wizard.java create mode 100644 HomeWork/target/classes/org/example/Attacker.class create mode 100644 HomeWork/target/classes/org/example/Character.class create mode 100644 HomeWork/target/classes/org/example/Main.class create mode 100644 HomeWork/target/classes/org/example/Warrior.class create mode 100644 HomeWork/target/classes/org/example/Wizard.class 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 0000000000000000000000000000000000000000..bbe460db8772df8a476d2eb5794b3130c1a34a53 GIT binary patch literal 155 zcmX^0Z`VEs1_oCKPId++Mh21mqICV#ip1Q4oK$_sl9I&a?9?K51{OvJfvm)`ME#t^ zymWp4q^#8B5=I8LM6d!z1}P06WPQ#ViA9OYC8R z8ZUeRAIkXsXG+0ZGs#*0Ip1==^Z)w&<0pU@c$`8EaT^H-NmvRK$NEf{8@g35zd1Pe zYN3Ml#BcfGmO{K(+8f0PMs1`VT!Eu7)eh=q@4aqz8eaL?kq&e%^a2IjKY7~l&pZXS zpTZc%ZA>`0ij2aTQ8*3#MtOI)@?0Sm=+Y=dX!9W2P1L`ye40bO&jh$VuKI`mvo$QA!ZR!Vz> zJZm5FUgK52 zoX!8+G#QsGZ?4V1a9!pV#J1pKK}t}H_n9&wlK#bS>(tG=K?RI+`?S=N`xzHZQJ zlFJR0dvX^sP|gU%j6f8_G6hyHky?FH3%B_cV*L)yL=P&Q5_i)5g8U~gA}Y%iR}GCo mc%Vn4a2NMjk#4vQE_@sSyFT~i}P6g>@r8Nw_i;hRNv5Lglr;;!FhQJ1(#+ysyy2#N8Ku@f+}D1$-iXP>g`D=k|O0)P0#ebw@=@D?&<#f#rYoq9zcZAhIS1h z10CpOh&<*;JZW>Mlw99`EDDmL^Pc5c@?D1Zcw$?F&d}$2rKI?pmn*hN?r_huTu(=s zA+&YidSPfV6xtSf^yf?NNT1fmGl}b!gfWRJ4buj0V}@u6N^Qnx&?;&- z+fg9bArjlFz=VNW%u(T7N?tf*7>#Eexk(>zj~AryQYyX&3AJd!KoYOg2E@u5FB2vG z@s>$yxNG1wyw1=;p{tdEyG#rWZ>qxIVwh=>S?hv(u%HsSt0ToQ9yaIe&oX6h3v>NQ zc$X$KM$%eRJCJs6x7eXYvO3;pn9fMk@=b0^OH7!Xf|}q-QjW<>+;SFbkEvmqn%&4! zj=ZG7v|A)Ddb5@z)~e-w;cfAKn=G-cTj2IK_bfH98$nGJHk~&11+jicPf|xZjs>Zal#HML4rLxJS` z|Dn{^T3wjHeUh?z+UU^GJxODlW=Z-o`gY8of&CV^KcG>$$w;>=VATIt@FC4~tX?i= zd-T^%w!bc*?Z&#I_#rYL(a+HR@B%%%u}EYi5|50Wku*a~v#01gL3ZvGLnnCfJBG*3 zF%F#KO`BmAiHsgSXiPrYar;?5+@D4rvOk7zc5U+@rF;&T!|BZoC=#yZ(! y=y-ui4Vs1?_7B!)ZfUe`gFJ2c7@PF%r}-|e%Ln5p!MKAj$rC2)SJ+1pBmV(r&9{93 literal 0 HcmV?d00001 diff --git a/HomeWork/target/classes/org/example/Warrior.class b/HomeWork/target/classes/org/example/Warrior.class new file mode 100644 index 0000000000000000000000000000000000000000..3892a3544501acc8caa5e71bc936608e98dca68e GIT binary patch literal 2431 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 literal 0 HcmV?d00001