Hej med jer
Er netop i gang med at kode et spil, hvor der er nogle forskellige rum en spiller kan entrere. I et af rummene er der en trold, som spilleren skal dræbe for at komme videre - altså fortsætte til næste rum. Jeg har kodet således, at spilleren kan dræbe trolden men en udfordring er så, at så snart spilleren igen går tilbage til det rum, så er trolden igen at finde i rummet - både i form af rumbeskrivelsen og fordi trolden er ikke fjernet fra rummet..
Min kode i gameklassen ser ud som følgende nedenfor
- og sådan som jeg tænker, det kan implementeres er at lave en remove-metode i room-klassen. Og så lave en if-sætning, hvor jeg siger noget a la: hvis trolden ikke er i live, så skal den flyttes (altså ved at bruge "!"). Samtidig vil jeg så ændre system.out.print således at trolden ikke nævnes når den er dræbt.
Jeg har følgende kode, som ses nedenfor, hvori jeg tænker, det skal implementeres, men alt jeg har forsøgt mig - hverken compiler eller fungerer, når jeg kører spillet.
Mon én kan hjælpe?
1):
I Gameklassen: private void killOgre(Command command)
{
//If the player is not in the same room as the ogre - there is nothing to kill.
if(!player.getCurrentRoom().equals(ogre.getCurrentRoom()))
{
System.out.println("There is nothing to kill in this room");
return;
}
//If the player does not have the bad, he cannot kill the ogre.
//Otherwise it is possible to kill the ogre.
if(player.getItem(bat.getName()) == null)
{
System.out.println("You cannot kill the orgre without a bat");
return;
}
else {
System.out.println("You have now killed the ogre");
ogre.kill();
}
}
2):
I room-klassen: /**
* This method adds a character to the HashMap.
*/
public void addCharacter(Character name)
{
characters.add(name);
}
/** This method removes a character, when the player kills it.
*/
public void removeCharacter(Character character)
{
characters.remove(character);
}