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

kOsTi

  • Hero Member
  • *****
  • Posts: 12765
    • View Profile
    • pretaktovanie.sk
Re: OP - Objektove programovanie
« Reply #650 on: 03.05.2008, 04:51:25 »
hmm tak pouzijem jednu taku citaciu priamo od grandmastra:

Quote from: mirek
add step - v konecnom dosledku bude step reprezentovat iba akysi kontajner, ktory bude obsahovat informacie o aktualnom stave - o miestnosti, v ktorej sa hrac nachadza (kde je, ake veci tam su, kadial sa odtial moze dostat von) a o aktualnom stave jeho batohu (teda - co v nom ma - sluzi ako oblubeny prikaz inventar).

dolezita je metoda NextStep rozhrania IGame. da sa predpokladat, ze vasa herna logika sa bude nachadzat niekde v triede, ktora bude implementovat prave toto rozhranie. tato metoda je dolezita, pretoze to bude ona, ktora dostane ako paramater prikaz, ktory hrac zadal z prikazoveho riadku (alebo niekde v nejakom klikacom okne). metoda NextStep ho spracuje a ako vysledok vrati objekt implementujuci rozhranie IStep, z ktoreho je mozne ziskat informacie o aktualnom kroku hry. a jednoducho ich je potom mozne zobrazit na jednom mieste. teda - nebudu sa zobrazovat pocas spracovavania prikazu, ale miesto toho sa vytvori novy objekt, ktory bude tieto informacie niest. vyhodou je potom napriklad aj to, ze je mozne tieto informacie zobrazit jednoduchsie ci uz do gui aplikacie alebo do konzoly.
:trestac:

johnyo13

  • Hero Member
  • *****
  • Posts: 629
  • I can stand my own ground...
    • View Profile
Re: OP - Objektove programovanie
« Reply #651 on: 03.05.2008, 06:43:07 »
jj.ja som pouzil Step ako IStep, nie ako abstract Step..a vlastne som ho pouzival tak ze kostruktor triedy Step vyzera zhruba:
public Step(Room room, BackPack backPack)..
no a potom v tele som priradil tomu stepu vsetky zakladne informacie ako: pozicia aktualnej miestnosti (vzhladom na mapu), arraylisty miestnosti a batohu, vychody z miestnosti atd (aspon myslim..nechce sa mi teraz spustat projekt..idem spat) a tiez rozne vypisy..teda co kde je,kam sa da ist...
potom v triede Game, ktora (okrem ineho) tie miestnosti, veci atd. vygenerovala uz len spustim metodu start() a ta vytvori novy step..s nastaveniami ktore su aktualne na zaciatku hry a v cykle vola metodu NextStep(cmd)..kt.,vlastne vytvara nove stepy na zaklade argumentu cmd...
btw. som si vedomy toho, ze som to robil casto dost zlozito, ale akosi nie je casu nazvys a nechcem velmi spekulovat, hlavne ze to ide...
este jedna poznamka...dost mi vadi ten system ze musite pouzit toto, ale co to ma robit musite domysliet sami..napr. pouzivam obycajny getter na description, ale zaroven tam musim mat aj metodu GetDescription() , ktora pochadza z implementovaneho rozhrania..teda ja neviem co ta fcia ma robit, tak robi to iste co ten getter..co je samozrejme blbost..ale budiz:)
☼Ѿ☼ ... ☼Ѿ☼

kOsTi

  • Hero Member
  • *****
  • Posts: 12765
    • View Profile
    • pretaktovanie.sk
Re: OP - Objektove programovanie
« Reply #652 on: 03.05.2008, 11:00:29 »
keby sa niekomu zachcelo robit betatesting tak mu budem vdacny...
http://www.pretaktovanie.sk/podklady/kosti/textgame.exe ... thx :)
:trestac:

johnyo13

  • Hero Member
  • *****
  • Posts: 629
  • I can stand my own ground...
    • View Profile
Re: OP - Objektove programovanie
« Reply #653 on: 03.05.2008, 16:21:21 »
chcel som to skusit ale neviem ake prikazy pouzit :D
ja som to riesil tak ze po zadani zleho prikazu ti program vypsie vsetky moznosti:
napr
>>fdsklaj

Zly vstup! Zadaj: pokracovat, preskumat alebo  pouzit!
>>pokracovat

mozes ist na :
                 -juh
                 -sever
>>vychod

na vychod sa ist neda!

mozes ist na :
                 -juh
                 -sever

