need help with my world of zuul game....

my pick item method with my game class will not work and gives me an error of

add(Item) in Player cannot be applied to (java.lang.String)

can someone help.

here is the pick method within game class

privatevoid pickItem(Command command)

{

if(!command.hasSecondWord()){

// if there is no second word, we don't know what item you want

System.out.println("what item");

return;

}

String anItem = command.getSecondWord();

// try to pick the item

player.addItem(anItem);

}

and here is the addItem method within player class

publicvoid addItem(Item anItem)

{

if(playerWeight + anItem.getItemWeight() <= MAXWEIGHT){

playerWeight = playerWeight + anItem.getItemWeight();

carriedItems.add(anItem);

}else{

System.out.println("the player isnt Strong enough yet to carry this item");

}

}

[1569 byte] By [mollemana] at [2007-11-26 19:57:45]
# 1
the compiler is telling you exactly what the problem is. addItem expects an Item, you're giving it a String
georgemca at 2007-7-9 22:52:46 > top of Java-index,Java Essentials,New To Java...
# 2
> add(Item) in Player cannot be applied to (java.lang.String)You're passing a java.lang.String reference ("anItem") to addItem(), which expects an Item reference. Try passing an Item reference, or overload the addItem() method to accept a String.~
yawmarka at 2007-7-9 22:52:46 > top of Java-index,Java Essentials,New To Java...
# 3
but im lost with the code.......please help......i'm trying that when a string is given it associates it with a certain item.
mollemana at 2007-7-9 22:52:46 > top of Java-index,Java Essentials,New To Java...
# 4
public void addItem(String itemName) {// your implementation goes here...}~
yawmarka at 2007-7-9 22:52:46 > top of Java-index,Java Essentials,New To Java...
# 5
> but im lost with the code.......please help......i'm> trying that when a string is given > it associates it with a certain item.you need a way of making that association, then. possibly a HashMap of String to Item
georgemca at 2007-7-9 22:52:46 > top of Java-index,Java Essentials,New To Java...
# 6
im really knew to this programming and am finding it difficult and need this to be done soon.once i get this i should be flying it slowing me down so much
mollemana at 2007-7-9 22:52:46 > top of Java-index,Java Essentials,New To Java...
# 7

full game code

public class Game

{

private Parser parser;

private Player player;

/**

* Create the game and initialise its internal map.

*/

public Game(String playerName)

{

player = new Player(playerName);

createRooms();

parser = new Parser();

}

/**

* Create all the rooms and link their exits together.

*/

private void createRooms()

{

Room outside, theatre, pub, lab, office, cellar;

Item pint;

// create the rooms

outside = new Room("outside the main entrance of the university");

theatre = new Room("in a lecture theatre");

pub = new Room("in the campus pub");

lab = new Room("in a computing lab");

office = new Room("in the computing admin office");

cellar = new Room("in the cellar");

pint = new Item("pint", "alcholic bvreage", 10);

// initialise room exits

outside.setExit("east", theatre);

outside.setExit("south", lab);

outside.setExit("west", pub);

theatre.setExit("west", outside);

pub.setExit("east", outside);

pub.addItem("pint", pint);

lab.setExit("north", outside);

lab.setExit("east", office);

office.setExit("west", lab);

office.setExit("down", cellar);

cellar.setExit("up", office);

player.enterRoom(outside); // start game outside

}

/**

* Main play routine. Loops until end of play.

*/

public void play()

{

printWelcome();

// Enter the main command loop. Here we repeatedly read commands and

// execute them until the game is over.

boolean finished = false;

while (! finished) {

Command command = parser.getCommand();

finished = processCommand(command);

}

System.out.println("Thank you for playing. Good bye.");

}

/**

* Print out the opening message for the player.

*/

private void printWelcome()

{

System.out.println();

System.out.println("Welcome to the World of Zuul!");

System.out.println("World of Zuul is a new, incredibly boring adventure game.");

System.out.println("Type 'help' if you need help.");

System.out.println();

System.out.println(player.getCurrentRoom().getLongDescription());

}

/**

* Given a command, process (that is: execute) the command.

* @param command The command to be processed.

* @return true If the command ends the game, false otherwise.

*/

private boolean processCommand(Command command)

{

boolean wantToQuit = false;

if(command.isUnknown()) {

System.out.println("I don't know what you mean...");

return false;

}

String commandWord = command.getCommandWord();

if (commandWord.equals("help")) {

printHelp();

}

else if (commandWord.equals("go")) {

goRoom(command);

}

else if (commandWord.equals("quit")) {

wantToQuit = quit(command);

}

else if (commandWord.equals("look")) {

processLook();

}

// else command not recognised.

return wantToQuit;

}

// implementations of user commands:

/**

* Print out some help information.

* Here we print some stupid, cryptic message and a list of the

* command words.

*/

private void printHelp()

{

System.out.println("You are lost. You are alone. You wander");

System.out.println("around at the university.");

System.out.println();

System.out.println("Your command words are:");

parser.showCommands();

}

/**

* Try to go to one direction. If there is an exit, enter the new

* room, otherwise print an error message.

*/

private void goRoom(Command command)

{

if(!command.hasSecondWord()) {

// if there is no second word, we don't know where to go...

System.out.println("Go where?");

return;

}

String direction = command.getSecondWord();

// Try to leave current room.

Room nextRoom = player.getCurrentRoom().getExit(direction);

if (nextRoom == null) {

System.out.println("There is no door!");

}

else {

player.enterRoom(nextRoom);

System.out.println(player.getCurrentRoom().getLongDescription());

}

}

/**

* "Quit" was entered. Check the rest of the command to see

* whether we really quit the game.

* @return true, if this command quits the game, false otherwise.

*/

private boolean quit(Command command)

{

if(command.hasSecondWord()) {

System.out.println("Quit what?");

return false;

}

else {

return true; // signal that we want to quit

}

}

/**

* "look" was entered. look around the room and print the descripton

* of the room

*/

private void processLook()

{

System.out.println(player.getCurrentRoom().getLongDescription());

}

/**

*try to "pick an item". if that item can be picked.

*keep it.

*/

private void pickItem(Command command)

{

if(!command.hasSecondWord()) {

// if there is no second word, we don't know what item you want

System.out.println("what item");

return;

}

String anItem = command.getSecondWord();

// try to pick the item

player.addItem(anItem);

}

full player code

public class Player

{

// instance variables

private String playerName;

private ArrayList <Item> carriedItems;

private static int MAXWEIGHT = 100;

private double playerWeight;

private Room currentRoom;

/**

* Constructor for objects of class Player

*/

public Player(String name)

{

this.playerName = playerName;

carriedItems = new ArrayList<Item>();

playerWeight = 0;

}

/**

*A method to return the player's name

*/

public String getPlayerName()

{

return playerName;

}

/**

* A method to return the weight of the player by which items

* have added too

*/

public double getPlayerWeight()

{

return playerWeight;

}

/**

* returns the max weight a player can hold

*/

public int getMAXWEIGHT()

{

return MAXWEIGHT;

}

/**

* adds an item

*/

/**

* a method

*/

public Room getCurrentRoom()

{

return currentRoom;

}

/**

* The player enters the room

*/

public void enterRoom(Room nextRoom)

{

currentRoom = nextRoom;

}

/**

* this method will add an item to the player

*/

public void addItem(Item anItem)

{

if(playerWeight + anItem.getItemWeight() <= MAXWEIGHT){

playerWeight = playerWeight + anItem.getItemWeight();

carriedItems.add(anItem);

}else{

System.out.println("the player isnt Strong enough yet to carry this item");

}

}

/**

* this method will remove the item from the player and place the item in that room

*

*/

public void dropItem(Item anItem)

{

carriedItems.remove(anItem);

}

}

full item class

import java.util.HashMap;

/**

* Write a description of class Item here.

*

* @author (your name)

* @version (a version number or a date)

*/

public class Item

{

// instance variables - replace the example below with your own

private String name;

private String description;

private int weight;

/**

* Constructor for objects of class Item

*/

public Item(String name,String description, int weight)

{

this.name = name;

this.description = description;

this.weight = weight;

}

/**

* A method to return the description of the item

*/

public String getDescription()

{

return description;

}

/**

* A method to return the weight of the item

*/

public int getItemWeight()

{

return weight;

}

/**

* A method to return the name of the item

*/

public String getName()

{

return name;

}

/**

* A toString method that prints the details of the

* item as a String.

*/

public String toString()

{

return "Name : " + name +"description : " +description +

"wieght : " +weight;

}

}

and full room code

import java.util.Set;

import java.util.HashMap;

import java.util.Iterator;

/**

* Class Room - a room in an adventure game.

*

* This class is part of the "World of Zuul" application.

* "World of Zuul" is a very simple, text based adventure game.

*

* A "Room" represents one location in the scenery of the game. It is

* connected to other rooms via exits. For each existing exit, the room

* stores a reference to the neighboring room.

*

* @author Michael Kolling and David J. Barnes

* @version 2006.03.30

*/

public class Room

{

private String description;

private HashMap<String, Room> exits;// stores exits of this room.

private HashMap<String, Item> items;

/**

* Create a room described "description". Initially, it has

* no exits. "description" is something like "a kitchen" or

* "an open court yard".

* @param description The room's description.

*/

public Room(String description)

{

this.description = description;

exits = new HashMap<String, Room>();

items = new HashMap<String, Item>();

}

/**

* Define an exit from this room.

* @param direction The direction of the exit.

* @param neighbor The room to which the exit leads.

*/

public void setExit(String direction, Room neighbor)

{

exits.put(direction, neighbor);

}

/**

* @return The short description of the room

* (the one that was defined in the constructor).

*/

public String getShortDescription()

{

return description;

}

/**

* Return a description of the room in the form:

*You are in the kitchen.

*Exits: north west

* @return A long description of this room

*/

public String getLongDescription()

{

return "You are " + description + ".\n" + getExitString() + ".\n" + getItemString() ;

}

/**

* Return a string describing the room's exits, for example

* "Exits: north west".

* @return Details of the room's exits.

*/

private String getExitString()

{

String returnString = "Exits:";

Set<String> keys = exits.keySet();

for(String exit : keys) {

returnString += " " + exit;

}

return returnString;

}

/**

* returns a string descrbing the items within a room

*/

private String getItemString()

{

String returnString = "Items in the room are:";

Set<String> keys = items.keySet();

for(String item : keys) {

returnString += " " + item;

}

return returnString;

}

/**

* Return the room that is reached if we go from this room in direction

* "direction". If there is no room in that direction, return null.

* @param direction The exit's direction.

* @return The room in the given direction.

*/

public Room getExit(String direction)

{

return exits.get(direction);

}

/**

* add items to a room

*/

public void addItem(String name, Item object)

{

items.put(name, object);

}

/**

* A method that will remove item's from the hashMap of item's that

* the room holds

*/

public void removeItem(String name)

{

items.remove(name);

}

}

mollemana at 2007-7-9 22:52:47 > top of Java-index,Java Essentials,New To Java...
# 8

> im really knew to this programming and am finding it

> difficult and need this to be done soon.

> once i get this i should be flying it slowing me down

> so much

it won't be done soon. it'll be done when you get it done. take your time, don't panic, and think about what you're trying to achieve. read [url=http://java.sun.com/j2se/1.5.0/docs/api/]this[/url] for a start, it's probably going to be very useful for this. but I'm not going to write the code for you, you won't learn much that way!

georgemca at 2007-7-9 22:52:47 > top of Java-index,Java Essentials,New To Java...
# 9
it's just there that im lost can someone please help with this little part....im trying to understand its just i cant get it....i have been wraped around this puzzle for nearly 3 hours .......its so small but yet so annoyin
mollemana at 2007-7-9 22:52:47 > top of Java-index,Java Essentials,New To Java...
# 10

> it's just there that im lost can someone please help

> with this little part....im trying to understand its

> just i cant get it....i have been wraped around this

> puzzle for nearly 3 hours .......its so small but yet

> so annoyin

I've given you a link to follow. see if that gives you any clues

georgemca at 2007-7-9 22:52:47 > top of Java-index,Java Essentials,New To Java...
# 11

> it's just there that im lost can someone please help

> with this little part....im trying to understand its

> just i cant get it....

Read replies 1, 2, 4, and 5 again. If you're still confused after that, you'll need to be specific about what's confusing you. Telling us you're confused and that the problem is annoying is useless noise. We know you're stressed; there's no need to keep reminding us, and wasting time on constantly reiterating that only hurts you.

~

yawmarka at 2007-7-9 22:52:48 > top of Java-index,Java Essentials,New To Java...
# 12
thats an enclycopedia......how will i find a clue there...heehe....... seriosly please help just for this one thing
mollemana at 2007-7-9 22:52:49 > top of Java-index,Java Essentials,New To Java...
# 13

> seriosly please help just for this one thing

What "help" do you need? What, specifically, do you not understand?

You've already been given the very direct answer to your question. If you need additional assistance, you'll need to explain why. See this: [url=http://homepages.tesco.net/~J.deBoynePollard/FGA/problem-report-standard-litany.html]Problem Report Standard Litany[/url].

~

yawmarka at 2007-7-9 22:52:50 > top of Java-index,Java Essentials,New To Java...
# 14

> thats an enclycopedia......how will i find a clue

> there...heehe....... seriosly please help just for

> this one thing

it's not an encyclopedia, it's javadocs. you need to be able to read and interpret them if you want to write java well. it's not as scary as it looks, and it will help you solve this problem

georgemca at 2007-7-9 22:52:50 > top of Java-index,Java Essentials,New To Java...
# 15

> it's not an encyclopedia, it's javadocs.

With respect, the API javadocs can be intimidating to people new to Java. I'm not disagreeing with your point that they're absolutely essential at all, but the javadocs aren't necessarily immediately intuitive to people who aren't used to using them*. :o)

~

* Again, I agree that it's important to get used to using them ASAP.

yawmarka at 2007-7-21 17:47:33 > top of Java-index,Java Essentials,New To Java...
# 16

> > it's not an encyclopedia, it's javadocs.

>

> In all reasonableness, the API javadocs can be

> intimidating to people new to Java. I'm not

> disagreeing with your point that they're absolutely

> essential, but the javadocs aren't necessarily

> immediately intuitive. :o)

>

>

> ~

screw reasonableness. lets baffle the noobs :-)

yeh, they are intimidating, but the solution lies within. @OP, even if Teh Docs ™ are intimidating, you can still use google et al to find out more about the subject at hand (HashMap in this instance). the interweb is chock-full of java tutorials that will help you a lot quicker than the constant back-and-forth of a forum

georgemca at 2007-7-21 17:47:33 > top of Java-index,Java Essentials,New To Java...
# 17

> yeh, they are intimidating, but the solution lies

> within. @OP, even if Teh Docs are

> intimidating, you can still use google et al to find

> out more about the subject at hand (HashMap in this

> instance). the interweb is chock-full of java

> tutorials that will help you a lot quicker than the

> constant back-and-forth of a forum

I agree completely; I was just expressing my sympathy for people attempting to navigate the javadocs for the first - nth time. :o)

~

yawmarka at 2007-7-21 17:47:33 > top of Java-index,Java Essentials,New To Java...