001 002import java.util.HashMap; 003/** 004 * This class is part of the "Pere-noel" application. 005 * "Pere Noel" is a very simple, text based adventure game. 006 * 007 * This class holds an enumeration of all command words known to the game. 008 * It is used to recognise commands as they are typed in. 009 * 010 * @author Célia PRIOL & Benoît CHAUVEAU 011 */ 012 013public class CommandWords 014{ 015 // a constant array that holds all valid command words 016 017 //"go", "quit", "help", "look","eat","back","take","drop" 018 ; 019 private HashMap<String, CommandWord> validCommands; 020 /** 021 * Constructor - initialise the command words. 022 */ 023 public CommandWords() 024 { 025// validCommands = new HashMap<String, CommandWord>(); 026// validCommands.put("help", CommandWord.HELP); 027// validCommands.put("quit", CommandWord.QUIT); 028// validCommands.put("go", CommandWord.GO); 029// validCommands.put("look", CommandWord.LOOK); 030// validCommands.put("eat", CommandWord.EAT); 031// validCommands.put("take", CommandWord.TAKE); 032// validCommands.put("drop", CommandWord.DROP); 033// validCommands.put("back", CommandWord.BACK); 034 validCommands = new HashMap<String, CommandWord>(); 035 for(CommandWord command : CommandWord.values()) { 036 if(command != CommandWord.UNKNOWN) { 037 validCommands.put(command.toString(), command); 038 } 039 } 040 041 } 042 043 /** 044 * Check whether a given String is a valid command word. 045 * @return true if a given string is a valid command, 046 * false if it isn't. 047 */ 048 public boolean isCommand(String aString) 049 { 050 // for(int i = 0; i < validCommands.length; i++) { 051 // if(validCommands[i].equals(aString)) 052 // return true; 053 // } 054 // return false; 055 056 return validCommands.containsKey(aString); 057 } 058 059 public CommandWord getCommandWord(String commandWord) 060 { 061 CommandWord command = validCommands.get(commandWord); 062 if(command != null) { 063 return command; 064 } 065 else { 066 return CommandWord.UNKNOWN; 067 } 068 } 069 /** 070 * Retourne une String de toutes les commandes possibles. 071 */ 072 public String showAll() 073 {StringBuilder commands = new StringBuilder(); 074 for(String command : validCommands.keySet()) 075{ 076 commands.append(" "+command ); 077} 078return commands.toString(); 079} 080 081}