[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Textová adventúra

Registrovaný: 04.12.08
Prihlásený: 16.12.10
Príspevky: 59
Témy: 10 | 10
NapísalOffline : 13.11.2009 17:13 | Textová adventúra

Zdravím. Nechápem prečo mi nejde prechádzať z miestnosti do miestnosti...teda nastaviť novú currentRoom...

Kód:
 public void setCurrentRoom(Room currentRoom) {
      this.currentRoom = currentRoom;
    }


píše mi, že nekompatibilné typy...ale keď podľa netbeans "nápovedy" hodím pred currentRoom (RoomImpl) tak to aj tak nejde...

konkrétne v class East v metóde execute( Game game ) to mám takto

Kód:
 Room currentRoom = game.getCurrentRoom();
        if(currentRoom.getEast()!=null)  game.setCurrentRoom(currentRoom.getEast());

Zmenil som aj typ currentRoom z RoomImpl na Room v GameImpl...síce nevypisuje chyby v kóde...no vypíše potom chybu pri príkaze vychod...

metoda setCurrentRoom nastavi private Room currentRoom na ten parameter typu Room...a currentRoom.getEast je public Room...ciže vráti rovnaký typ...

Exception in thread "main" java.lang.NullPointerException
at commands.East.execute(East.java:31) toje : Room currentRoom = game.getCurrentRoom();
at textovka.Parser.getCommand(Parser.java:49) to je : list.get(i).execute(null); // vyvolá metódu execute danej triedy/príkazu/ čo mám v liste
at textovka.GameImpl.play(GameImpl.java:37) to je : prikaz.getCommand(line);
at textovka.Main.main(Main.java:35) to je : hra.play();
Java Result: 1

so...where ist he problem ? :/

dodávam aj kompletný projekt v rar keby niečo...


http://www.edisk.sk/stahni/76496/Textovka.rar_34.28KB.html


_________________
Robím, čo možem. Keď nerobím, nemožem.
Offline

Skúsený užívateľ
Skúsený užívateľ
Textová adventúra

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 13.11.2009 21:07 | Textová adventúra

V parser.java na riadku 49 voláš list.get(i).execute(null). list.get(i) je typu East, takže sa zavolá metóda execute s parametrom null. Takže pri vykonávaní East.execute bude parameter game rovný null a na null nemôžeš volať žiadne metódy. game.getCurrentRoom() je nedefinované, ak game == null.

Je to chyba v návrhu, lebo v triede Parser sa nikde nevyskytuje referencia na Game, takže nemáš ako poslať tú referenciu triede East.


_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Textová adventúra

Registrovaný: 04.12.08
Prihlásený: 16.12.10
Príspevky: 59
Témy: 10 | 10
Napísal autor témyOffline : 13.11.2009 22:03 | Textová adventúra

jj to som si všimol aj ja, že volám metódu game....a pritom game mám ako null...no len...neviem ako to vyriešiť...skúšal som deklarovať tu premennú game. no aj tak to nefungovalo....máš nejaké konkrétne riešenie?


_________________
Robím, čo možem. Keď nerobím, nemožem.
Offline

Skúsený užívateľ
Skúsený užívateľ
Textová adventúra

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 13.11.2009 22:15 | Textová adventúra

No musíš si ešte raz poriadne premyslieť, ako budú jednotlivé triedy navrhnuté, ako si budú medzi sebou vymieňať informácie atď. Dobré je si to napr. najprv nakresliť atď.

A mal by si niečo vedieť o [url=http://cs.wikipedia.org/wiki/Návrhový_vzor]návrhových vzoroch[/url].


_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Textová adventúra

Registrovaný: 04.12.08
Prihlásený: 16.12.10
Príspevky: 59
Témy: 10 | 10
Napísal autor témyOffline : 13.11.2009 22:35 | Textová adventúra

no tak v tomto ja úplne samostatný byť nemožem, kedže máme rozhranie/knižnicu/ ktoré musíme implementovať...a cvika podľa ktorých musíme íst...:/...nič no ked nenájdem riešenie do štvrtka tak to prekonzultujem s cvičiacim na cviku...


_________________
Robím, čo možem. Keď nerobím, nemožem.
 [ Príspevkov: 5 ] 


Textová adventúra



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

textova hra

[ Choď na stránku:Choď na stránku: 1, 2, 3 ]

v Ostatné

63

3446

15.11.2008 16:51

tomxi

V tomto fóre nie sú ďalšie neprečítané témy.

dobra adventura

v Počítačové hry

2

555

02.10.2011 23:43

majso



© 2005 - 2024 PCforum, edited by JanoF