• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 
Menu

Zobrazi� pr�spevky

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Zobrazi� pr�spevky Menu

Messages - Agamemnon

#2151
Quote from: JCube on  03.05.2008, 17:24:22
Quote from: Agamemnon 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
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 :)
#2152
Quote from: kOsTi 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)

toto mám riešené rovnako, to je OK toto, imo... rozumnejšie
#2153
kosti: vyzerá to fajn, len sa mi nechce čítať tie dlhé texty :-))
#2154
Quote from: johnyo13 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...


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ší :)
#2155
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
#2156
Quote from: buhehe 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?

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í...
#2157
Quote from: johnyo13 on  03.05.2008, 06:43:07
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...
#2158
Quote from: buhehe on  02.05.2008, 20:05:18
a je v tom vobec rozdiel pri praci s arraylistom a list<item>? do listu sice vlozis len objekty typu item ale aky je rozdiel potom ked budem pracovat s arraylistom a listom?

rozdiel v práci (add, remove, count, a pod.) s tými kontajnermi nie je, myslím :) ono až tak dobre ich nepoznám, takže presné rozdiely (okrem toho základného, hlavného) neviem...

tipujem, že tam bude nejaký rýchlostný rozdiel (imo v prospech listu), je tam tá typová kontrola... arraylist sa zase dá použiť na uloženie rôznych objektov, čo je výhoda niekedy :) asi aj ďalšie veci, nvm
#2159
Quote from: puq on  02.05.2008, 20:03:09
ach jaj :) cize v get metode potom si mozem pouzit cyklus a hodim to vsetko do arrayListu a vratim uz len arrayList ne? no uvidim no :) a co by si poradil? pouzivat List a potom to prei get metode hodit do arrayListu? alebo cely cas pracovat s arrayListami?

môžeš kľudne :)
ono :) niekedy som používal len arraylisty, v poslednej dobe som prešiel viac ku generikám... práve kvôli typovej kontrole... ale niekedy sa tie arraylisty hodia viac, aj keď v tomto prípade to je vlastne jedno, čo tam použiješ :)
ak to máš urobené nejakým spôsobom, tak to, imo, neprerábaj :) len si zbytočne prirobíš robotu :)
#2160
Quote from: puq on  02.05.2008, 19:56:52
este taka otazka ze v tych interfacoch je vsade pouzity arrayList pre itemy pre roomy pre vsetko, cize mame pouzivat arrayList? a ne len cisto List<Item>?

no interface musíš implementovať, takže ten ťa núti do tých arraylistov... aspoň na výstupe tých funkcíí... na vnútornú implementáciu môžeš použiť aj iné :)

ono... všeobecne, čo sa týka OP: pre ostatných je dôležité len to, čo vidia smerom von - public metódy, public členov tried... čo a ako si urobíš vnútri, v princípe, nikoho nezaujíma, AK to funguje dobre :)
preto sa aj robia a používajú interface-i: slúžia ako isté pravidlá pre dorozumievanie sa medzi triedami rôznych autorov... oi.
#2161
Quote from: kOsTi on  02.05.2008, 18:19:27
Quote from: Agamemnon on  02.05.2008, 18:15:33
Quote from: kOsTi on  02.05.2008, 18:10:38
why? :)

ako rozhodnúť podľa arraylistu, čo je v ktorom smere? :)

btw: pokiaľ si spomínam, tak to je dané v tom interface-i tak, nie?


jj je to tam uz dane... nic nenarobim... ja mam smery riesene cez Dictionary (key - Direction, value - room) a pre tie roomDirs si musim urobit skratka potom ArrayList :) takze potom pri rozhodovani musim spatne zas pristupovat do mojho Dictionary :)

jj, však práve :) potrebuješ to mať interne inak riešené, aby sa to dalo použiť :)
#2162
Quote from: johnyo13 on  02.05.2008, 18:14:28
Quote from: kOsTi on  02.05.2008, 18:08:16
kedze sa vytvara Step stale za kazdym prikazom tak by si tam mal mat veci ktore vlastne charakterizuju aktualny stav hry (miestnost, back pack, mozne smery atd)

ked tak velmi chces tak ja mam konstruktor takyto:

public Step(string roomName, string roomDesc, ArrayList roomDirs, ArrayList backPackContent, ArrayList itemList)
no o to mi islo, lebo v interfejse IGame je: IStep NextStep(string command); teda tomu nerozumiem!?

