• 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

#226
2. ročník / Re: OOP
06.12.2011, 18:58:37
a este doplnenie... arraylist nie je univerzalne ulozisko... takisto dictionary/hashtable nie su univerzalne ulozisko... pouzivajte ich vtedy, ked ich treba pouzit (pole, list, dvojica dat, etc)... nie ako vstupny bod k nejakym objektom, co sa da ohandlovat ovela lepsie...
#227
2. ročník / Re: OOP
06.12.2011, 18:55:17
nevymyslajte zlozite veci... ak potrebujes pri pouziti nejakeho predmetu odomknut/nastavit nejaky vychod (=zavolat setexits), tak si tu miestnost, do ktorej sa potom budete moct dostat (teda, ktoru pouzijes ako parameter v setexits), predajte ako parameter kontruktora toho predmetu, ulozte do private premennej v predmete a v metode use to potom uz len pouzite... popisoval som to tu pred par dnami...

ziadne arraylisty ani nic podobne... a uz vobec nie reflection (to je ta vec, ako sa da dostat k roznym veciam, napr. private premennym, ale to ani omylom nepouzivajte... ako som napisal do tej druhej temy k oop - k tym special zadaniam... za normalnych okolnosti reflection nepotrebujete a ani ju nepouzivajte)... byt na mirekovom mieste (alebo kohokolvek, kto prebera tie zadania) a videl by som reflection, tak by som vam nedal prejst, kym by ste to neprerobili... to nema nic spolocne s objektovym programovanim...
#228
2. ročník / Re: OOP - "spešl zadanie"
06.12.2011, 06:27:53
pre pokoj duše povedzme, že to sa nedá... tak s tým pracuj, že to nejde urobiť a vymysli si niečo lepšie... maximálne tak to môžeš použiť ako kľúče do dictionary/hashtable, kde hodnoty budú objekty... za normálnych okolností nič lepšie neurobíš...
#229
2. ročník / Re: OOP
06.12.2011, 03:04:46
Quote from: razer08 on  06.12.2011, 00:45:05
Quote from: Agamemnon on  06.12.2011, 00:14:01
Quote from: razer08 on  06.12.2011, 00:07:28
a este jedna vec...ked mam napr triedu key a implementuje Usable,tak budem mat metodu use()...no a ked napisem ze pouzi kluc,tak mi otovri dvere a chcem aby ten kluc uz neexistoval...tak game.getBackpack().remove(kluc);? lebo ked vlozim predmet tak game.getBackpack().addItem(new Item); a ci v remove tam mozem pisat len kluc alebo ako mam to urobit<

do remove ide konkrétny objekt - tj. v prípade, že to budeš volať odniekiaľ zvonku, tak "kluc" alebo akýkoľvek názov tá premenná bude mať... ak to budeš volať z triedy kľúč (predpokladám z metódy use), tak to urobíš ako:

game.getBackpack().remove(this);


diky:) a ked este mozem,tak ako urobim setexits? ked mam kluc dam pouzi kluc a aby mi nastavil setexits...niekde som cital,ze treba to cez konstruktor,ale nechapem ze ako...ked mam napr: krizovatka.setexits(null,null,null,null) a potom ked dam pouzi kluc tak aby som mal krizovatka.setexits(1,1,0,0)...1 a 0 su nejake miestnosti

toto presne sme tu už riešili... skús pozrieť príspevky staré niekoľko dní, možno týždeň...
#230
2. ročník / Re: OOP
06.12.2011, 00:14:01
Quote from: razer08 on  06.12.2011, 00:07:28
a este jedna vec...ked mam napr triedu key a implementuje Usable,tak budem mat metodu use()...no a ked napisem ze pouzi kluc,tak mi otovri dvere a chcem aby ten kluc uz neexistoval...tak game.getBackpack().remove(kluc);? lebo ked vlozim predmet tak game.getBackpack().addItem(new Item); a ci v remove tam mozem pisat len kluc alebo ako mam to urobit<

do remove ide konkrétny objekt - tj. v prípade, že to budeš volať odniekiaľ zvonku, tak "kluc" alebo akýkoľvek názov tá premenná bude mať... ak to budeš volať z triedy kľúč (predpokladám z metódy use), tak to urobíš ako:

game.getBackpack().remove(this);
#231
2. ročník / Re: OOP
05.12.2011, 23:56:11
Quote from: razer08 on  05.12.2011, 23:38:31
ako zavolam funkciu use(); v triede Use?

predpokladám, že predmety implementujú Use...
pretypuj...

Item item = new MyItem();

...

((Use) item).use();


