关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
两天前关门了。
改进这个问题
所以我是一个完全的编码新手,我听说java通常不是一个入门的,但我在这里。。。
所以对于我的一个作业,我应该添加一些方法,允许我根据我所在的房间来“取”和“放”项目。到目前为止,一切都还算顺利。
我已经添加了我认为的所有代码,让播放器根据对象的当前位置拾取对象,但是当我运行它时,会得到一个nullpointerexception。所有涉及的代码将粘贴在下面,但简而言之,我做错了什么?
public boolean ableToTake(String itemName)
{
Item item = currentRoom.takeTheItem(itemName);
if(item == null)
{
return false;
}
else if(!itemInHandAlr())
{
return true;
}
else
{
return false;
}
}
public void takeItem(String itemName)
{
if(ableToTake(itemName))
{
Item item = currentRoom.takeTheItem(itemName);
setTakenItem(item);
currentRoom.removeItem(item);
System.out.println("You have picked up the item.");
}
else
{
if(itemInHandAlr())
{
System.out.println("You're already carrying this item.");
}
else
{
System.out.println("I don't think there's a/an " + itemName + " in here.");
}
}
}
private void takeFromRoom(Command command)
{
if(!command.hasSecondWord())
{
System.out.println("This isn't an item you can take...");
}
String itemName = command.getSecondWord();
player.takeItem(itemName);
}
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("look")) {
look();
}
else if (commandWord.equals("take")) {
takeFromRoom(command);
}
else if (commandWord.equals("drop")) {
dropItemCarrying(command);
}
else if (commandWord.equals("quit")) {
wantToQuit = quit(command);
}
else if(commandWord.equals("back")) {
goBackRoom();
}
// else command not recognised.
return wantToQuit;
}
暂无答案!
目前还没有任何答案,快来回答吧!