...atd...
 
☼Ѿ☼ ... ☼Ѿ☼

buhehe

  • Hero Member
  • *****
  • Posts: 1583
    • View Profile
Re: OP - Objektove programovanie
« Reply #654 on: 03.05.2008, 17:11:03 »
jak ste robili ze ak vojdes do miestnosti tak sa da dalej ist len po pouziti nejakeho predmetu?

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #655 on: 03.05.2008, 17:13:11 »
este jedna poznamka...dost mi vadi ten system ze musite pouzit toto, ale co to ma robit musite domysliet sami..napr. pouzivam obycajny getter na description, ale zaroven tam musim mat aj metodu GetDescription() , ktora pochadza z implementovaneho rozhrania..teda ja neviem co ta fcia ma robit, tak robi to iste co ten getter..co je samozrejme blbost..ale budiz:)

toto sa tak bežne používa, že máš dané rozhranie a implementácia je na tebe... tie rozhrania slúžia na to, aby 2 rôzne triedy nemali problém spolu komunikovať - napr. máš nejakú veľkú úlohu, tak ju rozdelíš viacerým programátorom - každý dostane popis, čo má jeho časť robiť a rozhranie, ktoré má trieda implementovať, aby sa to potom dalo nakoniec spojiť dokopy, a fungovalo to bez nejakého zložitého prepisovania kódu...
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #656 on: 03.05.2008, 17:15:22 »
jak ste robili ze ak vojdes do miestnosti tak sa da dalej ist len po pouziti nejakeho predmetu?

ja mám napr. jedno rozhranie, ktoré implementujú triedy, ktoré vykonávajú nejaké akcie (tj. príkaz použi) - a jedna z nich dokáže spojiť 2 miestnosti...
takže.... prv tam spojenie nie je (nie je vôbec, nie len že nemá status, čo ja viem, otvorený_prechod...)... a po použití predmetu sa prechod vytvorí...
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #657 on: 03.05.2008, 17:16:50 »
ako... dal by som von svoj kód, ak máte záujem :) ale až po 13. týždni...
aj keď môj kód sa nedá odovzdať, lebo úplne rozhrania nedodržuje, keďže som to napísal ešte skôr ako rozhrania boli, ale sú tam veci, ktoré by ste mohli okopírovať :-P
All code is crap.

42

kOsTi

  • Hero Member
  • *****
  • Posts: 12765
    • View Profile
    • pretaktovanie.sk
Re: OP - Objektove programovanie
« Reply #658 on: 03.05.2008, 17:19:49 »
chcel som to skusit ale neviem ake prikazy pouzit :D

Staci pouzit "Commands" :)
:trestac:

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #659 on: 03.05.2008, 17:20:21 »
chcel som to skusit ale neviem ake prikazy pouzit :D
ja som to riesil tak ze po zadani zleho prikazu ti program vypsie vsetky moznosti:
napr
>>fdsklaj

Zly vstup! Zadaj: pokracovat, preskumat alebo  pouzit!
>>pokracovat

mozes ist na :
                 -juh
                 -sever
>>vychod

na vychod sa ist neda!

mozes ist na :
                 -juh
                 -sever

...atd...
 

skús dať príkaz "prikazy" - podľa špecifikácie ti to má vypísať všetky príkazy :)

EDIT: hehe, neskoro :) kosti bol rýchlejší :)
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #660 on: 03.05.2008, 17:23:09 »
kosti: vyzerá to fajn, len sa mi nechce čítať tie dlhé texty :-))
All code is crap.

42

JCube

  • Hero Member
  • *****
  • Posts: 9008
    • View Profile
Re: OP - Objektove programovanie
« Reply #661 on: 03.05.2008, 17:24:22 »
ako... dal by som von svoj kód, ak máte záujem :) ale až po 13. týždni...
aj keď môj kód sa nedá odovzdať, lebo úplne rozhrania nedodržuje, keďže som to napísal ešte skôr ako rozhrania boli, ale sú tam veci, ktoré by ste mohli okopírovať :-P
ja som tak spristupnil OS az po trinastom tyzdni a aj tak odovzdalo moje zadanie plno vela ludi... :D
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

kOsTi

  • Hero Member
  • *****
  • Posts: 12765
    • View Profile
    • pretaktovanie.sk
