Author Topic: OP - Objektove programovanie  (Read 188978 times)

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #575 on: 01.05.2008, 20:41:20 »
xml je zložitejšia, treba viac nastavovať... ale má aj výhody, ale to je nepodstatné v tomto prípade :)

pri bin. to serializable musí byť... a potom by to už malo ísť...
ak to nejde, musí to hodiť nejakú výnimku (inú ako tú, čo si dal - ak správne chápem, tá sa vyskytla, keď si to šiel robiť po jednotlivých prvkoch) - a podľa nej by sa mohlo dať presnejšie určiť, v čom je problém... pastni ju sem :)
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #576 on: 01.05.2008, 20:42:15 »
btw:

ten:
Object reference not set to an instance of an object.

ti hodilo preto, že si sa pokúsil serializovať položku item, ktorá ukazovala na null... teda tam objekt nebol :) takže si sa pokúsil serializovať neexistujúci objekt
All code is crap.

42

kornas

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: OP - Objektove programovanie
« Reply #577 on: 01.05.2008, 20:47:00 »
btw:

ten:
Object reference not set to an instance of an object.

ti hodilo preto, že si sa pokúsil serializovať položku item, ktorá ukazovala na null... teda tam objekt nebol :) takže si sa pokúsil serializovať neexistujúci objekt

to som si myslel, len som nevedel naisto, dik. Len teraz ako to vytiehnut, ked ulozim len existujuce objekty :( v cykle sa to asi nebude dat, lebo by objekty popriradzovalo zaradom od zaciatku a nevynechavalo by tie, ktore maju byt NULL :( nie ? (naviem ci som to dobre popisal... ak nie, napiste a skusim to popisat zrozumitelnejsie) Vdaka.

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #578 on: 01.05.2008, 20:49:36 »
btw:

ten:
Object reference not set to an instance of an object.

ti hodilo preto, že si sa pokúsil serializovať položku item, ktorá ukazovala na null... teda tam objekt nebol :) takže si sa pokúsil serializovať neexistujúci objekt

to som si myslel, len som nevedel naisto, dik. Len teraz ako to vytiehnut, ked ulozim len existujuce objekty :( v cykle sa to asi nebude dat, lebo by objekty popriradzovalo zaradom od zaciatku a nevynechavalo by tie, ktore maju byt NULL :( nie ? (naviem ci som to dobre popisal... ak nie, napiste a skusim to popisat zrozumitelnejsie) Vdaka.

najlepšie tak, že uložíš celé pole naraz :)

ak to budeš ukladať v cykle, tak to pole úplne presne nebudeš vedieť (za predpokladu, že nechceš komplikovať kód zápisu a načítania) obnoviť... (presne ako si napísal - pri čítaní by ti tie null nepovynechávalo)
All code is crap.

42

kornas

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: OP - Objektove programovanie
« Reply #579 on: 01.05.2008, 23:28:31 »
Skusal som doimplementovat interface-i, no na taky kod sa neda pozerat...  :mishela  Tie interface-i to bolo nieco strasne to tam dopasovat...  :hammer: No ale ked to niekomu pomoze, prosim... Skoda len, ze to bol pekne upraveny zdrojak. Len nech berie potom aj ohlad na to, ze to tam bolo len dolepene... keby boli tie interface-i od zaciatku zadane, je to ine, ale nie vtedy, ked uz mame odovzdavat zadania a skoro kazdy uz rozrobene... A  okrem toho, aspon v mojom pripade, tie interface-i su naimplementovane, no nikde ich nevuzivam, kedze mam uz veci poriesene inak  :trestac:
a to NextStep ani nerobim... to by som musel zacat odznova...
dost bolo kodenia idem oslavit 1. maj  :drink: :beer1: :alc:
« Last Edit: 01.05.2008, 23:41:59 by kornas »

kornas

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: OP - Objektove programovanie
« Reply #580 on: 01.05.2008, 23:29:22 »
Skoro by som zabudol... Agamemnon, vdaka za pomoc.

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #581 on: 01.05.2008, 23:30:49 »
A  okrem toho, aspon v mojom pripade, tie interface-i su naimplementovane, no nikde ich nevuzivam

hehe :)

Skoro by som zabudol... Agamemnon, vdaka za pomoc.

nz, np :)
All code is crap.

42

kOsTi

  • Hero Member
  • *****
  • Posts: 12765
    • View Profile
    • pretaktovanie.sk
Re: OP - Objektove programovanie
« Reply #582 on: 02.05.2008, 00:49:35 »
mala orazocka na tento helpdesk (citaj Agamemnon)... :)

mam serializovany objekt impementujuci IGame... deserializujem ho potom ale ako z toho potom nakopnut hru? :D (mozno je to nieco easy ale nenapada ma momentalne)


EDIT: uz vyriesene :D
« Last Edit: 02.05.2008, 00:54:18 by kOsTi »
:trestac:

