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
7 changes: 7 additions & 0 deletions assignments/strategy_pattern/Arrows.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package assignments.strategy_pattern;

public class Arrows implements IWeapon {
public String getWeapon() {
return "arrows";
}
}
32 changes: 32 additions & 0 deletions assignments/strategy_pattern/Character.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package assignments.strategy_pattern;

public class Character {
private IWeapon characterWeapon;
private String characterSpecies;

// Character Constructor
public Character(String characterSpecies, IWeapon characterWeapon) {
this.characterSpecies = characterSpecies;
this.characterWeapon = characterWeapon;
}

// Set character species
public void setCharacterSpecies(String characterSpecies) {
this.characterSpecies = characterSpecies;
}

// Set character weapon
public void setCharacterWeapon(IWeapon characterWeapon) {
this.characterWeapon = characterWeapon;
}

// get character species
public String getSpecies() {
return characterSpecies;
}

// get character weapon
public String fireWeapon() {
return characterWeapon.getWeapon();
}
}
7 changes: 7 additions & 0 deletions assignments/strategy_pattern/Fireball.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package assignments.strategy_pattern;

public class Fireball implements IWeapon {
public String getWeapon() {
return "fireball";
}
}
5 changes: 5 additions & 0 deletions assignments/strategy_pattern/IWeapon.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package assignments.strategy_pattern;

public interface IWeapon {
public String getWeapon();
}
84 changes: 84 additions & 0 deletions assignments/strategy_pattern/StrategyGame.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package assignments.strategy_pattern;

import java.util.ArrayList;
import java.util.Scanner;

public class StrategyGame {
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
String chosenCharacter;
String chosenWeapon;
Character player = null;

ArrayList<String> characterSpecies = new ArrayList<>();

characterSpecies.add("knight");
characterSpecies.add("archer");
characterSpecies.add("mage");
characterSpecies.add("rogue");
characterSpecies.add("barbarian");

System.out.println("Hello!");
System.out.println("What class are you?");
System.out.println("Choose:");
System.out.print("\t");
for (String characterChar : characterSpecies) {
System.out.print(characterChar + " ");
}
System.out.println("");

chosenCharacter = userInput.nextLine();

if (chosenCharacter.equalsIgnoreCase("knight")) {
player = new Character("knight", new Sword());
} else if (chosenCharacter.equalsIgnoreCase("archer")) {
player = new Character("archer", new Arrows());
} else if (chosenCharacter.equalsIgnoreCase("mage")) {
player = new Character("mage", new Fireball());
} else if (chosenCharacter.equalsIgnoreCase("rogue")) {
player = new Character("rogue", new Sword());
} else if (chosenCharacter.equalsIgnoreCase("barbarian")) {
player = new Character("barbarian", new Arrows());
}

System.out.println("Oh no! A Dragon!!!");
System.out.println(" , ,");
System.out.println(" \\\\ \\\\");
System.out.println(" ) \\\\ \\\\ _p_");
System.out.println(" )^\\))\\)) / *\\");
System.out.println(" \\_|| || / /^`-'");
System.out.println(" __ -\\ \\\\--/ /");
System.out.println(" <' \\___/ ___. )'");
System.out.println(" `====\\ )___/\\\\");
System.out.println(" // `\"");
System.out.println(" \\ / \\");

ArrayList<String> characterWeapons = new ArrayList<>();

characterWeapons.add("sword");
characterWeapons.add("arrows");
characterWeapons.add("fireball");

System.out.println("Attack it!!");
System.out.println("Please choose the weapon you want for this battle!");
System.out.print("\t");
for (String characterChar : characterWeapons) {
System.out.print(characterChar + " ");
}
System.out.println("");

chosenWeapon = userInput.nextLine();

if (chosenWeapon.equalsIgnoreCase("sword")) {
player.setCharacterWeapon(new Sword());
} else if (chosenWeapon.equalsIgnoreCase("arrows")) {
player.setCharacterWeapon(new Arrows());
} else if (chosenWeapon.equalsIgnoreCase("fireball")) {
player.setCharacterWeapon(new Fireball());
}

System.out.println("The " + player.getSpecies() + " attacks with " + player.fireWeapon() + "!");

userInput.close();
}
}
7 changes: 7 additions & 0 deletions assignments/strategy_pattern/Sword.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package assignments.strategy_pattern;

public class Sword implements IWeapon {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent Job!

public String getWeapon() {
return "sword";
}
}