existuje niečo také ako Use? nie je to Useable? alebo tak nejak? je to trieda? nie interface?
#232
2. ročník / Re: OOP - "spešl zadanie"
05.12.2011, 23:55:05
Quote from: n3r0 on  05.12.2011, 23:42:47
by ma zaujmalo ako priradit nejakemu predmetu jedinecne meno .. osobne som skusil spravit getName co vrati String nejaky lenze ako nasledne ten string priradit nejakej instacii typu napr Item ci Star ? ..

netuším, o čo konkrétne ide... ale skúsim pár tipov:
- priraď jedinečné meno v konštruktore (existujú také veci ako napr. Guid vo windowse... určite bude aj nejaká javovská verzia toho, a určite bude aj nejaká classa, ktorá generuje unikátne stringy)
- v konštruktore, volaním nejakej statickej triedy (alebo niečoho podobného), ktorá sa postará o to, aby si vždy dostal jedinečné meno
- vytvor setter... setUid(string) a priraď pomocou tohto...

ak je to úplne od veci, ignoruj :) nemám detaily, a píšem to len podľa toho, čo si napísal vo svojom príspevku :)
#233
2. ročník / Re: OOP
05.12.2011, 20:28:17
Quote from: xxx3 on  05.12.2011, 20:22:39
ta lebo vtedy som si nepozrel, ze co robi preskumaj, som si myslel, ze to bude stacit spravit tak, ze dam preskumaj truhlica a mi to vypise v texte, ze truhlica v sebe obsahuje nejake predmety a tie sa potom budu dat zobrat

- take nieco mozes pridat do scenara... to nebude vadit...
- alebo potom tu funkcionalitu daj do tej metody getdesc...
#234
2. ročník / Re: OOP
05.12.2011, 19:58:23
Quote from: xxx3 on  05.12.2011, 19:19:15
ked som si dal ako rozsirenie truhlicu, ktora bude v sebe obsahovat nejaky predmet ... a mam v scenari iba, ze vychod, preskumaj truhlicu, vychod ... atd ... tak ako to mam spravit ? Nemam tam nic take zeby sa otvorila nejakym klucom a podobne

aj tak by som tam dal volanie "pouzi truhlica"... ktore by ti ten predmet vzalo...
inak - preskumaj vola getdescription, nie? tak to, co chces vykonat (vziat predmet z truhlice) daj do getdesc... aj ked to riesenie nie je koser (napr. ak by si chcel posunut hru niekde dalej a rozsirovat ju, tak ta pridana funkcionalita pre getdesc by mohla zmiast tych, co to budu chciet pouzit v kode), tak fungovat ti to bude...
#235
2. ročník / Re: OOP
05.12.2011, 05:50:55
pattern je formálny vzor, ktorý sa používa na riešenie nejakého opakujúceho sa problému... pre programovanie existujú patterny pre rôzne všeobecné problémy - napr. vytváranie veľkého množstva tried, budovanie nejakých dát (StringBuilder), potom rôzne situácie, kedy je potrebné zmeniť objekt jedného typu na iný (facade, proxy), pridávanie funkcionality k existujúcim triedam (decorator - toto sú inak Streamy v jave/c#), zmena algoritmu za behu (strategy, template) a rôzne ďalšie...
čo je dôležité je, že patterny sú vzory... ktoré ponúkajú riešenie... to neznamená, že ich nie je možné prispôsobovať, meniť podľa potreby a konkrétnej situácie... taktiež nie vždy sú výhodné...

framework je skupina knižníc, ktorá vytvára API pre vytvorenie nejakého software-u (napr. swing je framework pre UI pre javu)... existuje množstvo frameworkov pre vytváranie webov... veľa a na všetko možné... hehe :)
#236
2. ročník / Re: OOP
04.12.2011, 17:39:23
okej, tá sľúbená esej :D

prv máš parametrický polymorfizmus... to znamená toľko, že môžeš mať v jednej triede viacero metód s rovnakým názvom alebo viacero konštruktorov, každý s inými parametrami (typ alebo počet)... kompiler potom podľa počtu parametrov pri volaní metódy vyberá tú konkrétnu, ktorá sa použije...
toto je myslím pomerne jednoduché a jasné...


class Car {
  public Car(string color) {...}
  public Car(string color, int doorsCount) {...}
  public Car(int doorsCount) {...}
  pubilc Car(string color, string engine) {...}
  ...
}


druhá možnosť, a asi to, čo ťa zaujíma viac, je polymorfizmus pri dedení...
tam ide hlavne o to, že ak máš niekde v predpise použitú base triedu (triedu predka), tak vieš namiesto nej použiť akýkoľvek objekt jej potomkov (odvodených tried)...

nejak takto:

class Person {...}
class Student extends Person {...}
class Employee extends Person {...}

...