Re: OP - Objektove programovanie
« Reply #662 on: 03.05.2008, 17:24:54 »
Inac v zadani je ze pri vstupe do miestnosti sa vypisu vsetky veci o nej (opis, kam sa da ist, ake veci su tam...) ale ja som tam dal len ten opis... potom mi prislo zbytocne zavadzat prikaz "Look" ktory je viacmenej povinny (na rozhliadnutie sa v miestnosti)
:trestac:

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #663 on: 03.05.2008, 17:27:11 »
Inac v zadani je ze pri vstupe do miestnosti sa vypisu vsetky veci o nej (opis, kam sa da ist, ake veci su tam...) ale ja som tam dal len ten opis... potom mi prislo zbytocne zavadzat prikaz "Look" ktory je viacmenej povinny (na rozhliadnutie sa v miestnosti)

toto mám riešené rovnako, to je OK toto, imo... rozumnejšie
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #664 on: 03.05.2008, 17:27:43 »
ako... dal by som von svoj kód, ak máte záujem :) ale až po 13. týždni...
aj keď môj kód sa nedá odovzdať, lebo úplne rozhrania nedodržuje, keďže som to napísal ešte skôr ako rozhrania boli, ale sú tam veci, ktoré by ste mohli okopírovať :-P
ja som tak spristupnil OS az po trinastom tyzdni a aj tak odovzdalo moje zadanie plno vela ludi... :D

moje nemôžu odovzdať len tak :) by to neprešlo :)
ale mám urobený bash, a to by sa dalo okopčiť... navyše som ho robil tak, aby som ho prípadne vedel ľahko preportovať do inej aplikácie, ak by som niekde potreboval konzolový príkazový riadok :)
All code is crap.

42

JCube

  • Hero Member
  • *****
  • Posts: 9008
    • View Profile
Re: OP - Objektove programovanie
« Reply #665 on: 03.05.2008, 17:28:46 »
ako... dal by som von svoj kód, ak máte záujem :) ale až po 13. týždni...
aj keď môj kód sa nedá odovzdať, lebo úplne rozhrania nedodržuje, keďže som to napísal ešte skôr ako rozhrania boli, ale sú tam veci, ktoré by ste mohli okopírovať :-P
ja som tak spristupnil OS az po trinastom tyzdni a aj tak odovzdalo moje zadanie plno vela ludi... :D

moje nemôžu odovzdať len tak :) by to neprešlo :)
no ludia zo zufalosti spravia cudne veci... :D
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #666 on: 03.05.2008, 17:30:22 »
ako... dal by som von svoj kód, ak máte záujem :) ale až po 13. týždni...
aj keď môj kód sa nedá odovzdať, lebo úplne rozhrania nedodržuje, keďže som to napísal ešte skôr ako rozhrania boli, ale sú tam veci, ktoré by ste mohli okopírovať :-P
ja som tak spristupnil OS az po trinastom tyzdni a aj tak odovzdalo moje zadanie plno vela ludi... :D

moje nemôžu odovzdať len tak :) by to neprešlo :)
no ludia zo zufalosti spravia cudne veci... :D

no hej, to je pravda, hehe :)
All code is crap.

42

johnyo13

  • Hero Member
  • *****
  • Posts: 629
  • I can stand my own ground...
    • View Profile
Re: OP - Objektove programovanie
« Reply #667 on: 03.05.2008, 17:41:20 »
to prikazy/commands je povinne? je to zadane niekde na moodli? ci to je len vasa implementacia? nech viem ci to mam prerabat...hoci mne sa to viac paci tak..a dalo mi dost roboty kym som to poriadne pocyklil aby vzdy vyhadzovalo len pouzitelne prikazy..no ked je to povinne tak to prerobim

for KOSTI: mohol si to napisat niekde do uvodu..napr. (FOR HELP TRY "COMMANDS")..aby to bolo jasne aj dalsim:)
« Last Edit: 03.05.2008, 18:08:19 by johnyo13 »
☼Ѿ☼ ... ☼Ѿ☼

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #668 on: 03.05.2008, 17:44:07 »
to prikazy/commands je povinne? je to zadane niekde na moodli? ci to je len vasa implementacia? nech viem ci to mam prerabat...hoci mne sa to viac paci tak..a dalo mi dost roboty kym som to poriadne pocyklil aby vzdy vyhadzovalo len pouzitelne prikazy..no ked je to povinne tak to prerobim

http://moodle.fei.tuke.sk/wiki/index.php/Znenie_zadania_a_pokyny_k_jeho_vypracovaniu

tam máš základnú sadu príkazov
All code is crap.

42

johnyo13

  • Hero Member
  • *****
  • Posts: 629
  • I can stand my own ground...
    • View Profile
