Notes

  • Java can create objects with..
    • Scanner Class - inputs/outputs
    • System Class - output to console using static method System.out.printf()
    • Math Class - call a static method Math.random()
  • Other College Board Topics:
  • 2D Array to store colors
    • x --> color; y --> color code
  • Control Structure - used to process a Menu
  • Random random = new Random(); - creates a new object that can access to every method inside the Random class
import java.util.*;

public class Goblin
{
    private String name;
    private int HP;
    private int DMG;
    private double hitChance;

    public String getName()
    {
        return name;
    }

    public int getHP()
    {
        return HP;
    }

    public int getDMG()
    {
        return DMG;
    }

    public double getHitChance()
    {
        return hitChance;
    }

    public boolean isAlive()
    {
        if (this.HP > 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public void setName(String newName)
    {
        this.name = newName;
    }

    public void setHP(int newHP)
    {
        this.HP = newHP;
    }

    public void takeDMG(int takenDamage)
    {
        this.HP -= takenDamage;
    }

    public void setDMG(int newDMG)
    {
        this.DMG = newDMG;
    }

    public void setHitChance(double newHitChance)
    {
        this.hitChance = newHitChance;
    }
}
public class Duel
{

    public static void fight(Goblin goblin1, Goblin goblin2)
    {
        while (goblin1.isAlive() && goblin2.isAlive())
        {

            // goblin1 hit chance tester
            if (Math.random() < goblin2.getHitChance())
            {
                goblin2.takeDMG(goblin2.getDMG());
                System.out.println(goblin1.getName() + " takes " + goblin2.getDMG() + " damage");
            }
            else
            {
                System.out.println(goblin2.getName() + " missed!");
            }
            // print hp of goblin1
            System.out.println(goblin1.getName() + " HP: " + goblin1.getHP());

            if (!goblin1.isAlive())
            {
                System.out.println(goblin1.getName() + " has perished");
                break;
            }

            // if statement for goblin2 hit chance
            if (Math.random() < goblin1.getHitChance())
            {
                goblin2.takeDMG(goblin1.getDMG());
                System.out.println(goblin2.getName() + " takes " + goblin1.getDMG() + " damage");
            }
            else
            {
                System.out.println(goblin1.getName() + " missed!");
            }
            // print hp of goblin2
            System.out.println(goblin2.getName() + " HP: " + goblin2.getHP());

            if (!goblin2.isAlive())
            {
                System.out.println(goblin2.getName() + " has perished");
                break;
            }
        }
    }

    public static void main(String[] args)
    {
        Goblin goblin1 = new Goblin();
        goblin1.setName("Bob");
        goblin1.setHP(12);
        goblin1.setDMG(2);
        goblin1.setHitChance(0.5);

        Goblin goblin2 = new Goblin();
        goblin2.setName("Joe");
        goblin2.setHP(4);
        goblin2.setDMG(1);
        goblin2.setHitChance(0.75);

        fight(goblin1, goblin2);
    }
}
Duel.main(null);
Bob takes 1 damage
Bob HP: 12
Bob missed!
Joe HP: 3
Bob takes 1 damage
Bob HP: 12
Joe takes 2 damage
Joe HP: 0
Joe has perished