Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 13.11.2009 17:13

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
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 13.11.2009 21:07

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
Príspevok Napísal autor témyOffline : 13.11.2009 22:03

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
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 13.11.2009 22:15

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
Príspevok Napísal autor témyOffline : 13.11.2009 22:35

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.
Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

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

v Počítačové hry

2

523

02.10.2011 23:43

majso Zobrazenie posledných príspevkov

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

3383

15.11.2008 16:51

tomxi Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra