Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/homework-java-ironbattle.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions HomeWork/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>HomeWork</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
<maven.compiler.source>25</maven.compiler.source>
<maven.compiler.target>25</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

</project>
5 changes: 5 additions & 0 deletions HomeWork/src/main/java/org/example/Attacker.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.example;

public interface Attacker {
void attack(Character character);
}
48 changes: 48 additions & 0 deletions HomeWork/src/main/java/org/example/Character.java
Original file line number Diff line number Diff line change
@@ -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;
}

}
33 changes: 33 additions & 0 deletions HomeWork/src/main/java/org/example/Main.java
Original file line number Diff line number Diff line change
@@ -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....... ");
}
}
}
61 changes: 61 additions & 0 deletions HomeWork/src/main/java/org/example/Warrior.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
59 changes: 59 additions & 0 deletions HomeWork/src/main/java/org/example/Wizard.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
Binary file added HomeWork/target/classes/org/example/Attacker.class
Binary file not shown.
Binary file not shown.
Binary file added HomeWork/target/classes/org/example/Main.class
Binary file not shown.
Binary file added HomeWork/target/classes/org/example/Warrior.class
Binary file not shown.
Binary file added HomeWork/target/classes/org/example/Wizard.class
Binary file not shown.