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

OP - Objektove programovanie

Started by pepco, 23.02.2008, 02:04:57

« predchdzajce - alie »

JCube

sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

Agamemnon

Quote from: leniocka on  30.04.2008, 05:49:19
Quote from: Agamemnon on  30.04.2008, 05:44:18
presne tak, ako máš urobený pohyb po mape - napr. som v nejakej miestnosti a poviem, že "sever", tak on sa musí pohnúť smerom na sever - takže musí vedieť, že tam niečo je...
tak potom vieš presne tak vygenerovať aj ten ArrayList pre GetDirections();

pokiaľ máš server/juh robené tak, že zmení index niekde mimo objektu Room, tak si nepomôžeš a budeš musieť dať objektu Room minimálne jeho vlastné súradnice a referenciu na mapu

hmmm... to by bolo asi dost komplikovane ale napr. pohyb po mape riesim instanciou hraca, ktory suradnice ma... ale staci mi, ak viem urcit smery iba v miestnosti, kde sa prave nachadza hrac?

myslím, že stačí
All code is crap.

42

Agamemnon

trademark: debug - window - a tam si zapni locals, prípadne aj ďalšie časti...
All code is crap.

42

leniocka


TradeMark

Quote from: Agamemnon on  30.04.2008, 05:55:04
trademark: debug - window - a tam si zapni locals, prípadne aj ďalšie časti...

Uz uz funguje vdaka.... zatial som zistil ze prikaz, ktory zadam  sa rozdeli spravne a aj spravna cast dojde k Matcheru...to bude stopro taka somarina tota chyba...
Pičoch jest veľo, ale nalivačoch malo!

TradeMark

#555
Ufff no dal som breakpoint za to porovnavanie ....teda ci Matcher5.Success a po zastaveni som skontroloval hodnotu a ukazuje false...  ???

Je ten pattern dobre napisany?

Regex CommandListPattern = new Regex("Prikazy | prikazy | Príkazy | príkazy");

Pomocou jednoducheho kuska kodu :

if (CommandListPattern.IsMatch(SplitCommand[0])) {
                b = 5;} else {b = 4;}

a breakpointu som zistil ze b = 4 cize asi bude zly pattern... fak idem zistit jak ten pattern spravne napisat.

Pičoch jest veľo, ale nalivačoch malo!

kOsTi

new Regex("Prikazy*prikazy*Príkazy*príkazy"); ???
:trestac:

TradeMark

#557
Quote from: kOsTi on  30.04.2008, 06:55:58
new Regex("Prikazy*prikazy*Príkazy*príkazy"); ???

Ee  nejde ani to...akurat pozeram tie operatory ... ja som zil v tom ze | je alebo.

EDIT: :D ta ja som lama :D ... vadili mu tie medzery...spravne to ma byt Príkazy|Prikazy|... a nie Príkazy | Prikazy - kebyze nahodou niekto tiez v buducne robil s patternami ;)

EDIT2: Mam tu iba taku radu - mozno to niekomu pomoze - ale ked chcete vypisat obsah ArrayListu tak nepouzivajte cyklus for ale foreach ;) zamedzi to indexoutofrangeexceptions ;)
Pičoch jest veľo, ale nalivačoch malo!

sri

Quote from: TradeMark on  30.04.2008, 07:01:47
EDIT2: Mam tu iba taku radu - mozno to niekomu pomoze - ale ked chcete vypisat obsah ArrayListu tak nepouzivajte cyklus for ale foreach ;) zamedzi to indexoutofrangeexceptions ;)

A co tak pouzit


for (int i = 0; i < list.Count; i++) {}


?

TradeMark

#559
Quote from: sri on  30.04.2008, 07:44:48
Quote from: TradeMark on  30.04.2008, 07:01:47
EDIT2: Mam tu iba taku radu - mozno to niekomu pomoze - ale ked chcete vypisat obsah ArrayListu tak nepouzivajte cyklus for ale foreach ;) zamedzi to indexoutofrangeexceptions ;)

A co tak pouzit


for (int i = 0; i < list.Count; i++) {}


?

Tak som mal a hadzalo to IndexOutOfRangeException ;) preto som to napisal cez foreach
A inac podmienka by tam mala byt <= list.Count sa mi zda
Pičoch jest veľo, ale nalivačoch malo!

sri

#560
vel stjudenc... tak potom sorry, ale napr. mne to problem nerobi :) nemal si tam nahodou "<=" ALEBO "list.Capacity" ?

EDIT: No sak praveze tam musi byt <, inak sa Ti to dostane na index "Count", ktory je uz ale Count + 1 -tym prvkom ArrayListu, lebo pocitas od 0

Agamemnon

rozdiel medzi foreach a for:
foreach nepovoluje edit/delete prvku, ku ktoremu prave pristupujeme... kym for ano (v niektorych pripadoch to je riziko, niekedy vyhoda)...
All code is crap.

42

TradeMark

