Spil

Tags:    remove character java

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);
}




2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hvorfor ikke bare fjerne trolden saa snart den er doed? Eller saa snart spilleren har forladt rummet?



Hej Søren
Tak for dit svar. Ja, det er også det, jeg rigtig gerne vil, men jeg kan ikke finde ud hvordan jeg implementerer det. Har forsøgt at implementere det herunder if - else i Game-klassen:

else {
System.out.println("You have now killed the ogre");
ogre.kill();

}

Men uanset hvad jeg forsøger mig med, vil det ikke virke. Det skal lige siges, at jeg har haft programmering i to mdr., så intet sidder fast endnu, hvorfor sådan en simpel løsning som denne - ikke er så ligetil for mig. :)






t