to s tým ako súvisí?
v Game máš členské premenné, ktoré držia tie ďalšie veci: ako backpack, aktuálnu miestnosť a pod...

ten NextStep v IGame má spracovať príkaz, ktorý ti dôjde od hráča... takže to, ako vytvoríš step to ovplyvňuje len v tom, že každý príkaz jednoznačne determinuje ďalší krok/akciu hráča
#2163
Quote from: kOsTi on  02.05.2008, 18:10:38
why? :)

ako rozhodnúť podľa arraylistu, čo je v ktorom smere? :)

btw: pokiaľ si spomínam, tak to je dané v tom interface-i tak, nie?
#2164
hej... ten ArrayList na roomDirs ma fascinuje...
#2165
Quote from: johnyo13 on  02.05.2008, 18:05:38
Quote from: Agamemnon on  02.05.2008, 18:01:13
Quote from: johnyo13 on  02.05.2008, 17:59:07
no to si mi vobec nepomohol,aj ked vdaka za snahu..mna by zaujimalo co konkretne mas v parametroch fcie step ty... len string cmd? alebo este nieco viac?
(napr poziciu hraca, mozne vychody, arraylist veci(v mistnosti/batohu)???)
popis miestnosti, kde sa hráč nachádza, obsah backpacku, príkaz, ktorý hráč zadal... a pod.
sry moja chyba, mal som na mysli argumenty fcie teda new Step("toto") ..teda co ma byt tam..len cmd??

it's completely up to you...
ty to máš ako interface, to tam musíš dodržať - a tie veci potrebuješ aj nastaviť - to už je jedno, či to urobíš cez konštruktor, alebo na to urobíš metódy... a čo tam dáš navyše, je viac-menej tvoja vec...
a to, ako to tam dáš, to už je čisto na tebe
#2166
Quote from: johnyo13 on  02.05.2008, 17:59:07
no to si mi vobec nepomohol,aj ked vdaka za snahu..mna by zaujimalo co konkretne mas v parametroch fcie step ty... len string cmd? alebo este nieco viac?
(napr poziciu hraca, mozne vychody, arraylist veci(v mistnosti/batohu)???)

popis miestnosti, kde sa hráč nachádza, obsah backpacku, príkaz, ktorý hráč zadal... a pod.
#2167
step určite nie je newgame... poradie stepov máš také ako poradie príkazov, ktoré zadával hráč... pre každý zadaný príkaz hráča máš jeden objekt typu step, ktorý zaznamenáva aktuálny stav hry pre daný príkaz...
#2168
Quote from: kornas on  02.05.2008, 17:11:28
Quote from: kOsTi on  02.05.2008, 17:07:22
no tak mam takych par ale tak kde tam teraz napcham este 10 miestnosti? :D

podla mna tam nejde o ten dizajn hry ako takej, ale o to nakodovat ot spravne, takze mozno to tam ani nemusis mat, ked cviciaci uvidi, ze tomu rozumies a ze to mas dobre, tak to bude OK a bez problemov, no to je moj nazor...

a chcel by som sa opytat, ako sa robi dokumentacia k tej hre, ci to nejak tak ako v JAVE, ze napisem nejake komentare a potom dam vygenerovat ? Ci ako to ? A ten doxygen to co to ? Lebo tomu nejak nerozumiem... A este, ci nestaci vytlacit class diagram, ci tam musi byt UML ?? dik

doxygen robí to, že z komentárov vygeneruje dokumentáciu, takže presne to, čo v jave... rovnako dokáže vygenerovať dokumentáciu aj visual studio, ale iný štýl komentárov je tam...

class diagram nestačí z visualka, pokiaľ vm...
#2169
alebo proste len nejakú easter egg chodbu, ktorá nebude mať žiaden význam, len tam bude 10 rovnakých miestnosti :)
#2170
Quote from: kOsTi 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:

pri najhoršom tam strč chodbu ala neverhood :)
#2171
Quote from: kOsTi 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...

jj, jedno z riešení :)
#2172
Quote from: kornas 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  :(.

toto závisí aj na tom, čo a ako si dal uložiť...
#2173
Quote from: kornas on  02.05.2008, 05:15:24
Quote from: Agamemnon 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();


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:

...

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


pomerne slušné množstvo vecí sa dá riešiť cez pomocné premenné :)
#2174
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();
#2175
- 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.