Re: OP - Objektove programovanie
« Reply #669 on: 03.05.2008, 17:51:15 »
uz som to nasiel, ale neviem ci je to povinne..sak niektore veci mozem riesit aj inac..fakt sa mi nepaci ten pristup..spravte to ale musite pouzivat nase vymysly aj ked to mozno viete spravit inac (z mojho pohladu lepsie)..napr tu je to dost zdlhave pisat vsade commands

a este k tym interfesom..ked niekto deli ulohu medzi viacerych ludi, tak asi aj povie co ta-ktora fcia ma robit (hoci implementacia ostava stale na teba)..a nie len napise nazvy fcii a rob s tym co chces...napr.(v extremnom pripade) moze moja fcia GetDescription() ukoncovat hru..a dalsi clovek ju bude pouzivat na prechod do inej miestnosti..ta potom chcem vidiet tu spajanie programu :D
☼Ѿ☼ ... ☼Ѿ☼

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #670 on: 03.05.2008, 17:54:54 »
a este k tym interfesom..ked niekto deli ulohu medzi viacerych ludi, tak asi aj povie co ta-ktora fcia ma robit (hoci implementacia ostava stale na teba)..a nie len napise nazvy fcii a rob s tym co chces...napr.(v extremnom pripade) moze moja fcia GetDescription() ukoncovat hru..a dalsi clovek ju bude pouzivat na prechod do inej miestnosti..ta potom chcem vidiet tu spajanie programu :D

imo sú názvy tých metód v interface-och samopopisné... ale nehovorím, že nemohli ku tomu vydať aj popisy... bolo by to možno jednoduchšie pre vás...

uz som to nasiel, ale neviem ci je to povinne..sak niektore veci mozem riesit aj inac..fakt sa mi nepaci ten pristup..spravte to ale musite pouzivat nase vymysly aj ked to mozno viete spravit inac (z mojho pohladu lepsie)..napr tu je to dost zdlhave pisat vsade commands

to by som povedal, že máš zlý návrh potom, keď to potrebuješ písať všade... (ak správne chápem tú tvoju vetu)...

jasne, však ty môžeš riešiť všetko po svojom... interface-i ti nehovoria nič o vnútornej implementácií, o algoritmoch ani nič podobné
All code is crap.

42

johnyo13

  • Hero Member
  • *****
  • Posts: 629
  • I can stand my own ground...
    • View Profile
Re: OP - Objektove programovanie
« Reply #671 on: 03.05.2008, 18:02:53 »
nie ja to nemam vobec robene cez commands
len sa mi zda lepsie hrat instinktivne..teda neviem co chcem robit tak napsiem..
Code: [Select]
>>pouzit kompas
a tak napise: zly prikaz
tak musis zadat
>>commands
precitas co sa da robit das napr:
>>preskumat (...potom zase:)
>>commands
precitas co mozes preskumat
>>napis na stene
-hotovo

kdezto ja dam:
>>pouzit kompas
hned vypsie ze sa to neda, aj co sa da aktualne pouzit
>>preskumat
hned vypsie co sa da preskumat
>>napis na stene
-hotovo
nie je to sice velky rozdiel, ale ked to robis casto tak to potesi..mne sa to paci viac
☼Ѿ☼ ... ☼Ѿ☼

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #672 on: 03.05.2008, 18:07:00 »
nepochopil si to commands... to commands je ekvivalent helpu - to znamená, že to vypíše zoznam všetkých dostupných príkazov v hre...

príklad:
>> prikazy
Zoznam príkazov:
- save - ulozi hru
- load - nahra hru
- exit - koniec hry

- sever - pojde na sever

atď...

nemá to vypísať len to, čo máš dostupné
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #673 on: 03.05.2008, 18:07:29 »
to, čo máš teraz urobené, môžeš kľudne nechať... len tam potrebuješ pridať jeden príkaz navyše... a ten vypíše help
All code is crap.

42

johnyo13

  • Hero Member
  • *****
  • Posts: 629
  • I can stand my own ground...
    • View Profile
Re: OP - Objektove programovanie
« Reply #674 on: 03.05.2008, 18:11:23 »
ahaaaa...postupne odhalujem skryte zakutia zadania tohto zadania :D :D
btw. teraz mam uz commands dost zbytocny..sice na load save exit sa hodi..ok dorobim.dik za vysvetlenie:)
☼Ѿ☼ ... ☼Ѿ☼