// máš v niektorej triede nejakú metódu, ktorá ako parameter berie typ Person...
public void RegisterPerson(Person personToRegister) {...}

...

// teraz pri volaní tejto metódy môžeš použiť ako objekty triedy Person, tak aj objekty odvodených tried, teda Student a Employee...
public void execute() {
  Student student = new Student();
  register.registerPerson(student);    // toto je okej, pretože Student dedí od Person (takže je súčasne typu Student aj typu Person) - podobne vieš použiť aj Employee
}

...

// tiež platí, že do premennej typu Person vieš priradiť aj odvodené triedy (opačne to neplatí - do premennej typu odvodenej triedy, napr. Student nevieš priradiť objekty triedy predka, tj. Person)
// takže máš napr.
private Person person;

// a metódu, ktorá inicializuje túto premennú:
public void init(string personType) {
  // typ student
  if (personType == "student") {
    person = new Student();
  }
  // typ employee
  else if (personType == "employee") {
    person = new Employee();
  }
  // ani jeden z predchádzajúcich, takže nastaví generický typ - tj. triedu predka
  else {
    person = new Person();
  }
}


toto sa vo veľkom používa... pri unit testoch, pri design patternoch (napr. tá metóda init je trochu zjednodušení pattern FactoryMethod), pri pluginovaní, etc., etc...
takisto toto platí aj pre interface-i a abstraktné triedy (s tým, že samotný interface ani abs. trieda sa nedajú vytvoriť... ale priradiť do objektu typu interfaceu sa dajú všetky triedy, ktoré interface implementujú)

okej... ešte taká tabuľka, že čo je vlasnte akého typu...

Person student = new Student();
Person person = new Person();
Person employee = new Employee();

...
student instanceof Student => true
student instanceof Person => true
student instanceof Employee => false
person instanceof Person => true
person instanceof Student => false
person instanceof Employee => false


snáď všetko, aj keď mám pocit, že som na niečo zabudol... keď si spomeniem, tak dopíšem... hmm...
plus, dúfam, že sa to dá aspoň trochu pochopiť, a že to pomohlo...
samozrejme, kľudne sa pýtaj, keby niečo... možno to tak aj bude lepšie, keď sa budeš pýtať na nejaké konkrétne veci, čo nevieš... :) aspoň mne sa to tak lepšie potom chápe... :)
#237
2. ročník / Re: OOP
03.12.2011, 23:08:15
Quote from: xxx3 on  03.12.2011, 22:44:45
co ej vlastne polymorfizmus ? Z tych anglickych prednasok som to moc nepochopil .. vie niekto vysvetlit ?

viem, ale teraz nemám čas napísať takú dlhú esej... večer napíšem... ak by som zabudol ;D pripomeň zajtra

edit:
ktorý polymorfizmus ťa zaujíma?
#238
2. ročník / Re: OOP
03.12.2011, 23:07:28
Quote from: esperian on  03.12.2011, 20:40:57
inak ked potrebujem nejaky predmet pouzit nato aby sa "otvorili dvere" na zapad , ako nato ?

@Override
    public GameState use(Game game) {
     
        game.getCurrentRoom().setExits(null, null, null, !null);
       
        return null;
    }

viem ye v game impl nastavim ten zapad ako null .. aby mi ho nezobrazovalo ten vychod na zpad

musíš tam nastaviť konkrétnu miestnosť, kam chceš prejsť - predaj si ju cez konštruktor predmetu... niečo také ako "!null" neexistuje (kam by si potom šiel?)
#239
2. ročník / Re: OOP
03.12.2011, 23:05:38
Quote from: veteran on  03.12.2011, 20:03:55
Quote from: Agamemnon on  03.12.2011, 18:50:33
dajte mi linku na tú knižnicu...
http://it4kt.fei.tuke.sk/c/oop/resources/The_Indiana_Jones_Project.jar

dik, potom neplatí tá vec s abstr. triedou, čo som napísal... hmm, divné
#240
2. ročník / Re: OOP
03.12.2011, 18:50:33
dajte mi linku na tú knižnicu...
#241
2. ročník / Re: OOP
03.12.2011, 18:49:14
Quote from: bEnd3r on  03.12.2011, 18:40:42
pricom interface moveable extends item

to akože interface dedí od triedy? to fakt?

item je abstraktná trieda alebo len ďalší interface?
#242
2. ročník / Re: OOP
03.12.2011, 18:18:00
Moveable je interface, Item je abstraktná trieda, nie?
implements funguje len s interfacemi, na dedenie tried sa používa extends...
takže:

public class Key extends Item implements Moveable


