From 3e31f1c8c6b113fdc37cdfd56a6ef5601d07054a Mon Sep 17 00:00:00 2001 From: Nuray Taghiyeva Date: Thu, 26 Feb 2026 16:53:38 +0400 Subject: [PATCH 1/2] homework finished --- .idea/.gitignore | 10 ++++ .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 | 6 +++ battle/pom.xml | 17 +++++++ .../java/org/ironhack/homework/Attacker.java | 5 ++ .../ironhack/homework/BattleSimulator.java | 46 +++++++++++++++++ .../java/org/ironhack/homework/Character.java | 33 ++++++++++++ .../java/org/ironhack/homework/Warrior.java | 47 ++++++++++++++++++ .../java/org/ironhack/homework/Wizard.java | 46 +++++++++++++++++ .../org/ironhack/homework/Attacker.class | Bin 0 -> 175 bytes .../ironhack/homework/BattleSimulator.class | Bin 0 -> 2365 bytes .../org/ironhack/homework/Character.class | Bin 0 -> 1295 bytes .../org/ironhack/homework/Warrior.class | Bin 0 -> 2367 bytes .../org/ironhack/homework/Wizard.class | Bin 0 -> 2328 bytes 19 files changed, 281 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 battle/pom.xml create mode 100644 battle/src/main/java/org/ironhack/homework/Attacker.java create mode 100644 battle/src/main/java/org/ironhack/homework/BattleSimulator.java create mode 100644 battle/src/main/java/org/ironhack/homework/Character.java create mode 100644 battle/src/main/java/org/ironhack/homework/Warrior.java create mode 100644 battle/src/main/java/org/ironhack/homework/Wizard.java create mode 100644 battle/target/classes/org/ironhack/homework/Attacker.class create mode 100644 battle/target/classes/org/ironhack/homework/BattleSimulator.class create mode 100644 battle/target/classes/org/ironhack/homework/Character.class create mode 100644 battle/target/classes/org/ironhack/homework/Warrior.class create mode 100644 battle/target/classes/org/ironhack/homework/Wizard.class 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..7b8e97e --- /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; + } + + // Getters + public String getId() { return id; } + public String getName() { return name; } + public int getHp() { return hp; } + public boolean getIsAlive() { return isAlive; } + + // Setters + 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..fc5f2d4 --- /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(); // Random Heavy or Weak + + 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) { + // Not enough stamina for heavy, do weak + 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..6fc0a1f --- /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(); // Random Fireball or Staff + + 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 0000000000000000000000000000000000000000..c570da7a9aebf029a66655c9f315965c304a4310 GIT binary patch literal 175 zcmX^0Z`VEs1_oOOPId++Mh3b3qICVtqWrv!#N=%KjQrfx^8BJ~eaDg#AV0N;oq>gs zK_Dx!EKxrvF)v-;KPf9UxrC8{EfK7MkwHbn2fGQ*8Hq)S$t9^p)|z3A3|ztarA5i9 pZkai$j10Um)Ac|GvoSI-GB5+3#K6D^w2YO34a8z#2a-$-8~}RyE~x+j literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0f7a80281dbe00cef223830088daf56fe207f4c1 GIT binary patch literal 2365 zcmaJ?Yf}?f7=8{U*$}sYLC~mRP>@6ov9`sQ*o&Z)P(U;`3ifsgTe6burn?(Zd%ygF ze(6+yK>e&U4Kq5^cKWd&+h5S1(3yT~NBW#i9HNG1Cg+@eFVA~F=eI`>egg0+zKNg> z?HU3)f(Qw8Uzh7LU6R&n`oi*cqu>dI&X|_zy(Z9}Nai(!1$O&FRnIJ?a|LNxhSPxv zc4^RcJcrIFP;xh2&nOGDnU+BBtgmU>>8w?$dO6QAWH}RohHhnlx4^zcOOa$=S?JNR z2fcK}uF|h_M zqN#GTLs_0e&k(*W)zJ1Ou07k_$vpYeStVdk3pVH7Es#}LY`!Uo8{AM8R$gvjHjN2m z18mfXR^ZSMjy7h8K-z|Rs}2?7iGv|9u#=L{r%pSIAt06np3A95os$(mKN_S4Hd)gJ zSoeudpR=n@!I&~tYWF;qr%@FH)h2A)b3I2^<_xcBuee1(1qp?LXb#b_bkT)6se zpJ{I82E?Q+m2#$MWWxBEIT!Kih4Huu<5T}*!?aw^t)5lSz+_3fuHkCp|DwE9>JeiQSNL41UmHh~4;I%&ex2yO8`IyN~__YsZu)v)h)4Fhuzad`2>ZhY50&>h~y(7a-fG??Ro zhe$5Q0^JMbc5UMLc(8pel%jMECt|_wg&Iz#0yR7z3vzuaRm0eA%*28 zAjz*2mD?NqPd>n#01c3&1m051Y!fj$N9NtFA1O<;ejn`)dK(B2aKYEUOUo3vg8^UQ zHu@gpZA)~L6um^Wz*wj^bZ2Xd0bf=LY==sqg#%nQ>|(-t_yF(YDZwZHBswvMF1p!+ z8NSIE(Tl6-V`}%Jz<1Wce%zq$XXwYb7{CuWgnPWvf58#_jv@SsVf>8|{7bYgK4Sr# zU_+(+LQU6;fe#>Qdlw#InV5VZ@fTKLu<{A&e~4B3IEFt^BrQNseuataEcOh3#u`d2 zYMJ`O2yKxW(qL)OG}syr`)d-ken9+#x%gm&P#;majgGtAJ9+YG@|M4T!Z5(#1wO}@ I_!_bQ0KNoMd;kCd literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..90434bd691eeeb86ee7a938c720421e1e0d0440e GIT binary patch literal 1295 zcmah|%TC)s6g}fOb}%MDAO^xSeLAMaeLo0Ps;H`33UonXL02YNi6OC(F|^;(Z|I_x zNQ=7Y2lS(=-WfY7q>;Lr@!YxRoO|yX|N8yoCxCUVYmkspA?wIOVHi7f&s@9Z1`Ye| z{-IZo8I(0Y@Z%Q@8MCshA%`IqnvP-U40(}$8v8AKXUBQPpha$Q5Vn&;!K~D-CR8~- zuVWNr47oVmjw3&4Fidtcg>n+D4xxYv6_YxOFc=oYsA2n27&P7bk=+d2-iI(cvNxJ; z$OZg{anZL73zQEN%$4fRBJQAHZR@3upsJxV?4 zrWOa3%d5>&2B(lsQT)huOe5cPkJIury6$nx<{pP=+u>i^JqJ>UNo$2p$NX{9zF>U^vo4^1!$=3?)^Z0^)?5cAOYUId ztH4{dmY~o&OgcL97{LUs)AZQpF@|NjSxVS&2Y2a2yrK#wzIYuH>8?<2qHfd9@3Pi8 z#=p>q1TLb8;DjL5lZ2Fz!5#>n>IY8_1mDAbqT_vERxW++Q!Wk!KfuEQ;Dvs$F%bL+ zk5lj}HOZY)#Ekz=HfefBpp7J>H$^3#BEu6rO?lqaq&bga&1Noejazk&(kJAsOzK!h z3^OkrnZpoGzes*?mlA%X$8Yc-m3W`gT?VX3pU<)SPrdUi3t}kbatEFVRvV?W_lw$ z@gFQ7)Ca13@{FvEM`Dorf;Xe?|i3E_x$vVv^89+q@jbU8tIblwYpX9kzge1ZNMBa9@&(eT9M{oj1jh1*dPqY6gP>yTX;Oc3Pz?(ye*zEHcQN976&F`PtPS7{*H(?6j~8y9FlV)2>P1cRVId z`ivrwi!%1bEt^0i7WQCNAQNcWc3deSDrSDKg?(mzFwnko>$+iB9I$W@;{rpjx}(o~ zUQ0}n1I`5e9QhT(Nw;7A-SE_niPS$G>K1X8Sep%ZFZF}6Bs zp^Q_U52E>GKC}m|GZ}x}=d`BljLG)JWUo}XomQClY7}_~oub#vDJuQ%Eu&OMpTYloNEKAxN423I^!|1DU z>B%T9!xJ%n#7Z@h5YV)G(^c2W0 zdtJY(E;vRbt5|9j3;njkjX!x-UH5`TKh9e2ZPs@`3X zJbQt!g6A{!H~lBp14cm?cy(JUm|66^X17z`?xDV!XEv_f?Wh>|jXwOP_1mhd%l&t( z7h+zvTFZ`Bh(-o7ul%P08j9 z@aqC4VLO4XJ8CfgIOF8V;nExJlBp#fiREvIATb= zj|)s=dLNKNBJ3Gb17Xk5N^*SxCwgQ`Yz;nD_zk%q*@==G#^9gBB(WkuFNr_}r#N$# zD<_FIDbj_5B>t3gw0n2Bdn`h1QA~##nWP`ak{J6piCip+kK#%6=@yX~c@7Dqgdwqr zi%~J+Dm6;7m`4MrsfD$P{bwe=#WADH;P*JpcI95n z6W^g|(D!lFfK#mqp1k=C{Iwpu^8cZeWMmSj`XW8X>tUd|xlOz|UfaYwM*e}&F-sU> ze=mjKhb#`zF$c{bnSag+Nn4`u(<%aP9TBZjby!`A`1uvV^))ZNlXO1(An+m4%wYa&CG)M z;;ZGe59)(emR9+KRB1`5idFsq|C5$q&#Yl%2K8mS`}Ei6eCO-aXMX>4_cs6+VWkm6 zM+$KR2_yx^9k*JrT*t1-@>ZedG}L{^-73u1q$|t5as`qXEZg!g2@GZz?#g?zP?vVK zu;ROxT`iV!YbkUJ91eDxzEv+QOS|GU(nuk#V{{92WOHj>=)s{BdJP=L5rL8DuP7{*gD4NTy~-#LWYJ@9AJclzW z%or%(d4aw_`u*g{Xj@aQGt+?xx4E?p1hN^{!b_UhS%Fhgu&CfMykg*0oD)be>-p_K z%aSgu^9G8zK)V;(C&yh#DBsGuE>V0GWX6+%T*h)UT68=66jgc zLN3bfmI~<=r|Fi}oTYW@4wIhIb;2s=6YxFXmD`KTuQ?U3H;MPsxQSaS+}5@5KB+%_ z=azlX*;1|N9+vGK8-wFM5csnF(ptdK={%orU3rrWjnSHp{+)s}HtS1pIaz z{`$sURrZVR&#dKQmU^sMzAAR&L%|nqmZj%==3GlEE}I^kmMP3o#)(ec5jZK#nnl=s zzDAQeZf-^aH`pqLX?Z3)g6V9Uy7f$$%c|_$Q@Rt*%*?R&lx$nMvvuit%1eRTPaRM) zN}v>~EZKjD^72D9*{pi_*aVw-2S;{7c9)oLe!b1pl?Nz82l%ROeBf7qe-;s7Lw?D1_`Z%Cb59U zFd4B#jp9t^QO8AUVeH`erO~f&M(fh~Ev7gQUd-Rrs|u6-nb)_2lOwx04eVh02iT)u zBd5{d;6x%s#_#MyzR*Hm`(LOr^3dTDZBBOaV&G$XdIv9$RCe&17QG{=lO^~<9ob=WpY?y^fcms@LwcyQ$w_@(h|eFSmW5w^*T>}5PUxh Pz7pl&j6emOsNwiuarzCv literal 0 HcmV?d00001 From ae4a75ceec94654c7a6e4a483ace42e067e2db0c Mon Sep 17 00:00:00 2001 From: Nuray Taghiyeva Date: Thu, 26 Feb 2026 16:56:32 +0400 Subject: [PATCH 2/2] homework --- battle/src/main/java/org/ironhack/homework/Character.java | 4 ++-- battle/src/main/java/org/ironhack/homework/Warrior.java | 4 ++-- battle/src/main/java/org/ironhack/homework/Wizard.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/battle/src/main/java/org/ironhack/homework/Character.java b/battle/src/main/java/org/ironhack/homework/Character.java index 7b8e97e..9779d53 100644 --- a/battle/src/main/java/org/ironhack/homework/Character.java +++ b/battle/src/main/java/org/ironhack/homework/Character.java @@ -15,13 +15,13 @@ public Character(String name, int hp) { this.isAlive = true; } - // Getters + public String getId() { return id; } public String getName() { return name; } public int getHp() { return hp; } public boolean getIsAlive() { return isAlive; } - // Setters + public void setName(String name) { this.name = name; } public void setHp(int hp) { diff --git a/battle/src/main/java/org/ironhack/homework/Warrior.java b/battle/src/main/java/org/ironhack/homework/Warrior.java index fc5f2d4..7705690 100644 --- a/battle/src/main/java/org/ironhack/homework/Warrior.java +++ b/battle/src/main/java/org/ironhack/homework/Warrior.java @@ -21,7 +21,7 @@ public Warrior(String name, int hp, int stamina, int strength) { @Override public void attack(Character target) { int damage = 0; - boolean heavy = rand.nextBoolean(); // Random Heavy or Weak + boolean heavy = rand.nextBoolean(); if (heavy && stamina >= 5) { damage = strength; @@ -32,7 +32,7 @@ public void attack(Character target) { stamina += 1; System.out.println(getName() + " performs a Weak Attack causing " + damage + " damage!"); } else if (stamina > 0) { - // Not enough stamina for heavy, do weak + damage = strength / 2; stamina += 1; System.out.println(getName() + " performs a Weak Attack causing " + damage + " damage!"); diff --git a/battle/src/main/java/org/ironhack/homework/Wizard.java b/battle/src/main/java/org/ironhack/homework/Wizard.java index 6fc0a1f..a8cfddd 100644 --- a/battle/src/main/java/org/ironhack/homework/Wizard.java +++ b/battle/src/main/java/org/ironhack/homework/Wizard.java @@ -21,7 +21,7 @@ public Wizard(String name, int hp, int mana, int intelligence) { @Override public void attack(Character target) { int damage = 0; - boolean fireball = rand.nextBoolean(); // Random Fireball or Staff + boolean fireball = rand.nextBoolean(); if (fireball && mana >= 5) { damage = intelligence;