Mao

  • Sr. Member
  • ****
  • Posts: 392
    • View Profile
Re: OP - Objektove programovanie
« Reply #583 on: 02.05.2008, 00:55:37 »
Po deserializacii, ked uz je tvoj herny svet "obnoveny" zavolaj tu metodu ktora sa stara o vstup z klavesnice a malo by to zacat :)

kOsTi

  • Hero Member
  • *****
  • Posts: 12765
    • View Profile
    • pretaktovanie.sk
Re: OP - Objektove programovanie
« Reply #584 on: 02.05.2008, 00:57:14 »
no ale prave o to obnovenie mi slo... ale neva, uz som to poriesil... vlastne stacilo updatnut moj roomList, itemList, backPack a aktualny step :)
:trestac:

kornas

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: OP - Objektove programovanie
« Reply #585 on: 02.05.2008, 02:40:20 »
Preco ked ulozim aktualnu poziciu a nasledne ju nacitam, tak pri porovnavani objektov nie je ta ista ?? a takisto nemozem vytvarat v poli miestnosti odkazy na ine miestnosti (cize priradovat im prechody) po LOAD-nuti ? Akoby to neboli tie miestnosti... a ked prebehnem cele pole miestnosti v cykle, aby som priradil na zaklade porovnania mena miestnosti aktualnu miestnost do tej nacitanej (kedze akosi nie su zhodne), tak mi potom cele pole miestnosti aktualizuje o veci, ktore tam mali byt na zaciatku hry... cize tie co som popremiestnoval po miestnosti su zase na svojich miestach... co s tym ?

Mao

  • Sr. Member
  • ****
  • Posts: 392
    • View Profile
Re: OP - Objektove programovanie
« Reply #586 on: 02.05.2008, 03:02:11 »
Nemas tam niekde singleton? Napr ja mam hraca aj s batohom reprezentovanych ako singleton a po deserializacii musim muvim sam nastavit poziciu hraca aj obsah batohu, na zaklade toho co je ulozene v subore, neurobi to automaticky. Singleton  vyuziva staticku premennu ktora drzi referencie na objekty a tie nezaniknu ani po deserializacii. Dost blbo som to napisal ale neviem to poriadne vyjadrit co myslim :D

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #587 on: 02.05.2008, 03:47:09 »
- ak máš singletony, tie sa neuložia... práve kvôli tej statickej... statická nepatrí objektu a serializácia je uloženie objektu... takže ona sa neuloží
- dôvodom môže byť aj to, že sa ti to tam niekde cyklí - tie referencie... resp. že sa ti serializuje referencia na nejaký objekt, ktorý ale vzniká inak a nie deserializáciou, a to potom nie sú rovnaké objekty...

prípadne určite aj ďalšie možnosti, prečo to nejde, sa nájdu... ale bez kompletného kódu a nejakého testovania ťažko povedať... odporučil by som asi debugger a dôsledne sledovať, aké objekty vlastne sa zapájajú do vykonávania, a či sa neprepíšu pri deserializácií, prípadne, či sa nemenia referencie a pod.
All code is crap.

42

kornas

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: OP - Objektove programovanie
« Reply #588 on: 02.05.2008, 04:36:43 »
Ano, mate pravdu, mam tam nejake staticke veci, som na to nemyslel, idem to prerobit.... vdaka  :thumbsup: dufam, ze to este rozbehnem...

kornas

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: OP - Objektove programovanie
« Reply #589 on: 02.05.2008, 05:06:56 »
Ako mam vyriesit to, ze metoda Save() sa nachadza v triede, v ktorej aj cela definicia miestnosti a vsetkeho a chcem metodu Load(), ktora je takisto v tejto triede, naimplementovat tak, aby vracala ten naitany obsah zo suboru, ktory potom mozem pouzit v metode Main()... lebo neviem kde priradit, tie nacitane data, kedze instancia triedy sa asi nedavytvorit v tej istej triede... a ak to chcem priradit do this, tak napise, ze this je len read-only... (a neviem, ci by to neprepisalo aj zdrojak, keby som tam caroval s tym...) ako by ste poradili to urobit ? Dik.

EDIT : sice sa instancia dala vytvorit aj v tej triede, ale takym sposobom sa program zacyklil hned...
« Last Edit: 02.05.2008, 05:10:59 by kornas »

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #590 on: 02.05.2008, 05:10:24 »
nedá sa to priradiť priamo v objekte...

ja som to zvykol robiť cez statickú metódu - Load som urobil static a potom som to priradil mim objektu - napr. v static Main (resp. niekde, kde je premenná typu game) nejak takto:

Game hra = Game.Load();
All code is crap.

42

kornas

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: OP - Objektove programovanie
« Reply #591 on: 02.05.2008, 05:15:24 »
nedá sa to priradiť priamo v objekte...