#562
Mam taky problem ... BackPack mam ako ArrayList a ked opakovane vezmem nejaky predmet a vyhodim ho a potom dam BackPack vypisat tak mi ten vypis posuva ... ked nieco vymazem z ArrayListu tak akokeby tam ostaval nejaky null objekt a ten vypise iba ako medzeru ... nie je na to nejaky trik aby sa z toho ArrayListu automaticky mazali tie  "null" objekty?

EDIT: Problem vyrieseny

Pičoch jest veľo, ale nalivačoch malo!

Faust

ludia, do čoho je najlepsie ukladat príkazy co zadavam (cize retazce) ,aby som ich potom mohol vsetky uložiť do suboru??? vytvorit nejake pole retazcov alebo ArrayList...?? resp. ako vy riesite prikaz SAVE?
This is an invasion of PostHumus!

kOsTi

Save treba serializacou objektu triedy ktora implemetuje IGame najskor asi :)
:trestac:

TradeMark

Da sa to aj cez tu postupnost prikazov ... hadz ich napr. do pola Stringov a potom po jednom zapis do suboru ;)
Pičoch jest veľo, ale nalivačoch malo!

kOsTi

no v zneni zadania je tusim ze v zadani treba pouzit serializaciu... (ale tak mozes ju vyuzit aj na nieco ine no) :)
:trestac:

TradeMark

V zneni zadania je take daco? Dufam ze to "znenie" aj s podmienkami co je na moodlewiki nie je nejako podstatne lebo odovzdavat toto vsetko co tam je (pr. zistovat minimalnu zostavu na ktorej hra bezi) by bolo kus odveci... co vsetko vlastne treba mat? Zdrojaky, doxygen dokumentaciu, skompilovanu spustitelnu hru, UML. Nieco som zabudol?
Pičoch jest veľo, ale nalivačoch malo!

kOsTi

Quote from: TradeMark on  01.05.2008, 03:11:33
V zneni zadania je take daco?

hm niekde som to videl ale uz ani neviem kde, tam to uz nevidim :D
:trestac:

leniocka

Quote from: kOsTi on  01.05.2008, 03:14:03
Quote from: TradeMark on  01.05.2008, 03:11:33
V zneni zadania je take daco?

hm niekde som to videl ale uz ani neviem kde, tam to uz nevidim :D

no ale sak serializaciou je to aj najjednoduchsie, taze asi preto si to tam "videl" :D

Agamemnon

- serializáciou to ani zďaleka nemusí byť najjednoduchšie :)
- to, čo je na moodli, nie je veľmi smerodajné... platí to, čo ti povie cvičiaci...
- ako systémová stačí niektorým cvičiacim doxygen - v tom prípade žiadne také veci ako je min. konfig. pc nepotrebuješ (aj tak sa to nikdy reálne nezisťuje, a len sa to odhadne, prípadne sa napíše, že na stroji, čo máš ty, to ide určite)

All code is crap.

42

puq

no my co mame s forgacom, tak systemovu prirucku mame vygenerovat z visualu, a on zrobil xml subor, aby sa to dalo zobrazit v exploreri :)

kornas

Ako odserializujem napr. instancie triedy Room, ak su v jej definicii dalsie instancie inych objektov, napr. typu Item... skusal som aj tak ze: (priklad ulozenia jednej veci v kazdej miestnosti)


for (int i = 0; i < 36; i++)
            {
                binF.Serialize(fsOut, room[i].item[0]);
            }


ale tam sa vykonavanie metody Save() zastavi, hned na tom prvom riadku serializacie a vypise take, ze:

Quote

Object reference not set to an instance of an object.


lenze ked ukladam instancie triedy Item, ktore v sebe nemaju ine instancie tried, tak ich odpamata v pohode...
neviete, ako je to s tym odpamatavanim serializaciou, pokial chcem odpamatat (odserializovat) objekty, ktore v sebe maju ine objekty ? a aj ked nemaju, tak to nejde... ako vyssie uvadzam. Kde robim chybu ? Dik.

Agamemnon

- všetky triedy, ktorých objekty serializuješ (aj nepriamo, prostredníctvom iných) musia byť označené serializable
- ak serializuješ cez xml, tak musíš explicitne označiť, že daná trieda odkazuje na objekty iných tried, ktoré sa budú tiež serializovať (používa sa xmlinclude atribút)
All code is crap.

42

kornas

Quote from: Agamemnon on  01.05.2008, 20:33:56
- všetky triedy, ktorých objekty serializuješ (aj nepriamo, prostredníctvom iných) musia byť označené serializable
- ak serializuješ cez xml, tak musíš explicitne označiť, že daná trieda odkazuje na objekty iných tried, ktoré sa budú tiež serializovať (používa sa xmlinclude atribút)

dik :) no oznacene ich mam, a serializaciu cez xml som upustil, kedze som zistil, ze tam je to trosku zlozitejsie,
robim to cez binarnu serializaciu... ako to ma  byt v nej ?? pouziva sa aj tu ten atribut nejaky ??

(a v xml serializacii mi odpamatalo len 1. vec a hned chybu vyhodilo, tam to je asi trosku zlozitejsie...)