I just started taking a Java Programming Class at my school, and am definitely not the strongest programming. I’m trying to lay out the ground work for a VERY basic, and linear, text based rpg. I got stuck when I got to the battle sequences… I can’t get the code to produce what I want it too, and am looking for some advice/tips on this stuff. When I type “1” as my answer to attack, nothing happens but the program keeps running. I want to damage the goblin. Thanks!
package videogameenemy;
import java.util.Scanner;
public class VideoGameEnemy {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int answer = 0;
boolean enemyAlive;
boolean playerAlive;
Enemy Goblin = new Enemy();
Goblin.setName("Goblin");
Goblin.setHp(100);
Enemy Wolf = new Enemy();
Wolf.setName("Wolf");
Wolf.setHp(80);
Player user = new Player();
user.setDamage(15);
user.setHp(150);
Enemy[] enemies = new Enemy[2];
enemies[1] = new Enemy();
enemies[1] = Goblin;
enemies[1].getHp();
enemies[0] = new Enemy();
enemies[0] = Wolf;
enemies[0].getHp();
System.out.println("A " + enemies[1].getName() + " has appeared!");
System.out.println(enemies[1].getName() + " has " + enemies[1].getHp() + " HP remaining.");
System.out.println("Will you attack the " + enemies[1].getName() + "?");
System.out.println("Enter 1 to attack, or 2 to flee!");
System.out.println("\t[1 - Attack]");
System.out.println("\t[2 - Flee]");
answer = input.nextInt();
if(answer == 1)
{
while(enemies[1].getHp() > 0)
{
enemyAlive = true;
playerAlive = true;
int d;
d = enemies[1].getHp() - user.getDamage();
if (enemyAlive = false || playerAlive == false)
{
break;
}
}
}
else if (answer == 2)
{
System.out.println("You run and fall.");
}
}
}
/////////
class Enemy
{
private String name;
private int Hp;
public Enemy()
// A Enemy is created with name set to an empty string
{
}
public Enemy(String name, int Hp)
{
name = "";
Hp = 0;
}
public void setName(String newName)
// Pre: Assigned(name)
// Post: class member name has been set to name
{
name = newName;
}
public String getName()
// Post: Returns the name
{
return name;
}
public void setHp(int newHp)
// Pre: Assigned(hp amount)
// Post: class member hp has been set to newHp
{
Hp = newHp;
}
public int getHp()
{
return Hp;
}
}
class Player extends Enemy
{
private int damage;
private int hp;
public Player()
// Default constructor
{
damage = 0;
hp = 0;
}
public void setDamage(int newDamage)
{
damage = newDamage;
}
public int getDamage()
{
return damage;
}
public void setHp(int newHp)
{
hp = newHp;
}
public int getHp()
{
return hp;
}
}