Last active
August 29, 2015 13:55
-
-
Save Bjacksonshorts/8717933 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Boy extends Man{ | |
public Boy(String n, int a, int s){ | |
super(n,a,s); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public abstract class Character{ | |
protected String name; | |
protected int strength; | |
protected Integer health; | |
public Character(String n,int s, int h){ | |
name = n; | |
strength = s; | |
health = h; | |
} | |
public String getName(){ | |
return name; | |
} | |
public Integer getHealth(){ | |
return health; | |
} | |
public String attack(Character target) { //make object more specific | |
if(Math.floor(Math.random() * 10) == 7) { | |
System.out.println("Attack Unsuccessful"); | |
return ""; | |
} | |
else if(Math.floor(Math.random()* 10) == 1 || Math.floor(Math.random()* 10) == 3 || Math.floor(Math.random()* 10) == 5) { | |
strength = strength * 5; | |
System.out.println("Attack Successful"); | |
System.out.println("Attack is super effective"); | |
return target.getName(); | |
} | |
else { | |
System.out.println("Attack Successful"); | |
return target.getName(); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Girl extends Woman{ | |
public Girl(String n, int a, int s){ | |
super(n,a,s); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Man extends Character{ | |
public Man(String n, int s, int h){ | |
super(n,s,h); | |
} | |
public String attack(Character target) { | |
if(Math.floor(Math.random() * 10) == 7) { | |
System.out.println("Attack Unsuccessful"); | |
return ""; | |
} else { | |
System.out.println("Attack Successful"); | |
return target.getName(); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Monster extends Character{ | |
public Monster(String n, int s, int h){ | |
super(n,s,h); | |
} | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.*; | |
public class Runner{ | |
private boolean inProgress; | |
private Man m; | |
private Woman w; | |
private Monster ms; | |
private Character[] charArr; | |
public static void main( String[] args) { | |
Runner r = new Runner(); | |
r.run(); | |
} | |
public Runner(){ | |
inProgress = true; | |
w = new Woman("Lady",750,2000); | |
m = new Man("Jimmy",750,1500); | |
ms = new Monster("Monster",200,5000); | |
charArr = new Character[4]; | |
charArr[0] = w; | |
charArr[1] = m; | |
charArr[2] = ms; | |
System.out.println("Let The Game Begin!"); | |
} | |
public void run() { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
while (inProgress) { | |
try { | |
System.out.println("attack \t defend \t Status"); | |
String doWhat = br.readLine(); | |
if(doWhat.equalsIgnoreCase("attack")) { | |
attacker(); | |
String cmd = br.readLine(); | |
defender(); | |
String scmd = br.readLine(); | |
interpretAndExecute(cmd, scmd); | |
enemyAttack(); | |
}else if(doWhat.trim().equalsIgnoreCase("Game Over")){ | |
System.out.println("Ending..."); | |
inProgress = false; | |
}else if(doWhat.trim().equalsIgnoreCase("defend")){ | |
System.out.println("you are defended"); | |
System.out.println("Would you like to replenish your health?"); | |
String heal = br.readLine(); | |
if( heal.trim().equalsIgnoreCase("yes")){ | |
System.out.println("Who would you like to heal"); | |
String recipient = br.readLine(); | |
if(recipient.trim().equalsIgnoreCase("woman")){ | |
w.health = Math.min(w.health + 100, 1000); | |
System.out.println("The Woman's health has been restored"); | |
}else if(recipient.trim().equalsIgnoreCase("man")){ | |
m.health = Math.min(w.health + 100, 1000); | |
System.out.println("the Man's health has been restored"); | |
} | |
} | |
}else if(doWhat.trim().equalsIgnoreCase("status")){ | |
System.out.println("the Man's healt is " + w.getHealth()); | |
System.out.println("the Woman's healt is " + m.getHealth()); | |
System.out.println("the Monster's healt is " + ms.getHealth()); | |
} | |
} catch (IOException e) { | |
System.out.println("Oops! There was an error reading your command."); | |
} | |
System.out.println(""); | |
} | |
} | |
private void attacker() { | |
System.out.println("who should attack? (Man or Womman)"); | |
} | |
private void defender() { | |
System.out.println("who should be attacked? "); | |
System.out.println("1:woman 2:man 3:monster"); | |
} | |
private void interpretAndExecute(String cmd, String scmd) { | |
if(cmd.trim().equalsIgnoreCase("Game Over") || scmd.trim().equalsIgnoreCase("Game Over")){ | |
System.out.println("Ending..."); | |
inProgress = false; | |
}else if(cmd.trim().contains("woman")) { | |
int targetNumber = Integer.parseInt(scmd); | |
String victim = charArr[2].attack(charArr[targetNumber]); | |
if (!victim.equals("")) { | |
System.out.println(victim + " has been attacked"); | |
charArr[targetNumber].health= charArr[targetNumber].getHealth() - w.strength; | |
System.out.println(victim + "'s health is now " + charArr[targetNumber].getHealth()); | |
} | |
} else if (cmd.trim().contains("man")) { | |
int targetNumber = Integer.parseInt(scmd); | |
String victim = charArr[1].attack(charArr[targetNumber]); | |
if (!victim.equals("")) { | |
System.out.println(victim + " has been attacked"); | |
charArr[targetNumber].health= charArr[targetNumber].getHealth() - w.strength; | |
System.out.println(victim + "'s health is " + charArr[targetNumber].getHealth()); | |
} | |
} | |
//else if(scmd.getClass != int); | |
else{ | |
System.out.println("that command could not be processed"); | |
} | |
} | |
private void enemyAttack(){ | |
String cmd = "Monster"; | |
int targetNumber = 0; | |
if(Math.floor(Math.random()* 10) == 1 || Math.floor(Math.random()* 10) == 3 || Math.floor(Math.random()* 10) == 5) { | |
targetNumber = 1; | |
} | |
String victim = charArr[2].attack(charArr[targetNumber]); | |
if(charArr[targetNumber].getHealth() == 0){ | |
targetNumber ++; | |
System.out.println(charArr[targetNumber].getName() + "is dead"); | |
} | |
if (!victim.equals("")) { | |
System.out.println(victim + " has been attacked by the monster"); | |
charArr[targetNumber].health= charArr[targetNumber].getHealth() - w.strength; | |
System.out.println(victim + "'s health is " + charArr[targetNumber].getHealth()); | |
} | |
} | |
} | |
/******************* | |
private Character stringToChar(String str) { | |
for(i in allChars) { //allChars is an array of all characters | |
if(str.equalsNoCase(allChars[i].getName())) { | |
return allChars[i]; | |
} | |
} | |
return null; //extraChar is an extra character that is not in the array and has name "extraChar" | |
} | |
private void interpretAndExecute(String cmd) { | |
scmd = cmd.trim().split(" "); | |
if(scmd[0].equalsIgnoreCase("attack") && !stringToChar(scmd[1]).getName().equalsIgnoreCase("extraChar") && !stringToChar(scmd[2]).getName().equalsIgnoreCase("extraChar")) { | |
stringToChar(scmd[1]).attack(stringToChar(scmd[2])); | |
} | |
} | |
*******************/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Woman extends Character{ | |
public Woman(String n, int s, int h){ | |
super(n,s,h); | |
} | |
public String attack(Character target) { | |
if(Math.floor(Math.random() * 10) == 7) { | |
System.out.println("Attack Unsuccessful"); | |
return ""; | |
} else { | |
System.out.println("Attack Successful"); | |
return target.getName(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment