items
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
Room Name: Room 1
|
||||
Room Description: This is room<br>1
|
||||
Room Description: You are in a stone-walled room, surrounded by
|
||||
Exit Rooms: E-Room 2
|
||||
Room Name: Room 2
|
||||
Room Description: This is Room 2
|
||||
|
||||
@@ -11,4 +11,7 @@ w, direction
|
||||
s, direction
|
||||
e, direction
|
||||
up, direction
|
||||
down, direction
|
||||
down, direction
|
||||
eat, verb
|
||||
candlestick, item
|
||||
look, verb
|
||||
@@ -26,16 +26,18 @@ class Command {
|
||||
private String commandWord;
|
||||
private String direction;
|
||||
private ArrayList<String> otherWords;
|
||||
private String item;
|
||||
|
||||
/**
|
||||
* Create a command object. First and second word must be supplied, but
|
||||
* either one (or both) can be null. The command word should be null to
|
||||
* indicate that this was a command that is not recognised by this game.
|
||||
*/
|
||||
public Command(String firstWord, ArrayList<String> otherWords, String direction) {
|
||||
public Command(String firstWord, ArrayList<String> otherWords, String direction, String item) {
|
||||
commandWord = firstWord;
|
||||
this.otherWords = otherWords;
|
||||
this.direction = direction;
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -73,6 +75,9 @@ class Command {
|
||||
return otherWords.size() > 0;
|
||||
}
|
||||
|
||||
public boolean hasItem(){
|
||||
return item.equals("");
|
||||
}
|
||||
public boolean hasDirection() {
|
||||
return CommandWords.isDirection(commandWord);
|
||||
}
|
||||
|
||||
@@ -52,6 +52,14 @@ class CommandWords {
|
||||
return m_words.get(aString).equals("direction");
|
||||
}
|
||||
|
||||
public static boolean isItem(String aString){
|
||||
try {
|
||||
return m_words.get(aString).equals("item");
|
||||
} catch(Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Print all valid commands to System.out.
|
||||
*/
|
||||
@@ -63,4 +71,4 @@ class CommandWords {
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
}
|
||||
6
src/com/bayviewglen/zork/Entities/Entity.java
Normal file
6
src/com/bayviewglen/zork/Entities/Entity.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package com.bayviewglen.zork.Entities;
|
||||
|
||||
public class Entity {
|
||||
private int hunger;
|
||||
private int health;
|
||||
}
|
||||
29
src/com/bayviewglen/zork/Entities/Player.java
Normal file
29
src/com/bayviewglen/zork/Entities/Player.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package com.bayviewglen.zork.Entities;
|
||||
|
||||
import com.bayviewglen.zork.Items.Item;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Player extends Entity{
|
||||
private ArrayList<Item> inventory = new ArrayList<Item>();
|
||||
private final int INVENTORY_CAPACITY = 120;
|
||||
private int currentInventoryWeight;
|
||||
|
||||
public Player() {
|
||||
super();
|
||||
}
|
||||
|
||||
private boolean addToInventory(Item item){
|
||||
if(currentInventoryWeight + item.getWeight() < INVENTORY_CAPACITY){
|
||||
inventory.add(item);
|
||||
System.out.println(item.getName() + " add");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void removeFromInventory(Item item){
|
||||
inventory.remove(item);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,6 +5,8 @@ import java.io.FileNotFoundException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Scanner;
|
||||
|
||||
import com.bayviewglen.zork.Items.*;
|
||||
|
||||
/**
|
||||
* Class Game - the main class of the "Zork" game.
|
||||
*
|
||||
@@ -32,8 +34,10 @@ class Game {
|
||||
// masterRoomMap.get("GREAT_ROOM") will return the Room Object that is the
|
||||
// Great Room (assuming you have one).
|
||||
private HashMap<String, Room> masterRoomMap;
|
||||
private HashMap<Item, String> itemsInRooms = new HashMap<Item, String>();
|
||||
|
||||
private void initRooms(String fileName) throws Exception {
|
||||
itemsInRooms.put(new Candlestick(), "Candlestick");
|
||||
masterRoomMap = new HashMap<String, Room>();
|
||||
Scanner roomScanner;
|
||||
try {
|
||||
@@ -154,6 +158,12 @@ class Game {
|
||||
case "eat":
|
||||
System.out.println("Do you really think you should be eating at a time like this?");
|
||||
break;
|
||||
case "look":
|
||||
for (Item i : itemsInRooms.keySet()) {
|
||||
System.out.print(i.getName() + " ");
|
||||
}
|
||||
System.out.println();
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -194,4 +204,4 @@ class Game {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
9
src/com/bayviewglen/zork/Items/Candlestick.java
Normal file
9
src/com/bayviewglen/zork/Items/Candlestick.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package com.bayviewglen.zork.Items;
|
||||
public class Candlestick extends Item{
|
||||
|
||||
public Candlestick(){
|
||||
super(1, "Candlestick", "A slender stick of wax with a small wick of cotton sticking out of the top", true, 100, 1);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
58
src/com/bayviewglen/zork/Items/Item.java
Normal file
58
src/com/bayviewglen/zork/Items/Item.java
Normal file
@@ -0,0 +1,58 @@
|
||||
package com.bayviewglen.zork.Items;
|
||||
|
||||
public class Item {
|
||||
private int id;
|
||||
private String name;
|
||||
private String description;
|
||||
private boolean isConsumable;
|
||||
private int health;
|
||||
private int weight;
|
||||
|
||||
public Item(int id, String name, String description, boolean isConsumable, int health, int weight) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.isConsumable = isConsumable;
|
||||
this.health = health;
|
||||
this.weight = weight;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public int getHealth() {
|
||||
return health;
|
||||
}
|
||||
|
||||
public void setHealth(int health) {
|
||||
this.health = health;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public boolean isConsumable() {
|
||||
return isConsumable;
|
||||
}
|
||||
|
||||
public void setWeight(int weight) {
|
||||
this.weight = weight;
|
||||
}
|
||||
public int getWeight() {
|
||||
return weight;
|
||||
}
|
||||
public boolean equals(Item item){
|
||||
return this.id == item.id && this.name.equals(item.name) && this.description.equals(item.description) && this.isConsumable == item.isConsumable && this.health == item.health && this.weight == item.weight;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -34,6 +34,7 @@ class Parser {
|
||||
String inputLine = ""; // will hold the full input line
|
||||
String verb = "";
|
||||
String direction = "";
|
||||
String item = "";
|
||||
//String word2;
|
||||
ArrayList<String> words = new ArrayList<String>();
|
||||
ArrayList<String> otherWords = new ArrayList<String>();
|
||||
@@ -54,28 +55,18 @@ class Parser {
|
||||
if(CommandWords.isDirection(words.get(i))) {
|
||||
direction = words.get(i);
|
||||
}
|
||||
}else {
|
||||
}else if(CommandWords.isItem(words.get(i))){
|
||||
item = words.get(i);
|
||||
}
|
||||
else {
|
||||
otherWords.add(words.get(i));
|
||||
}
|
||||
}
|
||||
/*
|
||||
if (tokenizer.hasMoreTokens())
|
||||
word1 = tokenizer.nextToken(); // get first word
|
||||
else
|
||||
word1 = null;
|
||||
if (tokenizer.hasMoreTokens())
|
||||
word2 = tokenizer.nextToken(); // get second word
|
||||
else
|
||||
word2 = null;
|
||||
// note: we just ignore the rest of the input line.
|
||||
// Now check whether this word is known. If so, create a command
|
||||
// with it. If not, create a "nil" command (for unknown command).
|
||||
*/
|
||||
//System.out.println(verb);
|
||||
if (CommandWords.isCommand(verb))
|
||||
return new Command(verb, otherWords, direction);
|
||||
return new Command(verb, otherWords, direction, item);
|
||||
else
|
||||
return new Command(null, otherWords, direction);
|
||||
return new Command(null, otherWords, direction, item);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user