edit: tie settery setName, setDescription tam potrebuješ?
#243
O ničom / Re: Najebalo ma dnes
02.12.2011, 04:49:17
Quote from: tommy-sv on  02.12.2011, 04:10:24
Ludia schopni pouzit nazvy premennych ako: "daco", "naj", "ble". Zavrel by som do basy na mesiac bez naroku na indulonu.

a čo tak "a", "b", "c", etc? :D
#244
2. ročník / Re: OOP
01.12.2011, 20:28:27
Quote from: BlackBerry on  01.12.2011, 19:51:30
Mam truhlicu ako predmet,a chcem do nej vlozit mec a kluc...a potom ked dam ze preskumaj truhlicu a si chcem zobrat veci...to akym sposobom by som bol???mam tu truhlicu spravit tak isto ako Backpacket??..alebo neakym inymm sposobom??

- je to Backpack
- da sa to urobit ako Item, s tym, ze to bude mat nejake vnutorne pole s predmetmi, ktore sa v truhlici nachadzaju...
- da sa to urobit tak, ze Item bude mat vo vnutri Backpack
- viem si predstavit aj dalsie moznosti, ale tie prve 2 ti stacia...
- zobratie veci: budes mat problem, ak to chces urobit priamo cez prikaz "vezmi" - da sa to, ale bude si to vyzadovat prepisanie casti engineu (ak si spravne pamatam, ako to bolo navrhnute)... jednoduchsie je to urobit skor v style "pouzi truhlicu" a to z nej vezme vsetky predmety...
#245
O ničom / Re: VTIPY A FLIPY
01.12.2011, 03:53:38
Quote from: Domino3D on  01.12.2011, 03:00:22
Quote from: Agamemnon on  01.12.2011, 02:36:41
Quote from: Domino3D on  01.12.2011, 02:13:07ze ked pozeras nejaku kriminalku v telke a tak pracuju s pocitacom tak to vyzera asi takto :D
napriklad ked dakto sa ide hacknut do super tajnej pentagonskej aplikacie a za 5 minut si napise kod podobnym sposobom :D

najlepšie je aj tak, ako sa v tv bránia proti hackerským útokom :P čím rýchlejšie mlátia do klávesnice, tým sú lepší... samozrejme v ideálnom prípade mlátia do klávesnice dvaja naraz... 2 páry rúk sú viac ako jeden :D
Double Hacking

jj, to poznám... to je epic :D
#246
O ničom / Re: VTIPY A FLIPY
01.12.2011, 02:36:41
Quote from: Domino3D on  01.12.2011, 02:13:07ze ked pozeras nejaku kriminalku v telke a tak pracuju s pocitacom tak to vyzera asi takto :D
napriklad ked dakto sa ide hacknut do super tajnej pentagonskej aplikacie a za 5 minut si napise kod podobnym sposobom :D

najlepšie je aj tak, ako sa v tv bránia proti hackerským útokom :P čím rýchlejšie mlátia do klávesnice, tým sú lepší... samozrejme v ideálnom prípade mlátia do klávesnice dvaja naraz... 2 páry rúk sú viac ako jeden :D
#247
na akej licencii to mas? si si vedomy toho, ze wpf nema podporu pre trayicon? takze alebo pouzijes win.forms riesenie, alebo pouzijes nejake third party riesenia (niektore su velmi dobre) - ale tu potom uz ide o tu licenciu...
ak chces pisat cez mail, tak pis - mail by som mal mat zverejneny v profile... teraz mail napisat aj tak nemozem, takze mailom najskor vecer
#248
2. ročník / Re: OOP
28.11.2011, 22:57:49
Quote from: xxx3 on  28.11.2011, 22:54:11
nechaj tak, nerozumies co som tym chcel povedat

praveze ano... ale to je jedno...
zbytocne som reagoval na to :)
#249
2. ročník / Re: OOP
28.11.2011, 22:18:09
ja som reagoval na toto:

Quote
ta metoda odtial zmizla tak som si ju zmazal a teraz pozeram v 10. cviceni, ze treba do tej metody play nieco doplnit

to vyzera, ako keby si vobec netusil, co robis...
#250
2. ročník / Re: OOP
28.11.2011, 20:36:43
Quote from: xxx3 on  28.11.2011, 19:56:21
co ma byt v metode play v cviku 10 ?? Taku metodu nemam v GameImpl ... predtym bola v scenari, potom sa scenar zmeil, ta metoda odtial zmizla tak som si ju zmazal a teraz pozeram v 10. cviceni, ze treba do tej metody play nieco doplnit .. lenze uz ju tam nemam ... tak teraz ako je to ? Ked to menite pocas cviceni tak to aspon mente tak aby v tom nebol potom zmatok

keby som si mal tipnut, tak imo nemas vobec predstavu ako to ma fungovat