ja som to zvykol robiť cez statickú metódu - Load som urobil static a potom som to priradil mim objektu - napr. v static Main (resp. niekde, kde je premenná typu game) nejak takto:

Game hra = Game.Load();


Lenze ten return musi byt typu Game, vsak ? cize nejak tak vyzera deklaracia: public static Game Load(atring filename) {} ? Lenze ako tam vratim tu nacitanu hru ?? ze dam return (Game)binaryFormatter.Deserialize(fileStreamIn); ale to potom uz za tym nemozem uzaviet stream, lebo metoda konci tym return... tak ako to urobit ? :(

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #592 on: 02.05.2008, 05:23:44 »
nedá sa to priradiť priamo v objekte...

ja som to zvykol robiť cez statickú metódu - Load som urobil static a potom som to priradil mim objektu - napr. v static Main (resp. niekde, kde je premenná typu game) nejak takto:

Game hra = Game.Load();


Lenze ten return musi byt typu Game, vsak ? cize nejak tak vyzera deklaracia: public static Game Load(atring filename) {} ? Lenze ako tam vratim tu nacitanu hru ?? ze dam return (Game)binaryFormatter.Deserialize(fileStreamIn); ale to potom uz za tym nemozem uzaviet stream, lebo metoda konci tym return... tak ako to urobit ? :(

len ten návrat z tej metódy:
Code: [Select]
...

Game hra = (Game)binForm.Deserialize(fs);
fs.Close();
return hra;

pomerne slušné množstvo vecí sa dá riešiť cez pomocné premenné :)
All code is crap.

42

kornas

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: OP - Objektove programovanie
« Reply #593 on: 02.05.2008, 05:28:31 »
No takto som to uz skusal, ale neodpamatalo to kde su predmety, len ich stavy, ale mapu natiahlo zase nanovo... uz to nechapem... som uz asi totalne mimo z toho...  bu Este daco poskusam, ale asi je to beznadejne  :( Save() bude, ale Load() nie  :-\
Vdaka Agamemnon asi som to zle nakodoval cele  :(.

kOsTi

  • Hero Member
  • *****
  • Posts: 12765
    • View Profile
    • pretaktovanie.sk
Re: OP - Objektove programovanie
« Reply #594 on: 02.05.2008, 05:31:48 »
hm ja to mam cele tak ze vsetky roomy mam nahadzane v jedom Liste... tak isto aj itemy v dalsom a ked loadnem ulozeny Game tak len updatnem roomy, itemy, back pack, a step... a funguje to...
:trestac:

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #595 on: 02.05.2008, 05:34:15 »
No takto som to uz skusal, ale neodpamatalo to kde su predmety, len ich stavy, ale mapu natiahlo zase nanovo... uz to nechapem... som uz asi totalne mimo z toho...  bu Este daco poskusam, ale asi je to beznadejne  :( Save() bude, ale Load() nie  :-\
Vdaka Agamemnon asi som to zle nakodoval cele  :(.

toto závisí aj na tom, čo a ako si dal uložiť...
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #596 on: 02.05.2008, 05:34:59 »
hm ja to mam cele tak ze vsetky roomy mam nahadzane v jedom Liste... tak isto aj itemy v dalsom a ked loadnem ulozeny Game tak len updatnem roomy, itemy, back pack, a step... a funguje to...

jj, jedno z riešení :)
All code is crap.

42

kornas

  • Full Member
  • ***
  • Posts: 127
    • View Profile
Re: OP - Objektove programovanie
« Reply #597 on: 02.05.2008, 05:44:31 »
Kosti, Agamemnon diki.  :thumbsup: Konecne asi mozem ist spat... nenastavil som bool premennu pri nahravani hry na true a potom mi stale natahovalo inicializaciu celej mapy. Vdaka. (i ked vela nechybalo a uz by som to prerabal na ArrayListy)  ah: Este raz vdaka, dufam, ze sa neradujem predcasne a ze to fakt pojde tak ako ma. Idem testovat...  :bananawrite:

kOsTi

  • Hero Member
  • *****
  • Posts: 12765
    • View Profile
    • pretaktovanie.sk
Re: OP - Objektove programovanie
« Reply #598 on: 02.05.2008, 16:03:37 »
Ludia davate tam vsetci 30 miestnosti? Ja mam tak kolo 20 a nejak sa mi tam nechce teraz len tak hadzat nejake odveci miestnosti :)

resp. ywetka... co ty na to?  :emot-prettywink:
« Last Edit: 02.05.2008, 16:16:24 by kOsTi »
:trestac:

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #599 on: 02.05.2008, 16:48:46 »
Ludia davate tam vsetci 30 miestnosti? Ja mam tak kolo 20 a nejak sa mi tam nechce teraz len tak hadzat nejake odveci miestnosti :)

resp. ywetka... co ty na to?  :emot-prettywink:

pri najhoršom tam strč chodbu ala neverhood :)
All code is crap.

42