From bad3490b1e425250ddccbc3946ffbd8afa372c69 Mon Sep 17 00:00:00 2001 From: jslightham <31053827+jslightham@users.noreply.github.com> Date: Wed, 29 May 2019 10:56:22 -0400 Subject: [PATCH] synonyms, and take all command --- data/rooms.dat | 2 +- data/synonyms.dat | 42 ++++++++++++++++++- src/com/bayviewglen/zork/CommandWords.java | 27 +++++++++++- src/com/bayviewglen/zork/Entities/Player.java | 2 + src/com/bayviewglen/zork/Game.java | 22 ++++++++-- src/com/bayviewglen/zork/Parser.java | 1 + 6 files changed, 90 insertions(+), 6 deletions(-) diff --git a/data/rooms.dat b/data/rooms.dat index bc4bad9..15c28a3 100644 --- a/data/rooms.dat +++ b/data/rooms.dat @@ -1,7 +1,7 @@ Room name: Circle Room Room Description: You are in a circular room. The windows to the east are covered with boards that let in just enough light to see.
There seems to be some writing on the wall. Locked: false -Items:Lockpick,Milk, +Items:Lockpick,Milk,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword,Sword Riddle: "Who is never hungry during Christmas?", "The turkey because he is always stuffed." Exit Rooms: W-Apple Hallway diff --git a/data/synonyms.dat b/data/synonyms.dat index c767262..1c948f9 100644 --- a/data/synonyms.dat +++ b/data/synonyms.dat @@ -1 +1,41 @@ -This is for the synonyms for the parser \ No newline at end of file +suicide, die +grab, take +destroy, attack +kill, attack +?, help +leave, quit +drive, go +move, go +glance, look +glimpse, look +peek, look +gander, look +charge, attack +raid, attack +strike, attack +drown, die +expire, die +perish, die +bounce, jump +dive, jump +fall, jump +rise, jump +free, unlock +release, unlock +leave, drop +raid, attack +bite, eat +chew, eat +devour, eat +dine, eat +feed, eat +ingest, eat +inhale, eat +nibble, eat +swallow, eat +absorb, eat +advice, help +aid, help +benefit, help +scram, go +hightail, go \ No newline at end of file diff --git a/src/com/bayviewglen/zork/CommandWords.java b/src/com/bayviewglen/zork/CommandWords.java index de1ff85..7605c77 100644 --- a/src/com/bayviewglen/zork/CommandWords.java +++ b/src/com/bayviewglen/zork/CommandWords.java @@ -16,7 +16,8 @@ import java.util.Scanner; */ class CommandWords { // a constant array that holds all valid command words - private static HashMap m_words = new HashMap();; + private static HashMap m_words = new HashMap(); + private static HashMap m_synonyms = new HashMap(); /** * Constructor - initialise the command words. */ @@ -33,6 +34,18 @@ class CommandWords { }catch (Exception e) { e.printStackTrace(); } + + try { + Scanner in = new Scanner(new File("data/synonyms.dat")); + while(in.hasNext()){ + String text = in.nextLine(); + String[] textarr = text.split(","); + m_synonyms.put(textarr[0], textarr[1].substring(1)); + } + in.close(); + }catch (Exception e) { + e.printStackTrace(); + } } /** @@ -82,4 +95,16 @@ class CommandWords { } System.out.println(); } + + public static String replaceSynonym(String word) { + try { + String words = m_synonyms.get(word); + if(words == null) + throw new Exception(); + else + return words; + } catch(Exception e) { + return word; + } + } } \ No newline at end of file diff --git a/src/com/bayviewglen/zork/Entities/Player.java b/src/com/bayviewglen/zork/Entities/Player.java index 37ecde8..670a863 100644 --- a/src/com/bayviewglen/zork/Entities/Player.java +++ b/src/com/bayviewglen/zork/Entities/Player.java @@ -16,6 +16,7 @@ public class Player extends Entity{ public boolean addToInventory(Item item){ if(currentInventoryWeight + item.getWeight() < INVENTORY_CAPACITY){ + currentInventoryWeight+= item.getWeight(); inventory.add(item); return true; } @@ -26,6 +27,7 @@ public class Player extends Entity{ for(int i =0; i clazz; Item object; try { @@ -445,11 +462,9 @@ class Game { }else { System.out.println("That enemy is not in this room!"); } - }else { System.out.println("Attack what?"); } - } else { if(command.hasItem()) { boolean has = false; @@ -468,6 +483,7 @@ class Game { break; case "read": + break; default: return false; } diff --git a/src/com/bayviewglen/zork/Parser.java b/src/com/bayviewglen/zork/Parser.java index 2c429e7..1582bc0 100644 --- a/src/com/bayviewglen/zork/Parser.java +++ b/src/com/bayviewglen/zork/Parser.java @@ -52,6 +52,7 @@ class Parser { words.add(tokenizer.nextToken()); } for(int i=0; i