TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach

FEI archív 2011/2012 => 2. ročník => Topic started by: NDK on 22.09.2011, 21:02:52

Title: OOP
Post by: NDK on 22.09.2011, 21:02:52
Ake je heslo na prihlasenie do kurzu na moodle-i?
Title: Re: OOP
Post by: RiTChi on 22.09.2011, 21:46:53
To bude tusim pre kazdu skupinu ine...
Title: Re: OOP
Post by: Zeusetdeus on 22.09.2011, 23:41:25
skus "palica"
Title: Re: OOP
Post by: Agamemnon on 23.09.2011, 03:49:54
cviká platia tak, ako sú v rozvrhe v maise?
Title: Re: OOP
Post by: paloSK on 24.09.2011, 02:58:40
cviká platia tak, ako sú v rozvrhe v maise?
Mali by.
Title: Re: OOP
Post by: Agamemnon on 24.09.2011, 04:24:59
thx
Title: Re: OOP
Post by: M4D4 on 26.09.2011, 01:00:23
Ľudia, nemá niekto niečo (ideálne prednášky), z čoho sa dá učiť na cviká? Ako pozerám v moodli, tak už na zajtra máme vypísanú bleskovku :-/
Title: Re: OOP
Post by: genie on 26.09.2011, 01:55:43
vsak a v moodli prednasky nie su? :D
Title: Re: OOP
Post by: M4D4 on 26.09.2011, 02:10:33
neviem ako vy, ale ja ich tam nevidím O.o (cviká s Tomášekom)
Title: Re: OOP
Post by: veteran on 26.09.2011, 02:27:46
neviem ako vy, ale ja ich tam nevidím O.o (cviká s Tomášekom)
Ani ja... Ale tá prvá prednáška boli len také úvodné "báchorky". V podstate tam bol vysvetlený len objekt a trieda a ich vlastnosti na príklade toho e-shopu.
Title: Re: OOP
Post by: Wolfdale on 26.09.2011, 03:22:23
skusk kuknut na ftpčko alebo na strongu...tie prednasky boli ajtak anglicky
Title: Re: OOP
Post by: ultimate on 26.09.2011, 03:55:16
aj na konci cvika mas zdroje, aj ked po anglicky ale da sa to z toho dobre pochopit ak vies kus anglicky
Title: Re: OOP
Post by: Agamemnon on 26.09.2011, 04:28:24
a ak nevieš a študuješ inf, tak sa nauč... bez angličtiny inf nefunguje...
Title: Re: OOP
Post by: M4D4 on 26.09.2011, 05:11:15
Quote
a ak nevieš a študuješ inf, tak sa nauč... bez angličtiny inf nefunguje...

ak to bolo na mňa, tak anglicky viem ;-)

na mafe sú iba e-booky, ktoré stiahnuté mám, ale neplánujem ich dnes začať čítať . . . našťastie jeden študent fotil prednášku, takže som mal šťastie ;-)
Title: Re: OOP
Post by: ultimate on 26.09.2011, 05:21:29
a nepodelil by si sa o tu fotenu prednasku ? :)
Title: Re: OOP
Post by: Agamemnon on 26.09.2011, 13:39:05
ak to bolo na mňa, tak anglicky viem ;-)

nie na teba :) vseobecne...
Title: Re: OOP
Post by: veteran on 26.09.2011, 18:54:18
Na štvrtkovom cvičení bol k Ing. Jakubčovi pridaný doc. Ing. Martin Tomášek, PhD. ako vyučujúci.

BTW: niekto by sa mohol "pochváliť", čo bolo na prvej bleskovske  ;)
Title: Re: OOP
Post by: orsi on 26.09.2011, 20:27:14
nemohol by niekto uploadnúť minuloročné prednášky? uplne jedno v akom jazyku! nenašiel som ich na dc ani ftp.  ???
Title: Re: OOP
Post by: Agamemnon on 26.09.2011, 21:14:52
nemohol by niekto uploadnúť minuloročné prednášky? uplne jedno v akom jazyku! nenašiel som ich na dc ani ftp.  ???

mam estonsku verziu, moze byt? ;D
Title: Re: OOP
Post by: Wolfdale on 26.09.2011, 22:20:52
Ano, moze  :beer1:
Title: Re: OOP
Post by: Agamemnon on 26.09.2011, 22:51:50
 :beer1: :ropebanana:
Title: Re: OOP
Post by: M4D4 on 27.09.2011, 01:48:10
prvá prednáška, fotená foťákom nejakým šikovným študentom ( nezľaknite sa tou veľkosťou 150mb, fakt sú to fotky :D)

Code: [Select]
http://leteckaposta.cz/825972694
Title: Re: OOP
Post by: Wolfdale on 27.09.2011, 01:57:21
Mno díky pekne.  ;)
Title: Re: OOP
Post by: veteran on 27.09.2011, 02:02:39
prvá prednáška, fotená foťákom nejakým šikovným študentom ( nezľaknite sa tou veľkosťou 150mb, fakt sú to fotky :D)
спасибо  :) ;D

//// EDIT: PDF verzia 13MB: http://www.uloz.to/10399321/prednaska-01-pdf (http://www.uloz.to/10399321/prednaska-01-pdf) :)
Title: Re: OOP
Post by: Rajo on 27.09.2011, 03:39:00
prvá prednáška, fotená foťákom nejakým šikovným študentom ( nezľaknite sa tou veľkosťou 150mb, fakt sú to fotky :D)
спасибо  :) ;D

//// EDIT: PDF verzia 13MB: http://www.uloz.to/10399321/prednaska-01-pdf (http://www.uloz.to/10399321/prednaska-01-pdf) :)

ale vôbec nie zlé, ak by ten šikovný študent zobral ten foťák aj zajtra, určite by som sa, nie len ja, nepohneval :P
Title: Re: OOP
Post by: Wolfdale on 27.09.2011, 03:44:47
Na štvrtkovom cvičení bol k Ing. Jakubčovi pridaný doc. Ing. Martin Tomášek, PhD. ako vyučujúci.

BTW: niekto by sa mohol "pochváliť", čo bolo na prvej bleskovske  ;)

pocul som take echo, ze v jednej skupine mali napisat co je object a class + dokodit nieco lahke, tusim metodu/metody
Title: Re: OOP
Post by: Agamemnon on 27.09.2011, 03:53:42
Na štvrtkovom cvičení bol k Ing. Jakubčovi pridaný doc. Ing. Martin Tomášek, PhD. ako vyučujúci.

BTW: niekto by sa mohol "pochváliť", čo bolo na prvej bleskovske  ;)

pocul som take echo, ze v jednej skupine mali napisat co je object a class + dokodit nieco lahke, tusim metodu/metody

to mohlo byť... zvykli také otázky byť v minulých rokoch...
Title: Re: OOP
Post by: genie on 27.09.2011, 05:22:27
ach jaj detiska.. posielajte maily cez PM a poslem vsetky prednasky.. vesat to tu urcite nebudem, ale nemam problem poslat.
Title: Re: OOP
Post by: mirek on 27.09.2011, 12:59:55
ach jaj detiska.. posielajte maily cez PM a poslem vsetky prednasky.. vesat to tu urcite nebudem, ale nemam problem poslat.
hmm... a prednasajuceho sa opytat, ze preco nezverejnuje prednasky na webe sa opytat neda?
Title: Re: OOP
Post by: veteran on 27.09.2011, 13:50:26
ach jaj detiska.. posielajte maily cez PM a poslem vsetky prednasky.. vesat to tu urcite nebudem, ale nemam problem poslat.
hmm... a prednasajuceho sa opytat, ze preco nezverejnuje prednasky na webe sa opytat neda?
Ktosi sa ho pýtal, či to bude dávať na Moodle. Povedal, že "asi áno"...
Title: Re: OOP
Post by: Agamemnon on 27.09.2011, 14:14:43
ach jaj detiska.. posielajte maily cez PM a poslem vsetky prednasky.. vesat to tu urcite nebudem, ale nemam problem poslat.
hmm... a prednasajuceho sa opytat, ze preco nezverejnuje prednasky na webe sa opytat neda?
Ktosi sa ho pýtal, či to bude dávať na Moodle. Povedal, že "asi áno"...

pozor, lebo je velky rozdiel medzi otazkami...
"budete davat prednasky na net?" a
"preco nedavate prednasky na net?"
:)
Title: Re: OOP
Post by: xxx3 on 01.10.2011, 18:07:15
aky je rozdiel medzi konstruktorom a metodou ?

konstruktor je na skonstruovanie objektu za pomoci triedy ?
a metoda nieco robi uz s vytvorenym objektom ?
Title: Re: OOP
Post by: genie on 01.10.2011, 19:19:59
konstruktor je specialna metoda, ktora vytvara instancie/objekty danej triedy.
a metoda robi nieco uz s vytvorenym objektom - ide akoze o spravanie sa uz konkretneho objektu
Title: Re: OOP
Post by: xxx3 on 01.10.2011, 19:31:32
ok, takze dobre som to chapal. Dikes

Skusam si robit tie doplnujuce ulohy z 2.cvicenia a neviem ako pouzit tu triedu Rectangle v inej triede (Chair) na vytvorenie stolicky pozostavajucej z niekolkych obdlznikov ?
Title: Re: OOP
Post by: genie on 01.10.2011, 19:33:11
hod sem link, nie kazdy kto sem pise ma ten predmet ;)
a vytvaranie objektu nejakej triedy robis pomocou
Code: [Select]
new NazovTriedy (zoznam_parametrov);
skus si pohladat parametricky a bezparametricky konstruktor'
Title: Re: OOP
Post by: xxx3 on 01.10.2011, 19:42:00
doplnujuca uloha 3: http://it4kt.fei.tuke.sk/c/oop/scenarios/02/index.html (http://it4kt.fei.tuke.sk/c/oop/scenarios/02/index.html)

aha, takze vytvorim si triedu napr. public class Chair { ... } a v nej pomocou new Rectangle(parametre); vytvorim obdlzniky, ktore budu akoze ta stolicka ?

Title: Re: OOP
Post by: genie on 01.10.2011, 20:26:14
jj
Title: Re: OOP
Post by: xxx3 on 01.10.2011, 20:45:12
to new Rectangle mam pisat potom do konstruktoru ?

A da sa nejak pouzit napr. metoda draw() z triedy Rectangle aj v triede Chair aby som ju nemusel pisat dvakrat ? Kedze potrebujem vykreslit tie obdlzniky stolicky.

Title: Re: OOP
Post by: Agamemnon on 01.10.2011, 21:01:29
Code: [Select]
Rectangle r = new Rectangle();
r.draw();
Title: Re: OOP
Post by: xxx3 on 01.10.2011, 21:05:32
diky, uz mi to ide, aj ked iba vtedy ked tam pridam este r.show();  a nam treba vytvorit metodu show() v triede Chair

tak som spravil metodu public void show() { r.show(); } a ked ju chcem pouzit napise java.lang.StackOverflowError atd. ... a pritom ked to r.show(); nedam zvlast do metody ale do konstruktora tak to ide riadne


Title: Re: OOP
Post by: genie on 01.10.2011, 21:35:00
r.show() je volanie metody triedy Rectangle, nie metody show() triedy Chair, nakolko r je objektom triedy Rectangle
Title: Re: OOP
Post by: xxx3 on 01.10.2011, 22:11:13
aha, takze to sa tak neda ako som si myslel ... myslel som, ze to bude treba cez tu metodu show() v Rectangle, kedze ja vlastne chcem zobrazit tie obdlzniky z triedy Rectangle

Ako by teda mala vyzerat metoda show pre Chair ? .. lebo viem to spravit len tak, ze bez pouzitia novovytvorenej metody show(), ale s pouzitim tej show() z Rectangle v konstruktore pre Chair
Title: Re: OOP
Post by: Agamemnon on 01.10.2011, 22:36:26
z rectangle si urob premenné triedy a nie metódy a potom môžeš volať show rectangle aj v show triedy chair

upozorňujem, že čo píšem, píšem bez toho, aby som reálne vedel, čo tie metódy v Rectangle robia... a aký majú predpis... snáď je to okej... ale aspoň základný koncept by si z toho mal pochopiť...

Code: [Select]
class Chair {
  Rectangle r;

  public Chair() {
    r = new Rectangle();
    r.draw();
  }

  public void show() {
    r.show();
  }
}
Title: Re: OOP
Post by: xxx3 on 01.10.2011, 22:47:45
dikes, uz to ide, problem bol v tom, ze aj ked som mal tu premennu ako premennu pre celu triedu, ale pisal som este Rectangle r = new Rectangle();  .. a ked som teraz zmazal odtial spred r-ka Rectangle tak to ide

Title: Re: OOP
Post by: Wolfdale on 02.10.2011, 16:23:14
doplnujuca uloha 3: http://it4kt.fei.tuke.sk/c/oop/scenarios/02/index.html (http://it4kt.fei.tuke.sk/c/oop/scenarios/02/index.html)

aha, takze vytvorim si triedu napr. public class Chair { ... } a v nej pomocou new Rectangle(parametre); vytvorim obdlzniky, ktore budu akoze ta stolicka ?

mozno hlupa otazka, ale neviem na to prist: ako vytvorit tie obdlzniky?  ???
Title: Re: OOP
Post by: RiTChi on 02.10.2011, 17:26:41
doplnujuca uloha 3: http://it4kt.fei.tuke.sk/c/oop/scenarios/02/index.html (http://it4kt.fei.tuke.sk/c/oop/scenarios/02/index.html)

aha, takze vytvorim si triedu napr. public class Chair { ... } a v nej pomocou new Rectangle(parametre); vytvorim obdlzniky, ktore budu akoze ta stolicka ?

mozno hlupa otazka, ale neviem na to prist: ako vytvorit tie obdlzniky?  ???

Rectangle Rectangle1 = new Rectangle( ... )
Title: Re: OOP
Post by: ultimate on 02.10.2011, 17:28:37
Rectangle Rectangle1 = new Rectangle(<x>,<y>,<sirka>,<vyska>,<farba>)
Title: Re: OOP
Post by: Wolfdale on 02.10.2011, 17:35:10
a spravim tak styri?

Rectangle Rectangle1 = new Rectangle(<x>,<y>,<sirka>,<vyska>,<farba>)
Rectangle Rectangle2 = new Rectangle(<x>,<y>,<sirka>,<vyska>,<farba>)
Rectangle Rectangle3 = new Rectangle(<x>,<y>,<sirka>,<vyska>,<farba>)
Rectangle Rectangle4 = new Rectangle(<x>,<y>,<sirka>,<vyska>,<farba>)
Title: Re: OOP
Post by: ultimate on 02.10.2011, 17:44:28
hej, ale musis ich poposuvat, ze das napriklad

Rectangle Rectangle1 = new Rectangle(x,y,5,20,Color.RED)
Rectangle Rectangle2 = new Rectangle(x+10,y,5,20,Color.RED)
Rectangle Rectangle3 = new Rectangle(x,y-5,10,2,Color.GREEN)
Rectangle Rectangle4 = new Rectangle(x+5,y-2,2,10,Color.PINK)

... len tak som dal hocijake cisla, si to musis napasovat aby to vyzeralo ako stolicka
Title: Re: OOP
Post by: Wolfdale on 02.10.2011, 17:46:07
jj to uz viem. dakujem  ;)
Title: Re: OOP
Post by: Wolfdale on 02.10.2011, 17:58:24
a ked napisem public class Chair  {
sem dam teraz tieto riadky...
Rectangle Rectangle1 = new Rectangle(x,y,5,20,Color.RED
.
.
.
a potom ide opat
public Chair()?
{...
...
.}
Title: Re: OOP
Post by: RiTChi on 02.10.2011, 19:02:25
ehm...

Code: [Select]
public class Chair     //trieda
{
   private int x;
   private int y;
   private Rectangle rec1 = new Rectangle( ... );
   private Rectangle rec2 = new Rectangle( ... );
   private Rectangle rec3 = new Rectangle( ... );
   ...

   public Chair( ... )
   {                                 //konstruktor
        //tu si ponastavuj atributy
   }                               //koniec konstruktora
}                              //koniec triedy
Title: Re: OOP
Post by: Wolfdale on 02.10.2011, 19:06:37
uz to mam, ale diky
Title: Re: OOP
Post by: Tren on 02.10.2011, 19:56:18
kedy sa pise bleskovka s Kapom, teraz alebo buduci tyzden?
Title: Re: OOP
Post by: ultimate on 02.10.2011, 20:32:44
tento tyzden
Title: Re: OOP
Post by: BlackBerry on 02.10.2011, 22:45:41
ale vsak s Kapom nesu bleskovky
Title: Re: OOP
Post by: ultimate on 02.10.2011, 22:48:42
su, kazdy treti tyzden ... a teraz bude treti
Title: Re: OOP
Post by: Wolfdale on 02.10.2011, 22:50:52
jj, pravdaze su...sice som si myslel, ze az buduci tyzden bude, ale neva  :emot-dance:
Title: Re: OOP
Post by: ultimate on 02.10.2011, 22:52:34
ale tak co tam moze dat ? ... povedal, ze z prvych dvoch cviceni, cize co je trieda, objekt, konstruktor, metoda a popripade nakodit nejaky jednoduchy konstruktor ci metodu ... nic ine sme asi nerobili, ci ?
Title: Re: OOP
Post by: Wolfdale on 02.10.2011, 22:56:12
presne tak  :) takurat som docital vsetky definicie a pod. vecer este kuknem kod + tie doplnujuce ulohy...minuly rok na programku Tomasek daval nakodit tie ulohy alebo nieco z tych uloh...uvidime co da Kapa
Title: Re: OOP
Post by: BlackBerry on 02.10.2011, 22:58:59
a inac existuje neaka slovenska literatura?alebo z coho sa oplati ucit?? :P
Title: Re: OOP
Post by: ultimate on 02.10.2011, 23:07:48
existuju ceske knihy, ktore sa daju najst v .pdf ... aj tam na spodku v cviceniach na moodle kde su zdroje su nejake odkazy aj na ceske texty

Title: Re: OOP
Post by: RiTChi on 03.10.2011, 00:52:09
Pecinovsky ma dobre knihy odporucam. Alebo aj Herout ma jednu o jave, akurat ju citam, tiez sa da.
Title: Re: OOP
Post by: ppeess on 03.10.2011, 01:52:16
presne tak  :) takurat som docital vsetky definicie a pod. vecer este kuknem kod + tie doplnujuce ulohy...minuly rok na programku Tomasek daval nakodit tie ulohy alebo nieco z tych uloh...uvidime co da Kapa
Kapa daval teoreticku otazku a ptm napisat napr. neaky konstruktor, ktory sa bral na cviku abo tak .... :D ... proste jednoduche veci a body zadarmo :)
Title: Re: OOP
Post by: SteLa on 03.10.2011, 22:06:14
Nemal tu niekto cvika s Jakubcom?  KEdze teraz miesto neho pride iny neviem ci cakat test O.o
 
Title: Re: OOP
Post by: veteran on 03.10.2011, 22:07:05
Nemal tu niekto cvika s Jakubcom?  KEdze teraz miesto neho pride iny neviem ci cakat test O.o
 
Ja  :) Príde doc. Tomášek, takže sa na test radšej pripravím.
Title: Re: OOP
Post by: SteLa on 03.10.2011, 22:36:46
aj teoriu?:)
Title: Re: OOP
Post by: esperian on 03.10.2011, 22:46:58
aj teoriu?:)

OT , Vsetko najlepsie  ;D
Title: Re: OOP
Post by: Tren on 03.10.2011, 22:52:00
aj teoriu?:)

OT , Vsetko najlepsie  ;D
no pochybujes ze sa tak vola  ;D 99,99% ze nie  :D
Title: Re: OOP
Post by: SteLa on 03.10.2011, 22:55:20
Tak sa vola macka^^ Ak narazate na meniny.

hm a nie, nic som jej nekupila.
Title: Re: OOP
Post by: esperian on 03.10.2011, 22:57:54
aha xDDDDDDDDDD tak ju pozdrav  ;D ;)
Title: Re: OOP
Post by: VoCoGo on 07.10.2011, 23:29:36
ma niekto spraveny ten vytah s lanom ?
Title: Re: OOP
Post by: Don_Corleone on 08.10.2011, 02:14:31
akurat sa idem do toho pustit ... snad to spravim este dnes ...
Title: Re: OOP
Post by: VoCoGo on 08.10.2011, 02:30:01
Potom napis ako to mas, mne to ide ale len smerom nadol to ide dobre, ked ide vytah hore tak mam o jedno poschodie stale dlhsie lano ako vytah a neviem prist nato ako to inak spravit
Title: Re: OOP
Post by: RiTChi on 08.10.2011, 05:51:12
tak odcitaj vo vypocte dlzky lana od vysledku este vysku kabiny :D kostrbate riesenie, ale elegantnejsie ti neporadim, kedze nevidim kod... :D
Title: Re: OOP
Post by: veteran on 08.10.2011, 16:17:43
Mne tá potvora behá skoro tak, ako by mala. Teda pri chode kabíny nadol sa lano pekne vykresľuje. Keď vrátim kabínu späť nahor (akože to nulté poschodie), tak všetko ide tak ako má, akurát keď kabína zastane, tak sa mi nad ňou vykreslí ešte jeden pixel.  >:( Zrejme to bude to isté, čo spomínal VoCoGo včera večer.

(http://img214.imageshack.us/img214/4722/beznzvu1g.jpg)

Upravoval som len metódu goToFloor() - nasledovne:
Code: [Select]
public void goToFloor(int floor){
        closeDoor(); // zatvorime dvere
       
        if (floor < 0)
           floor = 0;
        if (floor >= this.floors)
        floor = this.floors -1;
        int delta = ( floor > actualFloor ? 1 : -1 ); // vypocita sa delta, bude 1 alebo -1
     
        while(floor != this.actualFloor){ // pohyb medzi poschodiami
            for(int step = 0; step < this.cabine.getHeight(); ++step){ // cyklus vramci jedneho posunu na poschodie
                this.cabine.setY(this.cabine.getY() + delta); // zmena ypsilonovej suradnice
                Canvas.setColor(Color.GRAY);
                Canvas.drawPixel((this.cabine.getX()+this.cabine.width+1)/2, this.cabine.getY()-1);
                TimeFlow.elapse(100);
            }
     
            this.actualFloor += delta;
           
        }
       
     
        openDoor();
    }
Title: Re: OOP
Post by: VoCoGo on 08.10.2011, 17:37:56
ja som to inak robil, toto tvoje ked si skopirujem ani mi to nejde, pise mi problem pri this.canvas.width, ze width mam private v Rectangle

Ja to mam tak, ze som si spravil v konstruktore dalsi objekt lano = new Rectangle(...) a potom v metode goToFloor som to pridal, ze ked sa hybe vytah tak aby nastavovalo vysku (height) toho lana podla toho na ktorom poschodi je vytah, do toho cyklu while som to dopisal
Title: Re: OOP
Post by: RiTChi on 08.10.2011, 17:42:29
Mne to funguje... pre inspiraciu:

v triede:
Code: [Select]
private Rectangle rope;

v konstruktore:

Code: [Select]
...
        this.rope = new Rectangle( (int)( this.cabine.getX() + ( this.cabine.getWidth()/2 ) ),
                                   ( this.cabine.getY() - ( floors * this.cabine.getHeight() ) )- this.cabine.getHeight(),
                                   1,
                                   ( ( this.cabine.getHeight() * this.floors ) + this.cabine.getHeight() ),
                                   Color.YELLOW );
        this.rope.show();
...

v goToFloor( int floor ):

Code: [Select]
...
  for( int step = 0; step < cabine.getHeight(); ++step )
  {
       this.cabine.hide();
       this.rope.hide();
       this..rope.setHeight( delta + this.rope.getHeight() );
       this.cabine.setY( delta + this.cabine.getY() );
       this.rope.show();
       this.cabine.show();
       TimeFlow.elapse( 50 );
   }
...
Title: Re: OOP
Post by: mirek on 10.10.2011, 14:51:57
ked tak nad tym rozmyslam, tak sa to da cele vyriesit len jednym riadkom navyse v existujucom kode. skusim sa do toho pustit dneska vecer.
Title: Re: OOP
Post by: charlie on 12.10.2011, 22:37:23
neviete kedy bude dalsia bleskovka u Kapa?
Title: Re: OOP
Post by: Wolfdale on 12.10.2011, 22:41:48
3. tyzden
6. tyzden
9. tyzden
12. tyzden
Title: Re: OOP
Post by: matotv on 13.10.2011, 22:22:32
teraz pondelok mame odovzdat scenar vsak? :D mam cvika s kapom, nevie niekto ako to ma vyzerat? lebo teraz pondelok cvika rano neboli  takze blizsie info neviem, ci vobe treba teraz odovzdat :D
Title: Re: OOP
Post by: ultimate on 13.10.2011, 22:35:49
co treba odovzdat ? :D .. ja mam tiez s kapom a o nicom neviem :D
Title: Re: OOP
Post by: veteran on 13.10.2011, 22:38:14
Scenáre sa odovzdávajú až v 6. týždni, nerobte paniku.
Title: Re: OOP
Post by: paloSK on 13.10.2011, 22:43:58
Scenáre sa odovzdávajú až v 6. týždni, nerobte paniku.
A v pondelok rano cvika boli.  :D
Title: Re: OOP
Post by: matotv on 13.10.2011, 23:01:57
tak rano,  :D 10:55 neboli, takze urcite scenar az v 6 tyzdni? mne sa zdalo ze v 5, aj dvaja kamosi si to tak pamataju
Title: Re: OOP
Post by: ultimate on 14.10.2011, 00:55:24
nestresuj :D
Title: Re: OOP
Post by: mino on 15.10.2011, 03:01:30
Co sa preberalo na 4. prednaske? Pytam sa, lebo na 3. prednaske sa nebrala 3. prezentacia, ale 6. - staticke cleny/metody. Bola teraz 3. - Dedicnost alebo 4. Rozhrania a abstraktne triedy alebo nieco ine?  ???
Title: Re: OOP
Post by: Agamemnon on 15.10.2011, 03:13:02
abstraktné triedy bez dedičnosti neurobíš... resp. nemajú zmysel...
Title: Re: OOP
Post by: mino on 15.10.2011, 03:32:32
abstraktné triedy bez dedičnosti neurobíš... resp. nemajú zmysel...
Tiež pravda :D
Title: Re: OOP
Post by: farkasdvd on 15.10.2011, 16:32:28
Mam otazku k minulemu cviceniu(asi 4.).
Jak zavolam metodu print() z konstruktora Elevatoru, ked metoda print() vyzaduje este jeden parameter typu Elevator:
StatusBar.print(???, "The elevator was just created.")

V triede Statusbar ten print() vizera takto:

public static print(Elevator elevator, String message){
        Canvas.setColor(Color.WHITE);
        Canvas.drawText("Msg from [" + elevator.getId() + "]:" + message, elevator.getX(), 30);
}

Title: Re: OOP
Post by: AnvilOfFury on 15.10.2011, 16:39:51
Mam otazku k minulemu cviceniu(asi 4.).
Jak zavolam metodu print() z konstruktora Elevatoru, ked metoda print() vyzaduje este jeden parameter typu Elevator:
StatusBar.print(???, "The elevator was just created.")

V triede Statusbar ten print() vizera takto:

public static print(Elevator elevator, String message){
        Canvas.setColor(Color.WHITE);
        Canvas.drawText("Msg from [" + elevator.getId() + "]:" + message, elevator.getX(), 30);
}

(edit)
Si v konštruktore Elevator a chceš zavolať metódu print(Elevator, String) z triedy StatusBar?
Code: [Select]
StatusBar.print(this, "The elevator was just created.");
Title: Re: OOP
Post by: farkasdvd on 15.10.2011, 17:44:49
Mam otazku k minulemu cviceniu(asi 4.).
Jak zavolam metodu print() z konstruktora Elevatoru, ked metoda print() vyzaduje este jeden parameter typu Elevator:
StatusBar.print(???, "The elevator was just created.")

V triede Statusbar ten print() vizera takto:

public static print(Elevator elevator, String message){
        Canvas.setColor(Color.WHITE);
        Canvas.drawText("Msg from [" + elevator.getId() + "]:" + message, elevator.getX(), 30);
}

(edit)
Si v konštruktore Elevator a chceš zavolať metódu print(Elevator, String) z triedy StatusBar?
Code: [Select]
StatusBar.print(this, "The elevator was just created.");

Ano, presne tak som to myslel. Funguje to perfektne, dakujem.  :)
Title: Re: OOP
Post by: ultimate on 17.10.2011, 20:06:33
Neviete kde by som nasiel nejaky priklad ako ma ta textova hra, ktora je ako zadanie realne vyzerat ?

Tam v scenari cviceni je nejaky link, ale je nefunkcny.
Title: Re: OOP
Post by: orsi on 17.10.2011, 20:46:02
odporucam využívať ako dobrý zdroj informácií napríklad Google.  ;) alebo ked ta stretnem v stredu na prednáške z matiky tak ti môžem dať jednu hru, ktorú nám odporúčal binas. nevedel som to prejst a strašne mi to žralo procesor...  :D  :D
Title: Re: OOP
Post by: Brand on 17.10.2011, 21:09:28
odporucam využívať ako dobrý zdroj informácií napríklad Google.  ;) alebo ked ta stretnem v stredu na prednáške z matiky tak ti môžem dať jednu hru, ktorú nám odporúčal binas. nevedel som to prejst a strašne mi to žralo procesor...  :D  :D

to musela byt namakana textovka  :metal:
Title: Re: OOP
Post by: AnvilOfFury on 18.10.2011, 20:17:03
Neviete kde by som nasiel nejaky priklad ako ma ta textova hra, ktora je ako zadanie realne vyzerat ?

Tam v scenari cviceni je nejaky link, ale je nefunkcny.
http://freearcade.com/textadventures.html (http://freearcade.com/textadventures.html) prvy link v googli, alebo posli scenar a dodam ti celu tvoju vypracovanu TextGame.
Title: Re: OOP
Post by: xxx3 on 21.10.2011, 21:02:48
buduci tyzden treba odovzdat len scenar ? Alebo treba mat vymyslene uz aj to rozsirenie a rozhranie ?

Title: Re: OOP
Post by: stephanides on 22.10.2011, 19:46:12
Nazdar, čo sa učíte na bleskovku na pondelok s Kapom?
Title: Re: OOP
Post by: Rajo on 22.10.2011, 19:53:12
 bq
Nazdar, čo sa učíte na bleskovku na pondelok s Kapom?

Mňa by skôr zaujímalo, ako má vyzerať ten scenár....
Title: Re: OOP
Post by: xxx3 on 22.10.2011, 19:55:46
takto: http://it4kt.fei.tuke.sk/c/oop/scenarios/00/scenario.html (http://it4kt.fei.tuke.sk/c/oop/scenarios/00/scenario.html)
Title: Re: OOP
Post by: stephanides on 22.10.2011, 20:21:36
Tak ukážka je na moodli.. len neviem podla čoho také že trikrat juh juh juh .. to si mam v hlave predstaviť hru ? či si to mam nakresliť alebo nechapem ako taka textovka vyzerá.. a zaujíma ma aj bleskovka kedže je za 5 bodov :D
Title: Re: OOP
Post by: xxx3 on 22.10.2011, 20:42:55
to juh juh juh ... to si vymyslis ako chces, ked zadas nejaku svetovu stranu tak akoze ides do dalsej miestnosti ... nakreslit si to nemusis staci si to predstavit :D ... a to nie je ako sokoban, ze riadne mas miestnosti ktore mas vykreslene a pohybujes sa v nich ... to je len textova hra ... mas tam len text, napr. mas na obrazovne vypisane: "Nachadzas sa v prvej miestnosti" ... napises tam napriklad "Juh" a ono ti to napise "Si v dalsej miestnosti, vidis tu skalu" .. napises "Vezmi skala" a zoberies akoze skalu ... a tak dalej, ... aspon ja som to tak pochopil, ze to bude len o texte a budes tam zadavat textove prikazy
Title: Re: OOP
Post by: stephanides on 22.10.2011, 21:03:12
Jáj tak dik za menšiu predstavu :)
Title: Re: OOP
Post by: Rajo on 22.10.2011, 21:10:59
no fájn, len teraz ako má vlastne vyzerať ten scenár? má tam byť 50 miestnosti, čiže to mám napísať všetky miestnosti, ktoré budem mať v hre ? Napr. "kuchyňa", "obývačka" , "psychiatria", "miestnosť č. 20" ? a potom postune rozpísať čo v každej miestnosti má byť či ako? chcelo by to nejaký reálny scenár bývalých druhákov....
Title: Re: OOP
Post by: xxx3 on 22.10.2011, 21:31:06
ved tu mas realny scenar : http://it4kt.fei.tuke.sk/c/oop/scenarios/00/scenario.html (http://it4kt.fei.tuke.sk/c/oop/scenarios/00/scenario.html) no tiez by som nebol proti keby sem dal niekto este nejaky scenar aby som si to zbytocne nekomplikoval kedze este neviem ako sa to bude programovat
Title: Re: OOP
Post by: veteran on 22.10.2011, 21:40:09
to je len textova hra ... mas tam len text, napr. mas na obrazovne vypisane: "Nachadzas sa v prvej miestnosti" ... napises tam napriklad "Juh" a ono ti to napise "Si v dalsej miestnosti, vidis tu skalu" .. napises "Vezmi skala" a zoberies akoze skalu ... a tak dalej, ... aspon ja som to tak pochopil, ze to bude len o texte a budes tam zadavat textove prikazy
Ja som to pochopil podobne  ;)

no fájn, len teraz ako má vlastne vyzerať ten scenár? má tam byť 50 miestnosti, čiže to mám napísať všetky miestnosti, ktoré budem mať v hre ? Napr. "kuchyňa", "obývačka" , "psychiatria", "miestnosť č. 20" ? a potom postune rozpísať čo v každej miestnosti má byť či ako? chcelo by to nejaký reálny scenár bývalých druhákov....
Miestností stačí "len" 30. Počet krokov musí byť aspoň 50.

Do scenára máme napísať postupnosť krokov, ktorou sa to dá prejsť do konca. Plus k tomu treba urobiť "mapu" sveta (nakresliť). Aspoň tak nám vravel Tomášek na cvičení.
Title: Re: OOP
Post by: xxx3 on 22.10.2011, 21:42:11
ta mapa ma ako vyzerat ?
Title: Re: OOP
Post by: veteran on 22.10.2011, 21:47:14
ta mapa ma ako vyzerat ?
To je dobrá otázka  ;)
Title: Re: OOP
Post by: SteLa on 22.10.2011, 22:16:33
takto: http://it4kt.fei.tuke.sk/c/oop/scenarios/00/scenario.html (http://it4kt.fei.tuke.sk/c/oop/scenarios/00/scenario.html)

hm takto ma vyzerat ten scenar?O.o myslela som ze neaky pribeh chcu ci co . Nemaju tam neaky konkretnejsi priklad?
Title: Re: OOP
Post by: Rajo on 22.10.2011, 22:31:34
takto: http://it4kt.fei.tuke.sk/c/oop/scenarios/00/scenario.html (http://it4kt.fei.tuke.sk/c/oop/scenarios/00/scenario.html)

hm takto ma vyzerat ten scenar?O.o myslela som ze neaky pribeh chcu ci co . Nemaju tam neaky konkretnejsi priklad?

Tiež si myslím, že by to malo byť na spôsob: "Si v kuchyni, naľavo máš nôž, napravo vidličku, vpredu sú dvere do obývačky, môžeš zobrať buď nôž alebo vidličku a ísť do obývačky"
Title: Re: OOP
Post by: xxx3 on 22.10.2011, 22:33:09
je jedno co si myslis, ma to byt tak ako je ten vzor ... to co si pisal Rajo, budes davat potom do hry, ale nie do scenara
Title: Re: OOP
Post by: esperian on 23.10.2011, 00:28:31
ta mapa ma ako vyzerat ?
To je dobrá otázka  ;)

Vzor scenára
z-zaciatocna miestnost.
    pouzi skala
    juh
    zapad
    juh
    juh
    vychod

    pouzi skala
    sever
    vezmi mec
    vychod
    vychod
    sever

    preskumaj truhlica
    vezmi strieborny kluc
    vezmi lano
    juh
    vychod

    pouzi strieborny kluc
    juh
    vezmi elixir
    vychod
    juh


nie nahodou takto  ??..(je to podla toho ukazkoveho scenara spravene kusok)

inak z teorie mozu byt ktore prezentacie na zapichu pondelok pri Kapovi?? 4,5 ??

Title: Re: OOP
Post by: SteLa on 23.10.2011, 01:02:09
ta mapa ma ako vyzerat ?
To je dobrá otázka  ;)

Vzor scenára
z-zaciatocna miestnost.
    pouzi skala
    juh
    zapad
    juh
    juh
    vychod

    pouzi skala
    sever
    vezmi mec
    vychod
    vychod
    sever

    preskumaj truhlica
    vezmi strieborny kluc
    vezmi lano
    juh
    vychod

    pouzi strieborny kluc
    juh
    vezmi elixir
    vychod
    juh


nie nahodou takto  ??..(je to podla toho ukazkoveho scenara spravene kusok)

inak z teorie mozu byt ktore prezentacie na zapichu pondelok pri Kapovi?? 4,5 ??

hmm asi hej.. ale tak 30 miestnosti omg:/ Takze len vypisat priamo tie prikazy s ktorymi prejdem hru hmm?
Title: Re: OOP
Post by: xxx3 on 23.10.2011, 01:02:46
... podla toho ukazkoveho scenara spravene kusok ...
  :D

a v tej mape mas dvakrat 11

Z prednasok podla mna 3-5 ... kedze sme prvu pisali v 3. tyzdni, tak asi od tretieho tyzdna co sa preberalo
Title: Re: OOP
Post by: SteLa on 23.10.2011, 01:05:15
Inak ako to robite, davate do kazdej mietsnosti nieco? alebo mate take miestnosti ktorymi len kvazi prejdete? Lebo do kazdej z 30 miestnosti davat neviem ake predmety a postavy a naladove opisy mi pripada zbytocne, ked to nikto hrat aj tak nebude.
Title: Re: OOP
Post by: xxx3 on 23.10.2011, 01:08:00
ja mam aj take miestnosti kde nic neni ... iba ze nou prejdes
Title: Re: OOP
Post by: SteLa on 23.10.2011, 01:14:15
ja mam aj take miestnosti kde nic neni ... iba ze nou prejdes

oka ^^ tak uz aj ja:)
Title: Re: OOP
Post by: esperian on 23.10.2011, 01:21:24
... podla toho ukazkoveho scenara spravene kusok ...
  :D

a v tej mape mas dvakrat 11

Z prednasok podla mna 3-5 ... kedze sme prvu pisali v 3. tyzdni, tak asi od tretieho tyzdna co sa preberalo

tak ta jedenastka je tam preto 2 krat lebo najprv ide doprava, potom ide hore a potom zase dole,, v tej miestnosti hore si zoberie lano ci co to a potom sa vrati naspat dole...

dik aj ja si myslim ze 3-5 ...a ta prakticka uloha tiez moze byt len z 3-5 vssak ? sice 5 cviko sme este nerobili...
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 01:26:26
ten scenár má byť taký, že keď ho uložíš do súboru, potom ten súbor načítaš cez load v hotovej hre, tak ti to hru prejde... proste len zoznam príkazov...
Title: Re: OOP
Post by: ultimate on 23.10.2011, 01:40:11
kebyze mam nejake postavy v deji hry, tak aj tie postavy su predmety alebo nie ?
Title: Re: OOP
Post by: SteLa on 23.10.2011, 01:51:52
kebyze mam nejake postavy v deji hry, tak aj tie postavy su predmety alebo nie ?
Si ich mozes dat potom dovrecka? alebo s nimi otvoris dvere? Ja by som vytvorila osobitnu triedu.:) Teda podla ma by to bol lepsi napad .Alebo ich vobec nerob ked sa budu spravat ako predmety O.o
Title: Re: OOP
Post by: RiTChi on 23.10.2011, 02:00:41
Zaujímalo by ma, či musím robiť scenár aj keď chcem robiť to druhé zadanie, čo spomínal p. Biňas. Nechcem sa vyhýbať práci, ale radšej by som si napísal nejakú skákačku s použitím grafickej knižnice ako textovú hru a potom načo strácať čas tvorbou scenáru, keď ho aj tak nepoužijem.
Title: Re: OOP
Post by: mino on 23.10.2011, 02:41:20
Zaujímalo by ma, či musím robiť scenár aj keď chcem robiť to druhé zadanie, čo spomínal p. Biňas. Nechcem sa vyhýbať práci, ale radšej by som si napísal nejakú skákačku s použitím grafickej knižnice ako textovú hru a potom načo strácať čas tvorbou scenáru, keď ho aj tak nepoužijem.
:thumbs-up:
Aj ja by som radsej tu skakacku... Btw, neviete niekto, ktora skupina bude ta experimentalna? Ze vraj Binasova v pondelok, ale neviem, ktora (5./10.?) ... Neviete to niekto presne?
Title: Re: OOP
Post by: RiTChi on 23.10.2011, 03:00:49
Pýtal som sa po AOSL I a sám nevedel ešte presne ktorá pondelková, ale myslím, že sa dá dohodnúť aj individuálne z iných skupín (šak materiály isto budú na nete a práca na cviku je prevažne samostatná).
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 03:22:28
ultimate: postava - je to tvoje rozhodnutie... dá sa to urobiť aj ako Item - ale dá sa to urobiť aj úplne ako samostatná classa... a samozrejme existuje aj stredná cesta, kde predmety aj osoby budú vychádzať zo spoločného parenta... závisí od toho, čo s tým (osobami) chceš robiť a od samotnej implementácie (engineu, miestnosti, etc)
stela: to, že je niečo predmet, ešte neznamená automaticky, že si to vieš dať do vrecka, alebo to vieš použiť... závisí od implementácie :)

Q: čo to je experimentálna skupina? :)
Title: Re: OOP
Post by: RiTChi on 23.10.2011, 03:37:38
Pripravuje sa nové zadanie na OOP s použitím knižnice Slick 2D (http://slick.cokeandcode.com/ (http://slick.cokeandcode.com/)) mala by to byť nejaká skákačka.
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 04:31:09
Pripravuje sa nové zadanie na OOP s použitím knižnice Slick 2D (http://slick.cokeandcode.com/ (http://slick.cokeandcode.com/)) mala by to byť nejaká skákačka.

aha
Title: Re: OOP
Post by: Cici on 23.10.2011, 05:35:23
aj ja chcem robit to alternativne zadanie ale ak by bolo treba aj tak scenar tak to je easy: Forrest Gump - 30 miestnosti za sebou a v kazdej pouzijes nove boty a je to  :D

a ano ma to byt prva alebo druha pondelkova skupina (ak ich niekto nepredbehol v piatok) a ze potom sa asi bude dat "migrovat" medzi skupinami aby sa dalo bavit v jednej skupine iba o tom druhom zadani.
Title: Re: OOP
Post by: mino on 23.10.2011, 05:51:45
Btw, je mozne povazovat dvere za predmet? Asi nie, pretoze predmet musi byt v batohu alebo v miestnosti a dvere su medzi miestnostami, ze? Ja len, ze mam slabu fantaziu a zatial len 6 predmetov.... :D
Title: Re: OOP
Post by: Cici on 23.10.2011, 06:00:50
sak daj do mistnosti anicku a mozes ze "preskumaj anocku" a "pouzi anicku" :D
Title: Re: OOP
Post by: AnvilOfFury on 23.10.2011, 06:20:31
bq
Nazdar, čo sa učíte na bleskovku na pondelok s Kapom?

Mňa by skôr zaujímalo, ako má vyzerať ten scenár....
WEST
NORTH
GET spoon
NORTH
USE rock
USE spoon
GET alien corpse
...
+ je fajn mať nakreslenú mapu.

Btw, je mozne povazovat dvere za predmet? Asi nie, pretoze predmet musi byt v batohu alebo v miestnosti a dvere su medzi miestnostami, ze? Ja len, ze mam slabu fantaziu a zatial len 6 predmetov.... :D
Ano aj dvere sa daju povazovat za predmet. Mozes s tym normalne ratat v scenari. Nie kazdy predmet musi by "zobratelny" do batohu.
Title: Re: OOP
Post by: mino on 23.10.2011, 06:34:56
sak daj do mistnosti anicku a mozes ze "preskumaj anocku" a "pouzi anicku" :D
:D :D

Quote
Ano aj dvere sa daju povazovat za predmet. Mozes s tym normalne ratat v scenari. Nie kazdy predmet musi by "zobratelny" do batohu.
Ta potom parada ! :D Nasekam tam zopar dveri a hned budem mat dost predmetov.... :D
Title: Re: OOP
Post by: esperian on 23.10.2011, 16:08:46
a este by som chcel, ze ak mam dajme tomu zamknute dvere, a otvorit sa daju len s klucom ktory som si zobral v prvej miestnosti... da sa to spravit vsak ??
Title: Re: OOP
Post by: ppeess on 23.10.2011, 16:26:34
a este by som chcel, ze ak mam dajme tomu zamknute dvere, a otvorit sa daju len s klucom ktory som si zobral v prvej miestnosti... da sa to spravit vsak ??
Hej :D
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 16:52:57
a este by som chcel, ze ak mam dajme tomu zamknute dvere, a otvorit sa daju len s klucom ktory som si zobral v prvej miestnosti... da sa to spravit vsak ??

viacero možnosti - len tak na rýchlo:
- máš objekt dvere, ktorý má nejaký stav - odomknuté/zamknuté... objekt pozná funkciu pre všetky stavy... použitie kľúča mení tento stav...
- máš 2 objekty pre dvete - zamknuté dvere a odomknuté dvere... každý pozná len svoju funkciu... použitie kľúča vymení tieto 2 objekty v miestnosti...

toto sa dá aplikovať aj na rôzne podobné situácie ako tie dvere - napr. zapnutá/vypnutá lampa/počítač/rádio/čokoľvek, otvorený/zatvorený zápisník/kniha, etc...
Title: Re: OOP
Post by: esperian on 23.10.2011, 17:07:30
diki moc Agik
Title: Re: OOP
Post by: Rajo on 23.10.2011, 17:20:55
od včera je na moodli možnosť odovzdať scenár textovky a je tam napísane len toto:
".txt súbor obsahujúci zoznam krokov (každý na jednom riadku) potrebných na úspešné ukončenie Vami navrhnutej textovej hry (limit je 100KB, malo by to bohate stačiť)"

ako sa má volať ten súbor? studentID.txt ? meno.priezvisko.txt ? nazov_hry.txt ?
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 17:22:45
od včera je na moodli možnosť odovzdať scenár textovky a je tam napísane len toto:
".txt súbor obsahujúci zoznam krokov (každý na jednom riadku) potrebných na úspešné ukončenie Vami navrhnutej textovej hry (limit je 100KB, malo by to bohate stačiť)"

ako sa má volať ten súbor? studentID.txt ? meno.priezvisko.txt ? nazov_hry.txt ?

napr. "scenar.txt" - to máš jedno, nie? si tam prihlásený, takže to uloží pod tvojim menom...
Title: Re: OOP
Post by: Tren on 23.10.2011, 17:28:54
od včera je na moodli možnosť odovzdať scenár textovky a je tam napísane len toto:
".txt súbor obsahujúci zoznam krokov (každý na jednom riadku) potrebných na úspešné ukončenie Vami navrhnutej textovej hry (limit je 100KB, malo by to bohate stačiť)"

ako sa má volať ten súbor? studentID.txt ? meno.priezvisko.txt ? nazov_hry.txt ?

napr. "scenar.txt" - to máš jedno, nie? si tam prihlásený, takže to uloží pod tvojim menom...

no nie je to az tak jedno asi, pred rokom sme museli v presne dohodnutom tvare posielat priez.meno_2010.zip alebo nejak tak  :)
Title: Re: OOP
Post by: ultimate on 23.10.2011, 17:40:04
ale ked teraz nie je dohodnuty ziadny presny tvar tak asi to je jedno ;)

este k tym dveram ... do scenaru ich nemusim davat, ze ? ... dam do scenara len napr. USE KEY a tym otvorim tie dvere, ze pouzijem kluc ...  a do popisu miestnosti dam narp.: "Si v miestnosti xy, v ktorej su zatvorene dvere"

moze to tak byt ? Ci musia byt tie dvere medzi predmetmi ?
Title: Re: OOP
Post by: Rajo on 23.10.2011, 17:43:13
ale ked teraz nie je dohodnuty ziadny presny tvar tak asi to je jedno ;)

este k tym dveram ... do scenaru ich nemusim davat, ze ? ... dam do scenara len napr. USE KEY a tym otvorim tie dvere, ze pouzijem kluc ...  a do popisu miestnosti dam narp.: "Si v miestnosti xy, v ktorej su zatvorene dvere"

moze to tak byt ? Ci musia byt tie dvere medzi predmetmi ?

USE KEY
USE DOOR

tým, že použiješ kľúč neznamená že tie dvere aj otvoríš :D
Title: Re: OOP
Post by: ultimate on 23.10.2011, 17:45:48
preco ? .. aj v tom vzorovom scenari, je ze pouzi nejaky kluc a nie je tam napisane na aky dalsi predmet treba ten kluc pouzit
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 17:46:48
este k tym dveram ... do scenaru ich nemusim davat, ze ? ... dam do scenara len napr. USE KEY a tym otvorim tie dvere, ze pouzijem kluc ...  a do popisu miestnosti dam narp.: "Si v miestnosti xy, v ktorej su zatvorene dvere"

moze to tak byt ? Ci musia byt tie dvere medzi predmetmi ?

jj, v scenári bude "use key" - ten scenár má byť urobený tak, aby keď použijem presne tie príkazy v hre, tak aby to hru prešlo (keď budem zadávať príkazy v hre, tak zadávam use key, čo odomkne dvere, a nie niečo s dverami)...

a nemusia byť dvere medzi predmetmi (ak sa bavíme o predmetoch v miestnosti - ktorých výpis sa ti objaví, keď dáš nejaký príkaz) - a ten popis je dobrý, tak by to presne malo vyzerať... (ono, napr. nemusí tam byť vôbec zoznam predmetov v miestnosti (ak to nie je výslovná požiadavka v zadaní), ale úplne stačí takto "slohovo" to napísať, že čo tam je (si v spálni, vidíš dvere a pod oknom je posteľ. vedľa nej je nočný stolík a na ňom je lampa a vedľa nej leží kľúč) - imo je to takto lepšie ako len zoznam, vytvára to taký príbehový podtext)
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 17:47:15
ale ked teraz nie je dohodnuty ziadny presny tvar tak asi to je jedno ;)

este k tym dveram ... do scenaru ich nemusim davat, ze ? ... dam do scenara len napr. USE KEY a tym otvorim tie dvere, ze pouzijem kluc ...  a do popisu miestnosti dam narp.: "Si v miestnosti xy, v ktorej su zatvorene dvere"

moze to tak byt ? Ci musia byt tie dvere medzi predmetmi ?

USE KEY
USE DOOR

tým, že použiješ kľúč neznamená že tie dvere aj otvoríš :D

vec implementácie a toho ako sa ty rozhodneš :)
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 17:48:14
preco ? .. aj v tom vzorovom scenari, je ze pouzi nejaky kluc a nie je tam napisane na aky dalsi predmet treba ten kluc pouzit

on to myslel tak, že "USE KEY" odomkne dvere ale neotvorí ich, takže cez ne stále nemôžeš prejsť... až potom "USE DOOR" otvorí dvere, aby si prešiel do ďalšej miestnosti...
Title: Re: OOP
Post by: Tren on 23.10.2011, 17:50:31
namiesto USE DOOR nemoze hned pouzit NORTH alebo nieco ine?

napr.
WEST
GET KEY
NORTH
USE KEY
SOUTH
Title: Re: OOP
Post by: ultimate on 23.10.2011, 17:50:56
jaj, chapem :D ... takze to je na mne ci si to spravim potom tak, ze prikaz USE key len odklucuje dvere alebo ci ich odklucuje a zaroven otvori ...
Title: Re: OOP
Post by: matotv on 23.10.2011, 17:55:32
zdar, takze moze to niekto nejak dat dokopy co vlastne treba odovzdat? bo uz mi z toho j...
na moodli je vzor scenara, ale tak tam su len prikazy , staci len to odovzdat? niekto tu kreslil mapu, odovzdavam pri kapovi, takze aj u nas treba tu mapu? take nieco ako esperian kreslil...co este vsetko treba? taky scenar ako je vzor uz mam, mapu tak isto, este nieco treba? :D vdaka
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 18:05:13
namiesto USE DOOR nemoze hned pouzit NORTH alebo nieco ine?

napr.
WEST
GET KEY
NORTH
USE KEY
SOUTH

jasne, môže...

jaj, chapem :D ... takze to je na mne ci si to spravim potom tak, ze prikaz USE key len odklucuje dvere alebo ci ich odklucuje a zaroven otvori ...

áno, v podstate celá implementácia je na tebe - čokoľvek si vymyslíš, to tam budeš mať - pokiaľ to dodrží podmienky zadania - aby ti zadanie prijali
Title: Re: OOP
Post by: ppeess on 23.10.2011, 18:12:44
zdar, takze moze to niekto nejak dat dokopy co vlastne treba odovzdat? bo uz mi z toho j...
na moodli je vzor scenara, ale tak tam su len prikazy , staci len to odovzdat? niekto tu kreslil mapu, odovzdavam pri kapovi, takze aj u nas treba tu mapu? take nieco ako esperian kreslil...co este vsetko treba? taky scenar ako je vzor uz mam, mapu tak isto, este nieco treba? :D vdaka
V siestom tyzdni sa odovzdava len scenar mapa ide do dokumentacie .......
Title: Re: OOP
Post by: Rajo on 23.10.2011, 19:10:05
môže byť v hre miestnosť, do ktorej sa nebudem môcť dostať? Napríklad ak mám nejakú miestnosť ktorá ma bezpečnostne dvere a za tou miestnosťou je dalšia miestnosť do ktorej sa nikdy nedostanem lebo sa nedostanem do miestnotsti pred ňou ? :D Bude sa to rátať ako miestnosť ? Alebo to musí byť miestnosť do ktorej sa budem môcť nejako dostať ?
Title: Re: OOP
Post by: orsi on 23.10.2011, 19:24:36
ako má vyzerať tá mapa, musí to byť nejaký štvorec ked sa na to zvrchu pozrem alebo to môže mať ľubovolný pôdorys? (samozrejme jednotlive miestnosti su male stvorceky)
Title: Re: OOP
Post by: AnvilOfFury on 23.10.2011, 19:29:41
môže byť v hre miestnosť, do ktorej sa nebudem môcť dostať? Napríklad ak mám nejakú miestnosť ktorá ma bezpečnostne dvere a za tou miestnosťou je dalšia miestnosť do ktorej sa nikdy nedostanem lebo sa nedostanem do miestnotsti pred ňou ? :D Bude sa to rátať ako miestnosť ? Alebo to musí byť miestnosť do ktorej sa budem môcť nejako dostať ?
Odhadujem že takéto detaily sa nikomu nebude chcieť pozerať, ale logicky dané riešenie nemá zmysel.

ako má vyzerať tá mapa, musí to byť nejaký štvorec ked sa na to zvrchu pozrem alebo to môže mať ľubovolný pôdorys? (samozrejme jednotlive miestnosti su male stvorceky)
Môže to byť lubovoľný pôdorys, dokonca môžeš spraviť prepojenia medzi miestnosťami nie len v mriežke ale akokoľvek budeš chcieť. (Napr miestnosti máš v jednom "riadku" a z miestnosti na ľavom konci prejdeš až do miestnosti na pravom a keď budeš v koncovej miestnosi na pravo môžeš sa príkazom EAST dostať do najľavejšej miestnosti (ako dáky kruh)). Všetko záleží od toho ako sa rozhodneš ty.
Title: Re: OOP
Post by: Rajo on 23.10.2011, 20:42:36
na prejdenie hry musím použiť všetkých minimálne 10 predmetov alebo môžem použiť len napríkad jeden ?
Title: Re: OOP
Post by: SteLa on 23.10.2011, 21:04:26
je stanovene neake minimum prikazov? Teda ne sa zda ze ich mam az vela, ale mam pocit ze spominal nieco o minimalnom mnozstve prikazov na prejdenie hry. Ja som dozadu nepocula nicO.o
Title: Re: OOP
Post by: Rajo on 23.10.2011, 21:09:27
je stanovene neake minimum prikazov? Teda ne sa zda ze ich mam az vela, ale mam pocit ze spominal nieco o minimalnom mnozstve prikazov na prejdenie hry. Ja som dozadu nepocula nicO.o

http://it4kt.fei.tuke.sk/c/oop/scenarios/00/assignment.html (http://it4kt.fei.tuke.sk/c/oop/scenarios/00/assignment.html)
Title: Re: OOP
Post by: Agamemnon on 23.10.2011, 21:14:51
miestnosť kam sa nedostaneš: dať ju tam môžeš kľudne... len v podstate - tým, že hráč mapu nevidí, tak sa o nej môže tak max. dozvedieť v nejakom popise inej miestnosti a aj to len v štýle... "vidíš zamknuté dvere, ktoré nedokážeš odomknúť. vyzerá to, že je za nimi ďalšia miestnosť"... takúto miestnosť by som preto nepočítal do toho počtu miestnosti... ak už fakt nevieš vymyslieť ďalšie miestnosti... tak urob dlhú chodbu - napr. v štýle neverhooda, ak si to hral :D

mapa... miestnosti nemusia byť ani štvorčeky - ak si pridáš napr. príkaz ja nvm, juhozápad :D alebo kľudne môžeš mať viac poschodí a príkazy hore/dolu... tvoja vec... implementačné je to jednoduché...

predmety samozrejme nemusíš použiť všetky... kľudne môžeš mať nejaké na spestrenie, prípadne doplnenie deja/príbehu a pod... alebo len také, čo nič nerobia, ani nemajú zmysel :D

minimum príkazov niekedy bolo, predpokladám, že aj teraz... ale koľko, to nvm...
Title: Re: OOP
Post by: SteLa on 23.10.2011, 21:39:44
je stanovene neake minimum prikazov? Teda ne sa zda ze ich mam az vela, ale mam pocit ze spominal nieco o minimalnom mnozstve prikazov na prejdenie hry. Ja som dozadu nepocula nicO.o

http://it4kt.fei.tuke.sk/c/oop/scenarios/00/assignment.html (http://it4kt.fei.tuke.sk/c/oop/scenarios/00/assignment.html)

ahaaam...slepota moja^^
Title: Re: OOP
Post by: Rajo on 23.10.2011, 22:09:45
na úspešne prejdenie hry MUSÍM prejsť cez všetkých 30 miestnosti ? ak prejdem hru pri prejdení napríklad 16 miestnosti tak to je zle ?
Title: Re: OOP
Post by: genie on 23.10.2011, 22:46:27
nemusis.. mozes mat kludne akokeby slepu ulicku ;) a na jej konci zbytocny predmet :D alebo prazdnu
Title: Re: OOP
Post by: Maxxtro on 23.10.2011, 22:48:21
Koľko predmetov sa má zmestiť do toho batohu? Koľko si sám určím?
Title: Re: OOP
Post by: Rajo on 23.10.2011, 22:51:15
nemusis.. mozes mat kludne akokeby slepu ulicku ;) a na jej konci zbytocny predmet :D alebo prazdnu

no slepu uličku tam nemám ale mám tam miestnosti do ktorých vojdeš, nájdeš tam predmet, no ten ti bude naprd, alebo ak ho použiješ/zodvihneš tak bude GAME OVER :D alebo miestnosti, do ktorých nemáš povolenie vstúpiť :P Takže môžem to tak riešiť? že dokopy budem mať 30 miestnosti ale na úspešne prejdenie mi bude stačiť prejsť a pozbierať/zodvihnúť/použiť predmety len v napr. 15 miestnostiach ?
Title: Re: OOP
Post by: genie on 23.10.2011, 22:55:47
jop ;)
Title: Re: OOP
Post by: xxx3 on 23.10.2011, 23:09:50
koniec moze byt hocijaky, ze ? ... nemusi tam byt ziadna princezna ? .. cize to moze byt o hocicom, vsak ? ... na konci mozem dat napr. pouzi <nejaka vec> a koniec, hej ?
Title: Re: OOP
Post by: Rajo on 23.10.2011, 23:25:58
koniec moze byt hocijaky, ze ? ... nemusi tam byt ziadna princezna ? .. cize to moze byt o hocicom, vsak ? ... na konci mozem dat napr. pouzi <nejaka vec> a koniec, hej ?

ja tak mám, POUŽI MOBIL :D
Title: Re: OOP
Post by: Agamemnon on 24.10.2011, 01:20:05
jj, môže to končiť akokoľvek... a môže to byť v podstate o čomkoľvek... :)
Title: Re: OOP
Post by: xxx3 on 24.10.2011, 03:08:08
do moodle mam dat len .txt v ktorom je IBA scenar alebo tam mam mat v tom aj tu mapu a zoznam predmetov ?
Title: Re: OOP
Post by: Rajo on 24.10.2011, 03:36:59
Ak v scenari nemam pouzitý príkaz "POLOZ" tak to nevadí, však ? ale samozrejme, že ten príkaz bude k dispozícií...
Title: Re: OOP
Post by: ppeess on 24.10.2011, 03:59:33
Tak za to su body dole ...... :D
Title: Re: OOP
Post by: Rajo on 24.10.2011, 04:06:55
Tak za to su body dole ...... :D

Ale nesranduj, už to mám v .txt a prerábať sa mi to velmi nechce :D
Title: Re: OOP
Post by: matotv on 24.10.2011, 05:19:54
ma niekto vyriesene to posledne cviko z oop? da sa stiahnut tak ze namiesto shapes, napisete project_06.zip ale nieje to dokoncene ...ak to niekto mate tak sem hodte :D  :bannana_guitar:
Title: Re: OOP
Post by: Domino_666 on 24.10.2011, 06:13:36
Tak mne to vyšlo na 71 krokov v minime, mám tam spestrenia ako NPC, v jednej časti aj časovanie krokov.
Predmety: zobrať a použiť "z inventára" mám 7, ďalších asi 5 mám statických - nedá sa s nimi hýbať, len sa použijú na mieste (a dačo sa stane - umožní postup ďalej). Takto to stačí, či tých 10 sa musí dať zobrať?
Do 1 miestnosti (mám ich 30) sa nedá dostať, resp. by to znamenalo koniec hry, hráč ju bude musieť "vyčistiť od záporňákov" iným spôsobom :D
Stačí to, alebo treba ešte niečo? Základné príkazy GET, PUT, EXAMINE, USE všetky mám aspoň raz nutné použiť.
Title: Re: OOP
Post by: Agamemnon on 24.10.2011, 13:19:35
je to okej, nemusis vsetky predmety zobrat... dokonca sa nemusia vsetky predmety ani dat zobrat - niektore napr len preskumat a tak napr zistis nieco o pribehu, alebo najdes dalsi predmet a pod...

haloo... nikdy ste nehrali adventury? ;D tolko skvelych je... ;D
Title: Re: OOP
Post by: esperian on 24.10.2011, 16:04:27
je to okej, nemusis vsetky predmety zobrat... dokonca sa nemusia vsetky predmety ani dat zobrat - niektore napr len preskumat a tak napr zistis nieco o pribehu, alebo najdes dalsi predmet a pod...

haloo... nikdy ste nehrali adventury? ;D tolko skvelych je... ;D

ja som o nejakej textovej adventure pocil az teraz,.. my sme este mlady, sme vyrastali uz na Soldier of Fortune, aspon ja ..tie textovky este asi na 386  bezali xDDD  ;D ;D ;D
Title: Re: OOP
Post by: Domino_666 on 24.10.2011, 16:07:14
ja som o nejakej textovej adventure pocil az teraz,.. my sme este mlady, sme vyrastali uz na Soldier of Fortune, aspon ja tie textovky este asi na abakuse bezali  xDDD  ;D ;D ;D

tak jediná adventúra ktorú som ozaj že hral bol vyššie spomínaný Neverhood :D
Inak ja som vyrástol na Baldur's Gate 2 a podobných starých skvelých RPG
Title: Re: OOP
Post by: Agamemnon on 24.10.2011, 16:21:32
ja som o nejakej textovej adventure pocil az teraz,..

textovky su len predchodcovia sucasnych adventur a v deji sa nelisia v podstate... ide o pribeh...
sucasne adv si nehral? napr. syberia? broken sword? alebo v nasom prostredi zname ceske ako napr polda? horke leto? posel smrti?
Title: Re: OOP
Post by: AnvilOfFury on 24.10.2011, 16:58:27
je to okej, nemusis vsetky predmety zobrat... dokonca sa nemusia vsetky predmety ani dat zobrat - niektore napr len preskumat a tak napr zistis nieco o pribehu, alebo najdes dalsi predmet a pod...

haloo... nikdy ste nehrali adventury? ;D tolko skvelych je... ;D

ja som o nejakej textovej adventure pocil az teraz,.. my sme este mlady, sme vyrastali uz na Soldier of Fortune, aspon ja ..tie textovky este asi na 386  bezali xDDD  ;D ;D ;D
Prečo len textovky? A napríklad legenda? Polda 1,2,3,4,5 ?
Title: Re: OOP
Post by: mirek on 24.10.2011, 17:12:01
hmm... to je ako otazka, ze ci mozem ku zadaniu pribalit aj zdrojaky androidu. je to tiez v jave ale nikdy to nepouzijem. tak mozem?
Title: Re: OOP
Post by: mirek on 24.10.2011, 17:13:54
je stanovene neake minimum prikazov? Teda ne sa zda ze ich mam az vela, ale mam pocit ze spominal nieco o minimalnom mnozstve prikazov na prejdenie hry. Ja som dozadu nepocula nicO.o
stanovili akurat "zakladnu sadu". takze bude potrebne implementovat len tu. cokolvek navyse je zrejme bonus.
Title: Re: OOP
Post by: mirek on 24.10.2011, 17:19:07
je to okej, nemusis vsetky predmety zobrat... dokonca sa nemusia vsetky predmety ani dat zobrat - niektore napr len preskumat a tak napr zistis nieco o pribehu, alebo najdes dalsi predmet a pod...

haloo... nikdy ste nehrali adventury? ;D tolko skvelych je... ;D

ja som o nejakej textovej adventure pocil az teraz,.. my sme este mlady, sme vyrastali uz na Soldier of Fortune, aspon ja ..tie textovky este asi na 386  bezali xDDD  ;D ;D ;D
Prečo len textovky? A napríklad legenda? Polda 1,2,3,4,5 ?
a legendy? indiana jones 1, 2, 3 od fuxoftu? alebo indiana jones and the fate of atlantis? monkey island?
Title: Re: OOP
Post by: Don_Corleone on 24.10.2011, 17:30:05
v tej dobe som po anglicky este nevedel takmer ani prd :D
Title: Re: OOP
Post by: zaky on 24.10.2011, 22:39:41
hej lidi, question ze.. bolo nam s Tomaskom ukazane ako si v Netbeanse vyrobit novy Java projekt, lenze ja pridem domov, skusam a nemam tam na vyber novy Java projekt, co s tym ? kompilator javac v notase mam, uz som skusal aj nieco skompillovat cez prikazovy a slo to
Title: Re: OOP
Post by: Cici on 24.10.2011, 22:46:39
hej lidi, question ze.. bolo nam s Tomaskom ukazane ako si v Netbeanse vyrobit novy Java projekt, lenze ja pridem domov, skusam a nemam tam na vyber novy Java projekt, co s tym ? kompilator javac v notase mam, uz som skusal aj nieco skompillovat cez prikazovy a slo to

nemas stiahnuty netbeans iba pre C/C++?
Title: Re: OOP
Post by: Tren on 24.10.2011, 22:49:04
netbens - Tools - Plugins - a tu si pridaj Java SE
Title: Re: OOP
Post by: jk162ws on 25.10.2011, 01:13:39
ako má vyzerať mapa sveta....miestnosti majú byť všetky na jednej obrazovke alebo každá na inej?
Title: Re: OOP
Post by: Agamemnon on 25.10.2011, 01:20:44
ako má vyzerať mapa sveta....miestnosti majú byť všetky na jednej obrazovke alebo každá na inej?

?
Title: Re: OOP
Post by: zaky on 25.10.2011, 03:06:53
joooj
ked vojdem v prikazovom riadku do C:\Program Files\NetBeans 6.9.1\bin a zadam
netbeans --jdkhome /usr/local/share/java/jdk1.6.0_07/
tak vsetko ide v poriadku, len nerozumieme preco ak zapnem netbeans normalnym spsobom tak mi java project neukaze a ani sa neda vytvorit novy :/
Title: Re: OOP
Post by: RiTChi on 25.10.2011, 03:38:09
joooj
ked vojdem v prikazovom riadku do C:\Program Files\NetBeans 6.9.1\bin a zadam
netbeans --jdkhome /usr/local/share/java/jdk1.6.0_07/
tak vsetko ide v poriadku, len nerozumieme preco ak zapnem netbeans normalnym spsobom tak mi java project neukaze a ani sa neda vytvorit novy :/

ta si sprav .bat subor a spustaj cez neho
Title: Re: OOP
Post by: jk162ws on 25.10.2011, 04:25:33
len sa pýtam ako má vyzerať ten scenár s priloženou mapou sveta, ktorú treba odovzdať tento týždeň ...teda hlavne tá mapa....ďakujem
Title: Re: OOP
Post by: drakeman on 25.10.2011, 04:26:58
čo??? tam má byť aj mapa???
o tom som nevedel... hmmm
Title: Re: OOP
Post by: Rajo on 25.10.2011, 04:31:11
žiadna mapa nemá byť odovzdaná na moodle....možno nejaká špeci požiadavka od cvičiaceho...
Title: Re: OOP
Post by: M4D4 on 25.10.2011, 14:40:40
myslím, že IBA Tomášek požaduje kompletný scenár s mapou a krátkym opisom hry v pdf . . . neviem o tom, že zvyšní cvičiaci by to požadovali, ale Tomášek to požaduje . . .
Title: Re: OOP
Post by: veteran on 25.10.2011, 14:53:33
myslím, že IBA Tomášek požaduje kompletný scenár s mapou a krátkym opisom hry v pdf . . . neviem o tom, že zvyšní cvičiaci by to požadovali, ale Tomášek to požaduje . . .
Áno, Tomášek to požaduje. Na otázku, či tá mapa má byť urobená na PC alebo či stačí aj voľnou rukou povedal, že samozrejme, má byť urobená na PC, veď žijeme v 21. storočí  :D Takže zrejme mu nestačí len scenár na Moodli...
Title: Re: OOP
Post by: jk162ws on 25.10.2011, 17:26:33
presne, Tomášek vyžaduje aj mapu......ale ako mám vyzerať? na jednu A4 trepnem všetky miestnosti? ...poraďte prosím
Title: Re: OOP
Post by: M4D4 on 25.10.2011, 19:07:29
nepovedal ako to má presne vyzerať, tak mu nakresli v skicári mapu, daj tam čísla predmetov, potom pod mapu priraď tým číslam predmety a nakoniec scenár a máš . . . nechápem prečo sa tým zapodievaš, nemáme danú presnú formu od Tomášeka, že ako to má vyzerať (a myslím, že mu aj bude jedno, ako to bude vyzerať, hlavne, že to bude mať tú mapu ;-) )
Title: Re: OOP
Post by: jk162ws on 25.10.2011, 19:14:40
vďaka....myslel som, že presnú podobu mapy som len prepočul
Title: Re: OOP
Post by: zaky on 27.10.2011, 01:01:56
poradte pls ako si nastavim v netbeanse aby mi vystup programu ukazovalo v tom samostatnom ciernom okne ? dik

// to tren: take nieco :) uz som to tam nasiel, diks :P
Title: Re: OOP
Post by: Tren on 27.10.2011, 01:24:39
poradte pls ako si nastavim v netbeanse aby mi vystup programu ukazovalo v tom samostatnom ciernom okne ? dik
kliknes na projekt pravym Properties/Run/console type - external terminal
external terminal type - command window? toto myslis?
Title: Re: OOP
Post by: SteLa on 27.10.2011, 05:57:25
myslím, že IBA Tomášek požaduje kompletný scenár s mapou a krátkym opisom hry v pdf . . . neviem o tom, že zvyšní cvičiaci by to požadovali, ale Tomášek to požaduje . . .

mam mu to dat na usb, poslat ci ako ked v pdf? Davate to niekto vytlacit?
Title: Re: OOP
Post by: veteran on 27.10.2011, 12:57:45
myslím, že IBA Tomášek požaduje kompletný scenár s mapou a krátkym opisom hry v pdf . . . neviem o tom, že zvyšní cvičiaci by to požadovali, ale Tomášek to požaduje . . .

mam mu to dat na usb, poslat ci ako ked v pdf? Davate to niekto vytlacit?
Ja dávam na Moodle ten txt-súbor a Tomášekovi mapu vytlačenú na papieri.
Title: Re: OOP
Post by: SteLa on 27.10.2011, 13:34:10
myslím, že IBA Tomášek požaduje kompletný scenár s mapou a krátkym opisom hry v pdf . . . neviem o tom, že zvyšní cvičiaci by to požadovali, ale Tomášek to požaduje . . .

mam mu to dat na usb, poslat ci ako ked v pdf? Davate to niekto vytlacit?
Ja dávam na Moodle ten txt-súbor a Tomášekovi mapu vytlačenú na papieri.

thnx:)
Title: Re: OOP
Post by: M4D4 on 27.10.2011, 23:00:49
nám Tomášek (pondelok 12:30) povedal, že chce .pdf aj s mapou a scenárom (kvôli tomu na mieste zväčšoval kvótu zo 100kb na 5mb) a chce to aj vytlačené ;-)
Title: Re: OOP
Post by: xxx3 on 28.10.2011, 22:11:17
nemate nahodou niekto skopirovane tie pokyny k zadaniu ze co vsetko tam ma byt ? ... nejde totiz ta stranka
Title: Re: OOP
Post by: miro.bohem on 29.10.2011, 21:02:02
pripajam sa, hoďte tu niekto tie zakladne prikazy ak mate
Title: Re: OOP
Post by: Stardox on 30.10.2011, 04:50:49
Pači sa, sorry za tento blok textu:

Základná funkcionalita hry
    hra musí byť dohrateľná za konečný počet krokov
    hráč má k dispozícii sadu príkazov, pomocou ktorej komunikuje s hrou
    hráč môže prechádzať medzi miestnosťami herného sveta minimálne v smeroch sever, juh, východ a západ
    v každej miestnosti sa môže nachádzať 0 a viac predmetov
    predmety je možné medzi miestnosťami prenášať
    hráč má batoh, do ktorého môže predmety v miestnostiach vkladať, a z ktorého môže predmety v miestnosti položiť na zem
    množstvo predmetov, ktoré môže hráč do batohu vložiť, je obmedzené
    v hre existujú predmety, ktoré do batohu nie je možné vložiť

Základné požiadavky na implementáciu zadania pre jeho úspešné odovzdanie
    s hrou je potrebné dodať aj úspešný scenár hry (už v 6. týždni), pričom dĺžka minimálneho scenára je aspoň 50 krokov
    počet predmetov v celej hre je minimálne 10
    počet miestností v hre je minimálne 30
    hra musí obsahovať minimálne základnú sadu príkazov
    hra musí byť implementovaná pomocou knižnice stiahnuteľnej zo stránky
    implementovať aspoň jedno ďalšie rozšírenie hry - buď z uvedených alebo vymyslieť svoje vlastné
    v hre navrhnúť a použiť aspoň jedno vlastné rozhranie (Rozhranie však nemôže byť prázdne! Musí obsahovať aspoň dve metódy!)
    v hre nepoužívať názvy príkazov alebo predmetov v tvare KLUC1, KRASNA_PRINCEZNA, KRASNAPRINCEZNA, ale v zrozumiteľnom tvare s použitím medzery a bez použitia čísiel (vhodnou náhradou miesto tvaru KLUC1 je napr. ZLATY KLUC, STRIEBORNY KLUC a pod.)

Základná sada príkazov
Vaša hra musí implementovať minimálne túto sadu príkazov a to buď anglickú alebo slovenskú. Okrem nich však môžete implementovať aj vlastné príkazy, ktoré môžu vhodným spôsobom hru rozšíriť. Pri zadávaní príkazov nerozhoduje veľkosť písmen. Tá však môže, ale nemusí byť dôležitá pri ich parametroch.
sk    en    opis
INVENTAR    INVENTORY    Príkaz zobrazí na obrazovku obsah inventára (batohu) formou názvov predmetov.
KONIEC    QUIT    Príkaz ukončí rozohratú hru.
SEVER    NORTH    Presun do miestnosti nachádzajúcej sa na sever od aktuálnej.
JUH    SOUTH    Presun do miestnosti nachádzajúcej sa na juh od aktuálnej.
VYCHOD    EAST    Presun do miestnosti nachádzajúcej sa na východ od aktuálnej.
ZAPAD    WEST    Presun do miestnosti nachádzajúcej sa na východ od aktuálnej.
VEZMI    GET    Príkaz vloží do batohu vec, ktorá sa nachádza v miestnosti. Príkaz má jeden povinný parameter, ktorým je názov predmetu. Podľa neho bude rozpoznané, ktorý predmet sa má do batohu vložiť. Ak predmet nebude zadaný, program vypíše na obrazovku vhodnú hlášku (napr. Neviem, akú vec chceš vziať). Príkaz môžete rozšíriť o možnosť pozbierania všetkých predmetov nachádzajúcich sa v miestnosti v tvare: VEZMI VSETKO (GET ALL).
POLOZ    PUT    Položí predmet z batohu v danej miestnosti. Príkaz má jeden povinný parameter, ktorým je názov predmetu. Podľa neho bude rozpoznané, ktorý predmet sa má v miestnosti položiť. Ak predmet nebude zadaný, program vypíše na obrazovku vhodnú hlášku (napr. Neviem, čo chceš položiť)
POUZI    USE    Použije vec, ktorá sa nachádza v batohu alebo v miestnosti. Príkaz má jeden povinný parameter, ktorým je názov predmetu. Podľa neho bude rozpoznané, ktorý predmet v miestnosti alebo v batohu sa má použiť. Ak predmet nebude zadaný, program vypíše na obrazovku vhodnú hlášku (napr. Neviem, čo chceš použiť). Príkaz je možné implementovať aj tak, aby používateľ priamo špecifikoval kombináciu predmetov, ktoré sa majú použiť, napr. POUZI pazba hlaven, resp. POUZI pazba A hlaven
PRESKUMAJ    EXAMINE    Preskúma predmet (vypíše na obrazovku opis predmetu), ktorá sa nachádza v miestnosti alebo v hráčovom batohu. Príkaz má jeden povinný parameter, ktorým je názov predmetu. Podľa neho bude rozpoznané, ktorý predmet v miestnosti alebo v batohu sa má preskúmať. Ak predmet nebude zadaný, program vypíše na obrazovku vhodnú hlášku (napr. Neviem, čo chceš preskúmať).
ROZHLIADNI SA    LOOK AROUND    Príkaz vypíše aktuálne informácie o miestnosti, v ktorej sa hráč práve nachádza.
PRIKAZY    COMMANDS    Príkaz vypíše na obrazovku zoznam všetkých príkazov, ktoré hra poskytuje.
NAHRAJ    LOAD    Príkaz zabezpečí nahratie uloženej pozície hry z disku. Voliteľným parametrom je cesta k súboru.
ULOZ    SAVE    Príkaz uloží stav rozohratej hry na disk. Voliteľným parametrom je cesta k súboru.
VERZIA    VERSION    Príkaz zobrazí číslo verzie hry, ľubovoľný sprievodný text a meno a priezvisko autora s kontaktom (e-mailová adresa, webová stránka).
RESTART    RESTART    Znovu spustí hru od začiatku.
O HRE    ABOUT GAME    Príkaz zobrazí krátky text, ktorý poslúži ako úvod do príbehu. Ako dobrý začiatok sa javí známy text: Kde bolo tam bolo, ...
Námety na ďalšie rozšírenia
Pre ďalšie rozšírenie hry môžete implementovať niektorý z nasledujúcich nápadov. Samozrejme - fantázii sa medze nekladú a teda môžete implementovať akékoľvek ďalšie rozšírenie pôvodného návrhu hry. Nezabudnite však, že rozšírenie hry je nutnou podmienkou pre odovzdanie zadania!

    Implementovať v hre plynúci čas - svet bude v noci vyzerať inak ako cez deň. Vhodnou implementáciou tohto rozšírenia môže byť vstup do miestnosti/mesta/hradu/budovy len v denných (otváracích) hodinách.
    Živé postavy v hre - postavy, ktoré nebudú vecami a budú sa vedieť s hráčom rozprávať, resp. budú vedieť reagovať na jeho stav (napr. špinavého Indiana Jonesa nevezme taxikár do taxíku).
    Časované úlohy - v istých fázach hry je dôležitý čas, napr.: dynamit vybuchne o tri príkazy neskôr, ako bol zadaný príkaz na jeho zapálenie; alebo Indiana Jones má len 5 ťahov, aby vyskočil s padákom z lietadla, ktoré nemá žiadneho pilota na palube.
    Implementácia príkazu POMOC - príkaz funguje ako vhodný pomocník pri riešení hry - vždy vám vie pomôcť, ako v hre pokračovať ďalej. A keď je náhodou skúpy na slovo, povie aspoň nejakú vhodnú vtipnú poznámku...
    Implementácia vlastného príkazového riadku, ktorý bude obsahovať históriu (kurzorovými šípkami sa pohybuje dozadu a dopredu) a automatické dopĺňanie príkazov pomocou klávesy TAB (správanie podobné ako BASH). Toto rozšírenie v konzolovom prevedení však nie je možné vytvoriť v jazyku Java.
    Grafická reprezentácia aktuálnej scény - okrem textového opisu môžete zobrazovať aj grafickú reprezentáciu scény - či už kvázi 3D alebo fragment mapy. Realizácia tohto rozšírenia si však vyžaduje znalosť ďalších technológií, ktoré nie sú obsahom tohto kurzu.
    Implementujte príkaz MAPA, ktorý vám zobrazí mapu herného plánu. Zobrazené budú vždy však len tie miestnosti, ktoré ste už navštívili. Možným rozšírením tohto rozšírenia môže byť aj legenda ku mape, kedy sa v mape budú nachádzať aj predmety, ktoré sa v daných miestnostiach nachádzajú.
    Implementujte v hre vec, ktorá v sebe môže mať umiestnené ďalšie veci (napr. truhlica, bedňa, taška). Tieto veci sa stanú súčasťou hry (budú viditeľné v miestnosti) až vtedy, keď túto vec otvoríte (kľúčom k bedničke, truhlici alebo kombináciou k trezoru) alebo keď ich preskúmate (po bližšom preskúmaní tašky bude v miestnosti k dispozícii aj jej obsah). Pozor - toto rozšírenie však nie je možné riešiť spôsobom, že po otvorení predmetu obsahujúceho ďalšie predmety budú tieto vytvorené a umiestnené do miestnosti (podobne, ako je to uvedené v cvičení č. 11). Predmety musia byť v kontajneri umiestnené už počas jeho vytvorenia.
    Implementujte v hre teleport, ktorý vás po použití presunie do náhodnej miestnosti v hre.
    Po vstupe do miestnosti môžu niektoré predmety ostať skryté a môžu byť odhalené po preskúmaní konkrétneho predmetu pomocou príkazu PRESKUMAJ.

Aby ste predišli problémom s nevhodným rozšírením pri odovzdávaní zadania, konzultujte svoje rozšírenie počas cvičení so svojim cvičiacim.
Title: Re: OOP
Post by: charlie on 01.11.2011, 14:36:52
hodi sem dakto zdrojaky od kappa z pondelka  9:10? :ropebanana: bo som nestihol vsetko pozapisovat  >:(
Title: Re: OOP
Post by: paloSK on 01.11.2011, 15:04:16
hodi sem dakto zdrojaky od kappa z pondelka  9:10? :ropebanana: bo som nestihol vsetko pozapisovat  >:(
jj, zlutujte sa aj nad tymi, co si nemohli dovolit prist.
Title: Re: OOP
Post by: Rajo on 01.11.2011, 15:38:26
hodi sem dakto zdrojaky od kappa z pondelka  9:10? :ropebanana: bo som nestihol vsetko pozapisovat  >:(
jj, zlutujte sa aj nad tymi, co si nemohli dovolit prist.

nemám to celé kedže Kappa nevedel pár veci a musí sa na to ísť spýtať Biňasa  :emot-LMAO: ale ked niečo tak napíšte PM :)
Title: Re: OOP
Post by: esperian on 04.11.2011, 17:50:04
mohol by mi nikto z pondelka poslat to "prve cviko" ahladom hry co sme kodili .. lebo som trocha nestihal ... ak ano tak PM hoci to nemate komplet..
Title: Re: OOP
Post by: Stardox on 05.11.2011, 21:29:57
Scenar 07, Uloha 3:
Code: [Select]
V tomto kroku budete implementovať parser alebo rozpoznávač príkazov. Úlohou parsera je rozlíšiť, či zadaný príkaz patrí alebo nepatrí do množiny príkazov použiteľných v hre. Na rozpoznávanie príkazov je možné s výhodou využiť regulárne výrazy. Pri našej implementácii si však vystačíme len s metódami triedy String.
Úloha:  Vytvorte triedu ParserImpl, ktorá bude reprezentovať rozpoznávač zadaných príkazov.
Trieda ParserImpl bude implementovať rozhranie Parser. Zoznam známych príkazov je potrebné uchovávať po celý čas, aby parser vedel, ktoré príkazy hra pozná. Vytvorte si preto v triede členskú premennú, ktorá bude obsahovať generickú kolekciu ArrayList<Command>() so všetkými príkazmi použiteľnými v hre.
Úloha:  V triede vytvorte metódu getCommand(), ktorá:
    bude mať jeden parameter typu String reprezentujúci reťazec zadaný používateľom z príkazového riadku a
    bude mať návratový typ Command

Metóda getCommand() overí, či parameter metódy reprezentuje príkaz hry. Na overenie je potrebné použiť zoznam príkazov hry - konkrétne ich názov a vhodné metódy triedy String. V prípade, že sa jedná o príkaz hry, je potrebné nastaviť parameter príkazu a metóda getCommand() vráti referenciu na tento príkaz. V prípade, že sa nejedná o príkaz hry, metóda vracia hodnotu null.
Neviete, ako mam do toho ArrayListu vkladat polozky typu Command? V konstruktore triedy ParserImpl mam toto:
ArrayList<Command> prikazy = new ArrayList<Command>();
prikazy.add( co ma ist sem? );

Lebo vlastne tie jednotlive prikazy su vlastne triedy (Version.class, Quit.class).
Title: Re: OOP
Post by: ppeess on 05.11.2011, 22:20:44
Scenar 07, Uloha 3:
Code: [Select]
V tomto kroku budete implementovať parser alebo rozpoznávač príkazov. Úlohou parsera je rozlíšiť, či zadaný príkaz patrí alebo nepatrí do množiny príkazov použiteľných v hre. Na rozpoznávanie príkazov je možné s výhodou využiť regulárne výrazy. Pri našej implementácii si však vystačíme len s metódami triedy String.
Úloha:  Vytvorte triedu ParserImpl, ktorá bude reprezentovať rozpoznávač zadaných príkazov.
Trieda ParserImpl bude implementovať rozhranie Parser. Zoznam známych príkazov je potrebné uchovávať po celý čas, aby parser vedel, ktoré príkazy hra pozná. Vytvorte si preto v triede členskú premennú, ktorá bude obsahovať generickú kolekciu ArrayList<Command>() so všetkými príkazmi použiteľnými v hre.
Úloha:  V triede vytvorte metódu getCommand(), ktorá:
    bude mať jeden parameter typu String reprezentujúci reťazec zadaný používateľom z príkazového riadku a
    bude mať návratový typ Command

Metóda getCommand() overí, či parameter metódy reprezentuje príkaz hry. Na overenie je potrebné použiť zoznam príkazov hry - konkrétne ich názov a vhodné metódy triedy String. V prípade, že sa jedná o príkaz hry, je potrebné nastaviť parameter príkazu a metóda getCommand() vráti referenciu na tento príkaz. V prípade, že sa nejedná o príkaz hry, metóda vracia hodnotu null.
Neviete, ako mam do toho ArrayListu vkladat polozky typu Command? V konstruktore triedy ParserImpl mam toto:
ArrayList<Command> prikazy = new ArrayList<Command>();
prikazy.add( co ma ist sem? );

Lebo vlastne tie jednotlive prikazy su vlastne triedy (Version.class, Quit.class).

cize prikazy.add( new Version() );
Title: Re: OOP
Post by: Stardox on 05.11.2011, 23:58:38
Quote
cize prikazy.add( new Version() );
Diky za toto, pomohlo mi to, ale teraz som si uvedomil ze ta nemozem robit instanciu z triedy Version, lebo ta trieda je abstraktna. (Musi byt abstraktna, lebo inac ked tam dopisem "implements Command" tak zahlasi chybu, ze "adventure.commands.Version is not abstract and does not override abstract method execute".

Hmm... Zrejme som zacal zle, este sa na to pozriem.
Title: Re: OOP
Post by: ppeess on 06.11.2011, 00:05:31
Quote
cize prikazy.add( new Version() );
Diky za toto, pomohlo mi to, ale teraz som si uvedomil ze ta nemozem robit instanciu z triedy Version, lebo ta trieda je abstraktna. (Musi byt abstraktna, lebo inac ked tam dopisem "implements Command" tak zahlasi chybu, ze "adventure.commands.Version is not abstract and does not override abstract method execute".

Hmm... Zrejme som zacal zle, este sa na to pozriem.

A preco mas triedu Version ako abstraktnu???? ..........
Title: Re: OOP
Post by: sulo on 06.11.2011, 00:43:59
... Musi byt abstraktna, lebo inac ked tam dopisem "implements Command" tak zahlasi chybu, ze "adventure.commands.Version is not abstract and does not override abstract method execute".

Nemusí byť abstraktná. Ak implementuješ rozhranie (alebo dedíš z abstraktnej triedy), sú dve možnosti:
1.) Trieda bude abstraktná.
2.) Trieda implementuje všetky potrebné metódy, v tomto prípade metódu execute()

Skús porozmýšľať, ktorá možnosť je v tomto prípade správna :)
Title: Re: OOP
Post by: farkasdvd on 06.11.2011, 21:34:17
Nevedel by sem niekto kopirovat, ze ako ma vizerat ta funkcia main() a funkcia init() z triedy GameImpl.java?
Lebo ja mam s Kapom a on nam nevedel povedat, ako trebo to pozivatelske rozhranie nastavit. Vdaka.
Title: Re: OOP
Post by: SteLa on 07.11.2011, 01:24:25
ma tomasek okrem stvrtka este cvika z OOP? pondelok, utorok, streda?
Title: Re: OOP
Post by: esperian on 07.11.2011, 01:29:31
tam si zadaj fakultu a meno profaka..

ale ak som to spravne vycital tak okrem stvrtka ma este pondelok 12:30 - 14:00  br
Title: Re: OOP
Post by: SteLa on 07.11.2011, 01:36:46
tam si zadaj fakultu a meno profaka..

ale ak som to spravne vycital tak okrem stvrtka ma este pondelok 12:30 - 14:00  br

mne je lahsie napisat na forum^^ ak si spravne vycital tak dakujem:)
Title: Re: OOP
Post by: esperian on 07.11.2011, 01:38:22
este som ten link zabudol skopcit  :D :D :D

http://maisportal.tuke.sk/portal/rozvrhy.mais (http://maisportal.tuke.sk/portal/rozvrhy.mais)
Title: Re: OOP
Post by: matotv on 07.11.2011, 16:13:01
nehodi sem niekto 8. cviko z oop? ak ho niekto rano urobil...necakal som taky ambush od kapu :D
Title: Re: OOP
Post by: xxx3 on 07.11.2011, 17:55:33
aj 7. keby niekto mal by mne pomohlo, dik

a kto robi zadanie za odmenu PM
Title: Re: OOP
Post by: strapec111 on 07.11.2011, 19:18:47
tiez by som poprosil 7. cviko, nestihal som vobec
Title: Re: OOP
Post by: Stardox on 08.11.2011, 01:44:18
Som tu zas. :D

Scenar 07, Uloha 3:
Quote
Úloha:  V triede vytvorte metódu getCommand(), ktorá:

    bude mať jeden parameter typu String reprezentujúci reťazec zadaný používateľom z príkazového riadku a
    bude mať návratový typ Command

Metóda getCommand() overí, či parameter metódy reprezentuje príkaz hry. Na overenie je potrebné použiť zoznam príkazov hry - konkrétne ich názov a vhodné metódy triedy String. V prípade, že sa jedná o príkaz hry, je potrebné nastaviť parameter príkazu a metóda getCommand() vráti referenciu na tento príkaz. V prípade, že sa nejedná o príkaz hry, metóda vracia hodnotu null.

Vyriesil som to spravne, ci zbytocne komplikovane?
Code: [Select]
@Override
    public Command getCommand(String arg0)
    {
        for (int i = 0; i <= prikazy.size(); i++)
        {
            // if ( arg0 == prikazy.get(i).toString())
            if (arg0.equals(prikazy.get(i).toString()))
            {
                return prikazy.get(i);
            }
            else
            {
                return null;
            }
        }
        return null;
    }
Title: Re: OOP
Post by: Agamemnon on 08.11.2011, 02:15:21
nie je to dobré...
- kontroluješ vždy len prvý príkaz v list prikazy - ak hľadaný príkaz nie je prvý, tak ti to vyskočí ako null... - else statement v cykle nemá byť
- ak je príkaz bez parametrov, tak to príkaz nájde a vráti - to je okej...
- ak je príkaz s parametrami, tak nespracovávaš parameter ("V prípade, že sa jedná o príkaz hry, je potrebné nastaviť parameter príkazu.")
- nehandluješ viacslovné príkazy
- v tom cykle je nerovnosť len menší, nie menší a rovný...
- ja by som použil cyklus foreach - v jave:
Code: [Select]
for(Command cmd : prikazy)- dá sa to potenciálne aj ďalej zjednodušovať, ale to závisí od toho, ako máš implementované triedy ako Command, aký typ je premenná prikazy, etc... v základe je for okej
Title: Re: OOP
Post by: farkasdvd on 08.11.2011, 05:24:52
Quote
Vytvorte príkaz PRIKAZY, ktorý zobrazí zoznam všetkých použiteľných príkazov, ktoré hra pozná. Okrem názvu príkazu príkaz vypíše aj jeho opis. Na jeho implementáciu využite členskú premennú v rozpoznávači príkazov, v ktorej sa nachádza zoznam všetkých rozpoznateľných príkazov.

Jak by som mohol dostat z prikazy.execute(Game game, String string) k tomutu listu, ktory sa nachadza v triede ParserImpl() a obsahuje vsetky prikazy, aby som nemusel vypisovat vsetky prikazy tak zvlast:

Quote
public class Prikazy extends AbstractCommand{

public Prikazy(){
...
}

public void execute(Game game, String string) {
        game.getUI().println("VERZIA --- Prikaz na vypis verzie.");
        game.getUI().println("KONIEC --- Prikaz na ukoncenie hry.");
}
}
Skusal som nieco take, ale to nefugovalo, mal problem s tym getParserom, hoci som to mal nakodovane v GameImpl() a samozrejme aj tem getList() v triede ParserImpl():
Quote
for (int i=0; i<game.getParser().getList().size(); i++){
game.getUI().println(game.getParser().getList().get(i).getName() + "---" + game.getParser().getList().get(i).getName());
}
Title: Re: OOP
Post by: mirek on 08.11.2011, 09:59:13
Jak by som mohol dostat z prikazy.execute(Game game, String string) k tomutu listu, ktory sa nachadza v triede ParserImpl() a obsahuje vsetky prikazy, aby som nemusel vypisovat vsetky prikazy tak zvlast:

a co keby si ten prikaz PRIKAZY vytvaral v triede Parser takto:

new Prikazy(listOfCommands)

hmm?
Title: Re: OOP
Post by: Brand on 08.11.2011, 15:38:32
Jak by som mohol dostat z prikazy.execute(Game game, String string) k tomutu listu, ktory sa nachadza v triede ParserImpl() a obsahuje vsetky prikazy, aby som nemusel vypisovat vsetky prikazy tak zvlast:

a co keby si ten prikaz PRIKAZY vytvaral v triede Parser takto:

new Prikazy(listOfCommands)

hmm?

Niekomu to evidentne nedalo spat :D
Title: Re: OOP
Post by: Eriik on 08.11.2011, 18:10:36
Quote
Vytvorte príkaz PRIKAZY, ktorý zobrazí zoznam všetkých použiteľných príkazov, ktoré hra pozná. Okrem názvu príkazu príkaz vypíše aj jeho opis. Na jeho implementáciu využite členskú premennú v rozpoznávači príkazov, v ktorej sa nachádza zoznam všetkých rozpoznateľných príkazov.


ja som len v triede parserImpl spravil metodu String getAllCommands ktora vrati string zo vsetkymi prikazmi a v triede Prikazy túto metódu použijem ..
takže metoda execute v triede prikazy vyzera u mna takto:

Code: [Select]
public void execute(Game game, String string) {

ParserImpl parser = new ParserImpl();
game.getUI().println("Zoznam vsetkych prikazov: ");
game.getUI().print(parser.getAllCommands());

}

neviem ci to je správne, ale funguje to ..
Title: Re: OOP
Post by: farkasdvd on 08.11.2011, 18:48:28
Jak by som mohol dostat z prikazy.execute(Game game, String string) k tomutu listu, ktory sa nachadza v triede ParserImpl() a obsahuje vsetky prikazy, aby som nemusel vypisovat vsetky prikazy tak zvlast:

a co keby si ten prikaz PRIKAZY vytvaral v triede Parser takto:

new Prikazy(listOfCommands)

hmm?

Vdaka, to mi ani nenapadlo, trosku som to skomplikoval :)
Funguje perfektne.
Title: Re: OOP
Post by: mirek on 10.11.2011, 12:36:46
ja som len v triede parserImpl spravil metodu String getAllCommands ktora vrati string zo vsetkymi prikazmi a v triede Prikazy túto metódu použijem ..
takže metoda execute v triede prikazy vyzera u mna takto:

Code: [Select]
public void execute(Game game, String string) {

ParserImpl parser = new ParserImpl();
game.getUI().println("Zoznam vsetkych prikazov: ");
game.getUI().print(parser.getAllCommands());

}

neviem ci to je správne, ale funguje to ..
nerob to takto. je zbytocne, aby si len kvoli tomu, ze chces ziskat zoznam vsetkych prikazov, musel niekde nanovo vytvarat celu instanciu triedy Parser. to je ako keby si bol stavbar a mal by si vo vytahu dat tolko tlacidiel, kolko je poschodi v celom dome. budes kvoli takejto banalite stavat na tu chvilu cely dom znova? nestaci len niekomu zavolat, kto odpoved na tuto otazku pozna? ;)
Title: Re: OOP
Post by: xxx3 on 13.11.2011, 23:20:57
nedali by ste sem prosim niekto ako mate spraveny jeden z prikazov pre pohyb (alebo PM) ? Napr. East ? ... nejako mi to nejde. Dakujem

alebo aspon poradte ako to spravit. Vytvoril som si tam objekt GameImpl a asi bude treba nastavit cez setCurrentRoom tu aktulanu miestnost ... ale co mam dat do zatvorky tej funkcie setCurrentRoom ? Ako sa dostanem k tym vytvorenym v GameImpl v metode createrooms ?
Title: Re: OOP
Post by: Eriik on 14.11.2011, 01:48:40
nerob to takto. je zbytocne, aby si len kvoli tomu, ze chces ziskat zoznam vsetkych prikazov, musel niekde nanovo vytvarat celu instanciu triedy Parser. to je ako keby si bol stavbar a mal by si vo vytahu dat tolko tlacidiel, kolko je poschodi v celom dome. budes kvoli takejto banalite stavat na tu chvilu cely dom znova? nestaci len niekomu zavolat, kto odpoved na tuto otazku pozna? ;)
no, myslel som si že to nebude najsprávnejšie :) spravil som to tak ako si písal pár postov predtým .. diky moc
Title: Re: OOP
Post by: bEnd3r on 14.11.2011, 02:12:20
ako otvorim pmd vo win7?
Title: Re: OOP
Post by: Eriik on 14.11.2011, 02:20:27
nedali by ste sem prosim niekto ako mate spraveny jeden z prikazov pre pohyb (alebo PM) ? Napr. East ? ... nejako mi to nejde. Dakujem

alebo aspon poradte ako to spravit. Vytvoril som si tam objekt GameImpl a asi bude treba nastavit cez setCurrentRoom tu aktulanu miestnost ... ale co mam dat do zatvorky tej funkcie setCurrentRoom ? Ako sa dostanem k tym vytvorenym v GameImpl v metode createrooms ?

nepotrebuješ tam objekt GameImpl, len si do premennej typu Room daj aktuálnu miestnosť (game.getCurrentRoom() ) a ak sa dá ísť napr na východ tak metódou setCurrentRoom nastavíš aktuálnu miestnosť na miestnosť ktorá sa nachádza na východ od tej, ktorú máš v premennej typu Room (getEast() ) a zobrazíš ju (show() ) .
Title: Re: OOP
Post by: xxx3 on 14.11.2011, 04:24:42
Erik, ale ked nemam instanciu triedy GameImpl tak ako mozem pristupit k jej metodam ? napr. game.setCurrentRoom() ?
Title: Re: OOP
Post by: Eriik on 14.11.2011, 04:33:34
Erik, ale ked nemam instanciu triedy GameImpl tak ako mozem pristupit k jej metodam ? napr. game.setCurrentRoom() ?
predsa cez parameter metody execute
Title: Re: OOP
Post by: paloSK on 14.11.2011, 04:37:41
Je zajtra bleskovka s Kapom alebo nie ?
Title: Re: OOP
Post by: matus217 on 14.11.2011, 05:22:28
Je zajtra bleskovka s Kapom alebo nie ?
Tazko povedat ci bude lebo nic nespomenul, ale mali by sme ju mat, cize pravdepodobne ano. Mozno ze nam neda nic pisat, len nam da spravit dalsie cviko a to oboduje, alebo pozrie co mame doteraz. Uvidime zajtra...
Title: Re: OOP
Post by: MartinK on 14.11.2011, 06:05:44
Kedze asi vacsina mojich studentov tu chodi castejsie ako na moodle!

********************************************************************************************
Tak by som chcel touto cestou  oznamit, ze sa zajtra z dovodu mojej choroby nebudem moct na cviceniach zucastnit!
Cvicenia kvoli tomu musia odpadnu!

Prepacte, ze to pisem az teraz, ale nemal som pristup k internetu!

MartinK
Title: Re: OOP
Post by: esperian on 14.11.2011, 06:50:13
tak ale dufam ze si to naozaj ty  ;) ;) ;D
Title: Re: OOP
Post by: stephanides on 14.11.2011, 07:23:52
Nepísal nikto mail či je to pravda? :D..
Title: Re: OOP
Post by: mirek on 14.11.2011, 10:48:33
nedali by ste sem prosim niekto ako mate spraveny jeden z prikazov pre pohyb (alebo PM) ? Napr. East ? ... nejako mi to nejde. Dakujem

co je na tom tazke? mohol by vyzerat napr. zhruba takto:
Code: [Select]
ak mozes do miestnosti vojst, tak{
   vojdi do nej;
   zobraz obsah miestnosti;
}inac
   vypis, ze sa do nej dostat neda
Title: Re: OOP
Post by: Rajo on 14.11.2011, 14:14:30
čiže dneska cvičenie z OOP s Kapom nebude ?
Title: Re: OOP
Post by: Tren on 14.11.2011, 14:28:56
N I E  :)
Title: Re: OOP
Post by: Eriik on 14.11.2011, 19:28:00
už mi šibe alebo sa tá knižnica The indiana jones project a návody v moodli každú chvíľu menia ?
Title: Re: OOP
Post by: xxx3 on 14.11.2011, 19:49:12
tiez sa mi zdalo vcera, ze to bolo nejake ine ako predtym ked som si prechadzal predchadzajuce cvika
Title: Re: OOP
Post by: mirek on 15.11.2011, 00:05:17
tiez sa mi zdalo vcera, ze to bolo nejake ine ako predtym ked som si prechadzal predchadzajuce cvika
tusim spominali, ze toho roku sa cvika aktualizuju. takze evidentne nasi podareni cviciaci nestihaju...
Title: Re: OOP
Post by: zaky on 15.11.2011, 00:30:47
tusim spominali, ze toho roku sa cvika aktualizuju. takze evidentne nasi podareni cviciaci nestihaju...
:evica: :evica:
Title: Re: OOP
Post by: esperian on 15.11.2011, 03:06:52
takze Quizova otazka ya jeden puntik xDD ->

ako spravit metodu addItem z 9 cvika ??
Title: Re: OOP
Post by: xxx3 on 15.11.2011, 03:16:44
niekto ochotny by sem mohol dat 9. cviko, kedze nam s Kapom odpadlo
Title: Re: OOP
Post by: Agamemnon on 15.11.2011, 03:26:48
takze Quizova otazka ya jeden puntik xDD ->

ako spravit metodu addItem z 9 cvika ??

daj celé znenie úlohy a možno ti poradím... takto nemám šancu :) čo má tá metóda robiť, etc... nejaký popis ku nej
Title: Re: OOP
Post by: esperian on 15.11.2011, 03:32:16
Implementujte telo metódy void addItem( Item item ) rozhrania Room, ktorá zabezpečí pridanie predmetu do miestnosti.

edit// dik moc pokusim sa o nieco  ;)
Title: Re: OOP
Post by: Agamemnon on 15.11.2011, 03:41:43
Implementujte telo metódy void addItem( Item item ) rozhrania Room, ktorá zabezpečí pridanie predmetu do miestnosti.

hmm, napr. niečo takéto:

Code: [Select]

class RoomImpl implements Room {
  private List<Item> items;
 
  ...
 
  public void addItem(Item item) {
    // sem môžu prísť nejaké testy - napr. či sa predmet už nenachádza v liste, či sa predmet vôbec môže nachádzať v miestnosti a pod...
    // ale nemusia byť, keďže v podstate toto nebude verejná trieda a pristupovať ku nej budeš len ty...
    items.Add(item);
  }
}


ak to nie je čisto v jave, tak sa ospravedlňujem... s javou som nerobil už niekoľko rokov a toto píšem z hlavy :) možno som to pomiešal trochu s c#
Title: Re: OOP
Post by: Eriik on 15.11.2011, 06:17:08
ako by asi mal fungovať príkaz RESTART ? stačí nanovo vytvoriť všetky miestnosti a backpack a tie staré proste nejako zmiznú ? :D alebo to treba robiť inak ?
Title: Re: OOP
Post by: Agamemnon on 15.11.2011, 13:19:29
ako by asi mal fungovať príkaz RESTART ? stačí nanovo vytvoriť všetky miestnosti a backpack a tie staré proste nejako zmiznú ? :D alebo to treba robiť inak ?

ach, radosti garbage collectora... :)

mal by si: zrusit stare itemy, miestnosti, inventar, vsetko v nom... stav hry, poziciu hraca, etc, etc...
a vytvorit vsetko znovu...

teoreticky: ak urobis len to, ze vytvoris vsetko znovu, tak by to malo stacit a GC po istom case stare veci z pamate odstrani... vzdy ale existuje riziko, ze mas niekde zabudnutu nejaku referenciu a pod., a vdaka nej ti tie veci ostanu v hre, a pripadne ti ju mozu aj ovplyvnovat
Title: Re: OOP
Post by: AnvilOfFury on 15.11.2011, 19:56:05
Včera vraj nebolo cviko s mirekom, na dnes to už náhodou neplatí?
Title: Re: OOP
Post by: bodon14 on 15.11.2011, 21:05:08
Caute predam kompletne zadanie na OOP ...cena dohodou... moj mail je bodon14@azet.sk...
Title: Re: OOP
Post by: BlackBerry on 15.11.2011, 22:23:01
Chcel by som spytat ci mozem menit scenar ktory som odovzdal...nie cely...len neake veci tam chcem doplnit
Title: Re: OOP
Post by: ppeess on 15.11.2011, 22:52:11
Chcel by som spytat ci mozem menit scenar ktory som odovzdal...nie cely...len neake veci tam chcem doplnit

Mozes .....
Title: Re: OOP
Post by: visvk on 18.11.2011, 04:13:50
cavte mam problem pri spustani adventury, som v stadiu ked mam vyskusat spustenie hry,, ale pri Run mi vyhodi chybu
Exception in thread "main" java.lang.NullPointerException
   at adventure.GameImpl.start(GameImpl.java:51)
   at adventure.Main.main(Main.java:29)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

ale funkcia start je dobre napisana, a aj loop je dobre napisany (aspon dufam), ked viete prosim poradte
Title: Re: OOP
Post by: Agamemnon on 18.11.2011, 04:29:58
hmm... chybu máš v súbore GameImpl.java na riadku 51... objekt, ktorý sa tam snažíš použiť, nemá nastavenú hodnotu a je preto null...

- nabudúce pastni kód, keď chceš niečo konkrétne opraviť, s niečim pomôcť...
- nauč sa čítať výnimky... píše ti to, čo sa stalo (null pointer) a kde sa to stalo (GameImpl.java:51)... nvm, čo viac ešte chceš...
- nauč sa používať debugger

ak sa to nenaučíš, tak sa rovno odhlás z informatiky... (ak nie si informatik, tak sa ospravedlňujem a toto sa ťa netýka... predchádzajúce body áno)
Title: Re: OOP
Post by: razer08 on 18.11.2011, 23:12:54
vedel by mi nekto vysvetlit,ze ako urobim execute v triede explore?  ak:
Title: Re: OOP
Post by: Agamemnon on 18.11.2011, 23:18:29
explore má vypísať podrobnosti o miestnosti, v ktorej sa nachádzaš, nie? alebo také niečo, ak si to dobre pamätám...

takže niečo takéto:
Code: [Select]
public void explore() {
  system.out.println(currentRoom.getExploreDescription());
}

- netuším, aké sú metódy v Room, takisto netuším, ako máš vyriešený prístup ku premennej currentRoom... takže ako to presne budeš zapisovať je na tebe - závisí od toho, ako to máš implementované
- nie som si istý zápisom na println, s javou už dlho nerobím...

dúfam, že je to pochopiteľné, čo som napísal
Title: Re: OOP
Post by: razer08 on 18.11.2011, 23:25:43
explore má vypísať podrobnosti o miestnosti, v ktorej sa nachádzaš, nie? alebo také niečo, ak si to dobre pamätám...

takže niečo takéto:
Code: [Select]
public void explore() {
  system.out.println(currentRoom.getExploreDescription());
}

- netuším, aké sú metódy v Room, takisto netuším, ako máš vyriešený prístup ku premennej currentRoom... takže ako to presne budeš zapisovať je na tebe - závisí od toho, ako to máš implementované
- nie som si istý zápisom na println, s javou už dlho nerobím...

dúfam, že je to pochopiteľné, čo som napísal

ked napisem napr.  "preskumaj rybar",tak ma vypisat meno a opis predmetu
Title: Re: OOP
Post by: ppeess on 18.11.2011, 23:37:59
explore má vypísať podrobnosti o miestnosti, v ktorej sa nachádzaš, nie? alebo také niečo, ak si to dobre pamätám...

takže niečo takéto:
Code: [Select]
public void explore() {
  system.out.println(currentRoom.getExploreDescription());
}

- netuším, aké sú metódy v Room, takisto netuším, ako máš vyriešený prístup ku premennej currentRoom... takže ako to presne budeš zapisovať je na tebe - závisí od toho, ako to máš implementované
- nie som si istý zápisom na println, s javou už dlho nerobím...

dúfam, že je to pochopiteľné, čo som napísal

ked napisem napr.  "preskumaj rybar",tak ma vypisat meno a opis predmetu

kedze tam mas tuto medotu getExploreDescription() tak podla nazvu usudzujem ze iba opis predmetu.
Title: Re: OOP
Post by: Agamemnon on 19.11.2011, 00:26:40
explore má vypísať podrobnosti o miestnosti, v ktorej sa nachádzaš, nie? alebo také niečo, ak si to dobre pamätám...

takže niečo takéto:
Code: [Select]
public void explore() {
  system.out.println(currentRoom.getExploreDescription());
}

- netuším, aké sú metódy v Room, takisto netuším, ako máš vyriešený prístup ku premennej currentRoom... takže ako to presne budeš zapisovať je na tebe - závisí od toho, ako to máš implementované
- nie som si istý zápisom na println, s javou už dlho nerobím...

dúfam, že je to pochopiteľné, čo som napísal

ked napisem napr.  "preskumaj rybar",tak ma vypisat meno a opis predmetu

aha, okej potom niečo takéto:

Code: [Select]
public void explore() {
  Item item = currentRoom.getItem(itemName);
  system.out.println(item.getDescription());
}

- itemName je ten parameter za príkazom (tj. rybar v preskumaj rybar)
- implementácia miestnosti Room má metódu getItem(string), ktorá vráti referenciu na predmet podľa jeho mena
- zvyšok platí to, čo v predchádzajúcom príklade - pre currentRoom, java metódy, etc...
Title: Re: OOP
Post by: razer08 on 20.11.2011, 14:53:43
explore má vypísať podrobnosti o miestnosti, v ktorej sa nachádzaš, nie? alebo také niečo, ak si to dobre pamätám...

takže niečo takéto:
Code: [Select]
public void explore() {
  system.out.println(currentRoom.getExploreDescription());
}

- netuším, aké sú metódy v Room, takisto netuším, ako máš vyriešený prístup ku premennej currentRoom... takže ako to presne budeš zapisovať je na tebe - závisí od toho, ako to máš implementované
- nie som si istý zápisom na println, s javou už dlho nerobím...

dúfam, že je to pochopiteľné, čo som napísal

ked napisem napr.  "preskumaj rybar",tak ma vypisat meno a opis predmetu

aha, okej potom niečo takéto:

Code: [Select]
public void explore() {
  Item item = currentRoom.getItem(itemName);
  system.out.println(item.getDescription());
}

- itemName je ten parameter za príkazom (tj. rybar v preskumaj rybar)
- implementácia miestnosti Room má metódu getItem(string), ktorá vráti referenciu na predmet podľa jeho mena
- zvyšok platí to, čo v predchádzajúcom príklade - pre currentRoom, java metódy, etc...

diky pekne :) uz to funguje  bp
Title: Re: OOP
Post by: swety on 20.11.2011, 20:11:28
rozhrania v kniznici Jonesa asi nemozeme menit, ze?

ak si do GameImpl doplnim nejake metody ktore v Game nie su (napr. zobrazenie menu), aj tak ich nemozem volat napr. v Quit.execute(), ked je tam parametrom objekt typu Game.

chcel som to riesit pretypovanim a teda nieco v zmysle
Code: [Select]
(GameImpl)game.showMenu();
ale zjavne takto to nefunguje, takze to mam nakoniec riesene cez dalsiu premennu
Code: [Select]
GameImpl game2 = (GameImpl)game;
game2.showMenu();

je to takto korektne alebo "myslim zle"? lebo takto mam riesenych viac veci napr. aj prikaz PRIKAZY :)

a este jedna vec, PMD hlasi ze "   Pretypujte deklaráciu (namiesto typu 'ArrayList' použite rozhranie, ktoré tento typ implementuje)." pri deklaracii ArrayList<Command>, ale v scenari je pouzitie prave tohoto nie? ci nerozumiem chybe? :whacko:
Title: Re: OOP
Post by: Agamemnon on 20.11.2011, 22:00:59
rozhrania v kniznici Jonesa asi nemozeme menit, ze?

ak si do GameImpl doplnim nejake metody ktore v Game nie su (napr. zobrazenie menu), aj tak ich nemozem volat napr. v Quit.execute(), ked je tam parametrom objekt typu Game.

chcel som to riesit pretypovanim a teda nieco v zmysle
Code: [Select]
(GameImpl)game.showMenu();
ale zjavne takto to nefunguje, takze to mam nakoniec riesene cez dalsiu premennu
Code: [Select]
GameImpl game2 = (GameImpl)game;
game2.showMenu();

je to takto korektne alebo "myslim zle"? lebo takto mam riesenych viac veci napr. aj prikaz PRIKAZY :)

a este jedna vec, PMD hlasi ze "   Pretypujte deklaráciu (namiesto typu 'ArrayList' použite rozhranie, ktoré tento typ implementuje)." pri deklaracii ArrayList<Command>, ale v scenari je pouzitie prave tohoto nie? ci nerozumiem chybe? :whacko:

- rozhrania, ktoré ste dostali, meniť nemôžete
- doplniť do implementácie môžeš čokoľvek...
- funguje to, pokiaľ je to objekt toho typu, ktorý danú vec implementuje
- pretypovanie máš zle:
Code: [Select]
((GameImpl)game).showMenu();
- to s premennou zmaž - použi pretypovanie

- posledné nvm - nepastol si kód, ktorý ti hlási tú chybu + s javou nerobím, a nedokážem po pamäti povedať, čo je ArrayList (abstraktná trieda? trieda? rozhranie?)... a nechce sa im googliť... takže ak mi povieš, čo sú dané veci a ak pastneš chybný kód, tak ti poviem, čo je zle... :) teoreticky ten kód stačí, zvyšok si možno domyslím...
Title: Re: OOP
Post by: swety on 20.11.2011, 23:45:58
kod je v triede ParserImpl, ArrayList je importovany z java.util.ArrayList a chyba je na riadku s deklaraciou premennej tohto typu teda
Code: [Select]
private ArrayList<Command> commands;kde to neskor pouzivam ako
Code: [Select]
this.commands = new ArrayList<Command>();
commands.add(new Version());
a postupne pridavanie prikazov do listu, funguje vsetko OK iba ten PMD upozornuje... ale mozno to nie je to o com sa pise v scenari robil som to prvykrat a iba nasledoval chyby a upozornenia NetBeansu a teda bol som stastny ze to funguje  :D

za tie zatvorky v pretypovani vdaka  :beer1:
Title: Re: OOP
Post by: Agamemnon on 21.11.2011, 00:06:46
kod je v triede ParserImpl, ArrayList je importovany z java.util.ArrayList a chyba je na riadku s deklaraciou premennej tohto typu teda
Code: [Select]
private ArrayList<Command> commands;kde to neskor pouzivam ako
Code: [Select]
this.commands = new ArrayList<Command>();
commands.add(new Version());
a postupne pridavanie prikazov do listu, funguje vsetko OK iba ten PMD upozornuje... ale mozno to nie je to o com sa pise v scenari robil som to prvykrat a iba nasledoval chyby a upozornenia NetBeansu a teda bol som stastny ze to funguje  :D

za tie zatvorky v pretypovani vdaka  :beer1:

aha, ono to po tebe chce, aby si premenné nedeklaroval ako konkrétnu triedu, ale ako abstratknú, alebo ako interface... v tomto prípade to znamená asi toľko:

ArrayList<Command> je konkrétna trieda...
ArrayList je interface (alebo abstr. trieda, ale to je jedno v tomto prípade)...

takže ono to chce po tebe niečo také:

Code: [Select]
// deklaruješ interace/abstr. triedu
private ArrayList commands;

...

// priradzuješ konkrétnu implementáciu
commands = new ArrayList<Command>();
Title: Re: OOP
Post by: sulo on 21.11.2011, 00:57:02
ArrayList je interface (alebo abstr. trieda, ale to je jedno v tomto prípade)...

ArrayList nie je rozhranie ani abstraktná trieda, ale niečo ako náhrada zápisu ArrayList<Object>.

PMD chce, aby bola premenná deklarovaná pomocou rozhrania List.

Code: [Select]
private List<Command> commands;
Priradenie implementácie je už potom tak, ako bolo spomenuté.

Code: [Select]
commands = new ArrayList<Command>();
Title: Re: OOP
Post by: Agamemnon on 21.11.2011, 01:31:48
ArrayList je interface (alebo abstr. trieda, ale to je jedno v tomto prípade)...

ArrayList nie je rozhranie ani abstraktná trieda, ale niečo ako náhrada zápisu ArrayList<Object>.

PMD chce, aby bola premenná deklarovaná pomocou rozhrania List.

Code: [Select]
private List<Command> commands;
Priradenie implementácie je už potom tak, ako bolo spomenuté.

Code: [Select]
commands = new ArrayList<Command>();

dokonca... vďaka za opravu :)
Title: Re: OOP
Post by: matus217 on 21.11.2011, 13:02:00
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.
Title: Re: OOP
Post by: Agamemnon on 21.11.2011, 14:18:59
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

pouzi nejaku premennu:
Code: [Select]
string premenna = "defaultna hodnota";
if (test1) premenna = "hodnota 1";
if (test2) premenna = "hodnota 2";

return premenna;

edit:
este ku tomu jednemu returnu:
je to popularny mytus, ze jeden vystupny bod (return) pre metodu sprehladnuje kod a nvm co este... ale to je zvycajne nezmysel ;) a navyse by som povedal, ze je to individualna vec - niekomu sa zda prehladnejsie jedna vec a druhemu ina vec...
avsak, kedze mate take pravidla ako mate, tak to asi budes musiet fixnut :)
Title: Re: OOP
Post by: AnvilOfFury on 21.11.2011, 15:17:33
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.
Code: [Select]
public Command getCommand(string podmienka){
  Command value = null;
  for(Command c : list){
    if(c == podmienka){
      value = c;
      break;
    }
  }
  return value;
}
Title: Re: OOP
Post by: matus217 on 21.11.2011, 15:26:13
Nevie mi niekto...

pouzi nejaku premennu:
Code: [Select]
string premenna = "defaultna hodnota";
if (test1) premenna = "hodnota 1";
if (test2) premenna = "hodnota 2";

return premenna;

edit:
este ku tomu jednemu returnu:
je to popularny mytus, ze jeden vystupny bod (return) pre metodu sprehladnuje kod a nvm co este... ale to je zvycajne nezmysel ;) a navyse by som povedal, ze je to individualna vec - niekomu sa zda prehladnejsie jedna vec a druhemu ina vec...
avsak, kedze mate take pravidla ako mate, tak to asi budes musiet fixnut :)
Nejako tak som nad tym rozmyslal tiez, ale nenapadlo ma nastavit premennu na typ hodnoty roomu alebo itemu a na zaciatku ju inicializovat na null... Ake lahke to bolo :D... aj tak je to taky proces dookola blizsie a este to treba po priradeni aj breakovat nech to nehadze na dalsiu podmienku... Ale nastastie mi to uz ide. Vdaka za navrh :)
Title: Re: OOP
Post by: matus217 on 21.11.2011, 15:27:14
AnvilOfFury: Vdaka, jojo akurat som to pred chvilou takto napisal tiez a uz mi to ide :-)
Title: Re: OOP
Post by: mirek on 21.11.2011, 16:38:46
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

hmm... som si to teraz vyskusal a mne to nerobi. nespustas to pmd zle? alebo nepouzivas iny (najlepsie) ziadny ruleset ako ten, co sme dostali?
Title: Re: OOP
Post by: matus217 on 21.11.2011, 17:17:03
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

hmm... som si to teraz vyskusal a mne to nerobi. nespustas to pmd zle? alebo nepouzivas iny (najlepsie) ziadny ruleset ako ten, co sme dostali?
PMD pouzivam ten zo scourforge myslim, tak ako bolo v navode - stiahnut a nainstalovat do netbeansu. Nevedel som ako pustit vo wine pod netbeansom - ten defaultny z kniznice indiana_jones. Ale tak snad to uz nebude robit problemy. Tie returny som opravil a uz to nevyhadzuje ziadnu chybu.
Title: Re: OOP
Post by: mirek on 21.11.2011, 17:50:14
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

hmm... som si to teraz vyskusal a mne to nerobi. nespustas to pmd zle? alebo nepouzivas iny (najlepsie) ziadny ruleset ako ten, co sme dostali?
PMD pouzivam ten zo scourforge myslim, tak ako bolo v navode - stiahnut a nainstalovat do netbeansu. Nevedel som ako pustit vo wine pod netbeansom - ten defaultny z kniznice indiana_jones. Ale tak snad to uz nebude robit problemy. Tie returny som opravil a uz to nevyhadzuje ziadnu chybu.

ved prave, ze v tom rulesete, co sme dostali, take pravidlo nie je (iba jeden return v celej metode). myslim, ze nepouzivas spravny ruleset.
Title: Re: OOP
Post by: matus217 on 21.11.2011, 18:04:06
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

hmm... som si to teraz vyskusal a mne to nerobi. nespustas to pmd zle? alebo nepouzivas iny (najlepsie) ziadny ruleset ako ten, co sme dostali?
PMD pouzivam ten zo scourforge myslim, tak ako bolo v navode - stiahnut a nainstalovat do netbeansu. Nevedel som ako pustit vo wine pod netbeansom - ten defaultny z kniznice indiana_jones. Ale tak snad to uz nebude robit problemy. Tie returny som opravil a uz to nevyhadzuje ziadnu chybu.

ved prave, ze v tom rulesete, co sme dostali, take pravidlo nie je (iba jeden return v celej metode). myslim, ze nepouzivas spravny ruleset.
A ako sa dostanem k spravnemu rulesetu  ?  :trestac:
Title: Re: OOP
Post by: esperian on 21.11.2011, 20:04:16
aj mna by to zaujimalo :-)
toto som nasiel ale... "preklikam" sa v prikazovom riadku tam kde mam ten subor build.xml .. ale ked tam napisem ten prikaz tak sa nic nestane.. ale ked tam napisem ze build.xml tak mi otvori toto -> vid dole
Balíček taktiež obsahuje aj nástroj PMD spolu so zoznamom pravidiel, podľa ktorých sa bude váš projekt kontrolovať. Pokiaľ teda potrebujete skontrolovať kvalitu svojho výsledného kódu, napíšte do príkazového riadku nasledujúci príkaz (z koreňového priečinku, v ktorom sa váš projekt nachádza (nachádza sa v ňom aj súbor build.xml):
1   $ ant pmd


Code: [Select]
<?xml version="1.0" encoding="UTF-8"?>

<!-- You may freely edit this file. See commented blocks below for -->

<!-- some examples of how to customize the build. -->

<!-- (If you delete it and reopen the project it will be recreated.) -->

<!-- By default, only the Clean and Build commands use this build script. -->

<!-- Commands such as Run, Debug, and Test only use this build script if -->

<!-- the Compile on Save feature is turned off for the project. -->

<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->

<!-- in the project's Project Properties dialog box.-->
-<project basedir="." default="default" name="Adventure"> <description>Builds, tests, and runs the project Adventure.</description> <import file="nbproject/build-impl.xml"/>
<!-- There exist several targets which are by default empty and which can be used for execution of your tasks. These targets are usually executed before and after some main targets. They are: -pre-init: called before initialization of project properties -post-init: called after initialization of project properties -pre-compile: called before javac compilation -post-compile: called after javac compilation -pre-compile-single: called before javac compilation of single file -post-compile-single: called after javac compilation of single file -pre-compile-test: called before javac compilation of JUnit tests -post-compile-test: called after javac compilation of JUnit tests -pre-compile-test-single: called before javac compilation of single JUnit test -post-compile-test-single: called after javac compilation of single JUunit test -pre-jar: called before JAR building -post-jar: called after JAR building -post-clean: called after cleaning build products (Targets beginning with '-' are not intended to be called on their own.) Example of inserting an obfuscator after compilation could look like this: <target name="-post-compile"> <obfuscate> <fileset dir="${build.classes.dir}"/> </obfuscate> </target> For list of available properties check the imported nbproject/build-impl.xml file. Another way to customize the build is by overriding existing main targets. The targets of interest are: -init-macrodef-javac: defines macro for javac compilation -init-macrodef-junit: defines macro for junit execution -init-macrodef-debug: defines macro for class debugging -init-macrodef-java: defines macro for class execution -do-jar-with-manifest: JAR building (if you are using a manifest) -do-jar-without-manifest: JAR building (if you are not using a manifest) run: execution of project -javadoc-build: Javadoc generation test-report: JUnit report generation An example of overriding the target for project execution could look like this: <target name="run" depends="Adventure-impl.jar"> <exec dir="bin" executable="launcher.exe"> <arg file="${dist.jar}"/> </exec> </target> Notice that the overridden target depends on the jar target and not only on the compile target as the regular run target does. Again, for a list of available properties which you can use, check the target you are overriding in the nbproject/build-impl.xml file. -->
 -<target name="pmd"> <echo message="Running PMD..."/> <delete file="pmd-report.html"/>
<!-- Linux Configuration -->
 -<exec dir="pmd/bin" osfamily="unix" output="pmd-report.html" executable="sh"> <arg value="pmd.sh"/> <arg value="../../src"/> <arg value="html"/> <arg value="ruleset.xml"/> </exec>
<!-- Windows Configuration -->
 -<exec dir="pmd/bin" osfamily="windows" output="pmd-report.html" executable="cmd.exe"> <arg value="/c"/> <arg value="pmd.bat"/> <arg value="../../src"/> <arg value="html"/> <arg value="ruleset.xml"/> </exec> <echo message="Done. Result is saved in file pmd-report.html."/> </target> </project>
Title: Re: OOP
Post by: mirek on 21.11.2011, 22:21:22
A ako sa dostanem k spravnemu rulesetu  ?  :trestac:
pozeram, ze je na stiahnutie v odkazoch na stranke text game I. - introduction a taktiez sa nachadza aj v tom projekte, co sa tam da tiez stiahnut.
Title: Re: OOP
Post by: Stardox on 21.11.2011, 23:11:27
Quote
A ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.
Title: Re: OOP
Post by: Rajo on 22.11.2011, 00:08:52
Quote
A ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.

detto...
Title: Re: OOP
Post by: sulo on 22.11.2011, 01:04:00
Ruleset je správny, len ho asi nesprávne používate.

java -jar "cesta_k_PMD/lib/pmd-4.3.jar" "cesta_k_projektu" html "cesta_k_rulesetu/ruleset.xml" > report.html
start report.html
Title: Re: OOP
Post by: orsi on 22.11.2011, 06:23:03
v ParserImpl mam premennu commands = new ArrayList<Command>();
ako v metode public Command getCommand(String string) prejst celym polom a skontrolovat ci ten prikaz na vstupe, teda ten string je v poli a vratiť ten prikaz?? a aby to ignorovalo velkost pismen.
Title: Re: OOP
Post by: Agamemnon on 22.11.2011, 14:25:33
v ParserImpl mam premennu commands = new ArrayList<Command>();
ako v metode public Command getCommand(String string) prejst celym polom a skontrolovat ci ten prikaz na vstupe, teda ten string je v poli a vratiť ten prikaz?? a aby to ignorovalo velkost pismen.

pouzijes nejaky for alebo foreach... kazdy item testujes, ci ma spravne meno... ak ma item spravne meno, cyklus prerusis a vratis ten item, ktory bol spravny...
c# ma metody ToLower()/ToUpper() pre string, ktore vratia povodny retazec so vsetky malymi alebo velkymi pismenami (string je immutable) - myslim, ze java ma nieco podobne... pouzi javadoc...

snad z tohto kod uz napises sam :)
Title: Re: OOP
Post by: milaninho on 22.11.2011, 14:33:23
Quote
A ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.

ja som stiahol kostru projektu ktory bol poskytnuty, ten obsahuje aj pmd pripravene, staci spustit "ant pmd" z prikazoveho riadku v priecinku projektu a spusta mi spravny ruleset (bez obmedzenia poctu returnov). treba mat ovsem nainstalovany ant. bez ohladu na to ze ci ste spravny stiahli alebo nie, urcite spravny nepouzivate.
Title: Re: OOP
Post by: mirek on 22.11.2011, 21:02:01
Quote
A ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.

ja som stiahol kostru projektu ktory bol poskytnuty, ten obsahuje aj pmd pripravene, staci spustit "ant pmd" z prikazoveho riadku v priecinku projektu a spusta mi spravny ruleset (bez obmedzenia poctu returnov). treba mat ovsem nainstalovany ant. bez ohladu na to ze ci ste spravny stiahli alebo nie, urcite spravny nepouzivate.

no - presne tak nam to hovorili aj na cvikach a odporucali prave tento postup.
Title: Re: OOP
Post by: milaninho on 23.11.2011, 03:14:56
Quote
A ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.

ja som stiahol kostru projektu ktory bol poskytnuty, ten obsahuje aj pmd pripravene, staci spustit "ant pmd" z prikazoveho riadku v priecinku projektu a spusta mi spravny ruleset (bez obmedzenia poctu returnov). treba mat ovsem nainstalovany ant. bez ohladu na to ze ci ste spravny stiahli alebo nie, urcite spravny nepouzivate.

no - presne tak nam to hovorili aj na cvikach a odporucali prave tento postup.

:D by ma zaujimalo kto to hovoril tebe
Title: Re: OOP
Post by: Stardox on 23.11.2011, 03:54:19
Quote
ja som stiahol kostru projektu ktory bol poskytnuty, ten obsahuje aj pmd pripravene, staci spustit "ant pmd" z prikazoveho riadku v priecinku projektu a spusta mi spravny ruleset (bez obmedzenia poctu returnov). treba mat ovsem nainstalovany ant. bez ohladu na to ze ci ste spravny stiahli alebo nie, urcite spravny nepouzivate.

Tak ja som spravil toto, ze som stiahol uz pripraveny projekt z moodlu, potom som si stiahol ruleset z moodlu (scenar 06 dole), nainstaloval som PMD ako plugin v Netbeanse, pridal tam ruleset.xml a spustam si to cez Tools->RunPMD.

Ci to nedobre daco robim?
Title: Re: OOP
Post by: matus217 on 23.11.2011, 08:09:45
tak o niecom takomto pocujem prvy krat... kazdopadne, ked mam stiahnuty defaultny PMD zo sourceforge a kontrolujem to nim priamo v netbeanse, je to chyba ? alebo si to mozem takto nechat ? V podstate mam vsetko fixnute a nemam ziadnu chybu. Len ci nema ten customizovany ruleset nejake pravidlo naviac alebo podobne...
Title: Re: OOP
Post by: milaninho on 23.11.2011, 16:47:34
je na vas aby ste si poriesili to aby ste splnali podmienky.. ak si stahujete vlastne PMDcka a instalujete pluginy, tak to robite na vlastne triko (na cviceniach predpokladam ze bol prezentovany postup ktory som pisal vyssie)..
Title: Re: OOP
Post by: matus217 on 23.11.2011, 19:58:07
Na cviceniach bol reprezentovany postup ist v netbeanse do tools plugins a pridat PMD. Preto sa pytam kompetentnych ci si mozem nechat sourceforge PMDcko alebo s tym mam nieco robit. Zatial som sa odpovede nedockal...
Title: Re: OOP
Post by: Stardox on 23.11.2011, 20:03:12
Hmmm, nam cviciaci tiez hovoril ze cez Tool->RunPMD staci. Nevadi, nic sa zatial nedeje, opytam sa na cviceni, ze co povie cviciaci a vyriesi sa to.  :)
Title: Re: OOP
Post by: milaninho on 23.11.2011, 20:49:40
tak potom je kompetetny vas cviciaci.. a treba sa pytat jeho..
Title: Re: OOP
Post by: Wolfdale on 23.11.2011, 22:02:13
aha
Title: Re: OOP
Post by: mirek on 24.11.2011, 14:59:03
Hmmm, nam cviciaci tiez hovoril ze cez Tool->RunPMD staci. Nevadi, nic sa zatial nedeje, opytam sa na cviceni, ze co povie cviciaci a vyriesi sa to.  :)
nas cviciaci upozoronoval, ze s PMD pluginom nemaju dobru skusenost. tusim spominal nieco v style, ze ignoruje podhodeny ruleset a pouziva zrejme nejaky defaultny. preto sa vam asi prejavuje aj problem s pravidlom o pocte returnov z metody. existuje vraj este plugin easypmd2, ale vraj ho este neskusali. tak vyskusajte a podelte sa ;)
Title: Re: OOP
Post by: luko on 24.11.2011, 17:36:49
nas cviciaci upozoronoval, ze s PMD pluginom nemaju dobru skusenost. tusim spominal nieco v style, ze ignoruje podhodeny ruleset a pouziva zrejme nejaky defaultny. preto sa vam asi prejavuje aj problem s pravidlom o pocte returnov z metody. existuje vraj este plugin easypmd2, ale vraj ho este neskusali. tak vyskusajte a podelte sa ;)
zaujimalo by ma kto Vas uci :D
Title: Re: OOP
Post by: mirek on 24.11.2011, 23:09:53
nas cviciaci upozoronoval, ze s PMD pluginom nemaju dobru skusenost. tusim spominal nieco v style, ze ignoruje podhodeny ruleset a pouziva zrejme nejaky defaultny. preto sa vam asi prejavuje aj problem s pravidlom o pocte returnov z metody. existuje vraj este plugin easypmd2, ale vraj ho este neskusali. tak vyskusajte a podelte sa ;)
zaujimalo by ma kto Vas uci :D

mojim ucitelom je majster yoda :-P
Title: Re: OOP
Post by: milaninho on 24.11.2011, 23:14:53
nas cviciaci upozoronoval, ze s PMD pluginom nemaju dobru skusenost. tusim spominal nieco v style, ze ignoruje podhodeny ruleset a pouziva zrejme nejaky defaultny. preto sa vam asi prejavuje aj problem s pravidlom o pocte returnov z metody. existuje vraj este plugin easypmd2, ale vraj ho este neskusali. tak vyskusajte a podelte sa ;)
zaujimalo by ma kto Vas uci :D

mojim ucitelom je majster yoda :-P

,,Velmi temná druhá strana je."
,,Drž hubu Yodo a sněz si svůj toast, jako všichni ostatní!"
Title: Re: OOP
Post by: MartinK on 25.11.2011, 01:11:47
Ahojte,
znova touto cestou by som chcel oznamit, ze cvicenia v Pondelok o 7:30 sa nebudem moct zucastnit, ostatne cvicenia v dany den sa uskutocnia bez zmeny.

Pozrel som obsah 10. cvicenia ktore sme mali preberat, tak nemal by to byt problem naprogramovat aj doma, vsetko potrebne sa uz prebralo. Jedine pri bode 4, pre inspiraciu, odporucam sa pozriet na  operator "instanceof">>>
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html)

Pripadne nezrovnalosti ktore ste doma nezvladli si preberieme na nasledujucom cviceni.

Martin Kapa
Title: Re: OOP
Post by: milaninho on 25.11.2011, 20:19:35
ak chcete rozsirovat rozhrania ktore su dane v zadani, nezasahujte do samotnej kniznice, mozte si vytvorit vlastne rozhrania, ktore budu implementovat tieto dane (tzn. ze tam budu mat to co sa od vas chce na zadani), plus do nich si mozete pridat nove metody (ak vam napr nestaci Room.show(UserInterface), tak si vytvorite nove rozhranie a pridate si tam metodu aku chcete, napr. aj Room.show(UserInterface ui, VlastnyParameter p)).
Title: Re: OOP
Post by: Agamemnon on 25.11.2011, 20:33:14
ak chcete rozsirovat rozhrania ktore su dane v zadani, nezasahujte do samotnej kniznice, mozte si vytvorit vlastne rozhrania, ktore budu implementovat tieto dane (tzn. ze tam budu mat to co sa od vas chce na zadani), plus do nich si mozete pridat nove metody (ak vam napr nestaci Room.show(UserInterface), tak si vytvorite nove rozhranie a pridate si tam metodu aku chcete, napr. aj Room.show(UserInterface ui, VlastnyParameter p)).

ostava nutnost pretypovania
Title: Re: OOP
Post by: orsi on 26.11.2011, 05:09:48
naco vlastne su tie rozhrania?  ???  8)
tvoria kostru programu ako tie naše rozhrania co musime implementovať povinne. aby sme neprogramovali odbukadobuka ale aspon podobne. takto tomu ja rozumiem. ale este je tu nejaky iny dvovod? (citim ze hej  :D )
a este k dedeniu. funguje to takto? Nadtrieda(nie je abstract, ale obycajna)->1.odvodena trieda (obsahuje extends nadtrieda)->2.odvodena(obsahuje extends 1.odvodena, bude mozne pouzit metody z 1.odvodenej a aj z nadtriedy?? a samozrejme spravit nove metody)
moze sa to tak spravit? ako na viacnasobne dedenie?
je tu nejaka študovaná hlava co by mi to vedela vysvetliť ak sa mylim?  ;D ale ľudsky vysvetliť, nie ako binas ze mi povie nejaku poucku z "velkej encyklopedie OOP" co tomu nerozumiem ani pol slova!
Title: Re: OOP
Post by: Agamemnon on 26.11.2011, 06:28:32
dedenie:
- viacnásobné: java nepodporuje (c# tiež nie) - jedna z možností, ako to obísť je práve cez rozhrania - jedna trieda môže implementovať viacero rozhraní
- áno, hierarchia dedenia môže byť viacúrovňová... potomok potom pozná všetky metódy od všetkých predkov... (všetky okrem poslednej môžu byť abstraktné, ale nemusí byť žiadna)
Title: Re: OOP
Post by: Agamemnon on 26.11.2011, 06:31:09
rozhrania:
- jedna trieda môže implementovať viacero rozhraní... rozhranie môže implementovať iné rozhranie (vznikne hierarchia rozhraní - trieda, ktorá implementuje to rozhranie, musí implementovať metódy zo všetkých rozhraní v hierarchii)
- určujú povinné metódy v triede
Title: Re: OOP
Post by: Agamemnon on 26.11.2011, 06:46:23
okej, teraz to praktické využitie... hehe :) to bude ťažšie trochu, ak ťa nebudem chcieť popliesť ďalšími divnými vecami :)

najdôležitejšia vec je tu polymorfizmus - ak dáš rozhranie ako parameter nejakej metódy, tak objekt akejkoľvek triedy, ktorá to rozhranie implementuje, môže do tej metódy ísť ako parameter... rôzne výhody: napr. dokážeš zmeniť algoritmus za behu - napr. na základe nejakého testu (if-u) a implementácia bude stále čitateľná (a samotný algoritmus bude bez if-ov)... alebo napr. naloaduješ za behu triedu, ktorá implementuje rozhranie, z nejakej knižnice, ktorú napr. nepoznáš (plug-in) a potom môžeš túto triedu používať, pretože vieš, že určite bude obsahovať metódy, ktoré to rozhranie definuje (a nepotrebuješ poznať implementáciu, alebo ostatné metódy v tej triede, etc)...

príkladom by mohlo byť napr. rozhranie IUseable v adventúre... máš to rozhranie a máš predmety, ktoré ho implementujú... ak predmet (trieda) to rozhranie implementuje, tak potom vieš, že sa dá taký predmet použiť (a vieš, podľa rozhrania, že má metódu "use")... a môžeš taký predmet použiť v príkazu "použi"...

hmm, napr. niečo takéto:
Code: [Select]
interface IUseable {
  void use();
}

class Door implements IUseable {
  public void use() {
    // urobí niečo konkrétne pre dvere
  }
}

class Window implements IUseable {
  public void use() {
    // urobí niečo konkrétne pre okno
  }
}

class Pouzi {
  public void execute(string name) {
    IUseable item = items.getUseableItem(name);
    // tu napr. nepotrebuješ poznať konkrétny typ toho objektu, stačí ti vedieť, že implementuje rozhranie IUseable... a vieš, že potom má metódu "use"... o to, čo konkrétne má predmet urobí, sa už postará kód v tej metóde use() v správnej triede...
    if (item != null) item.use();
    else throw new InvalidOperationException("tento predmet sa nedá použiť...");
  }
}

keby si tam rozhranie nepoužil, tak by si potreboval niečo takéto (v tej poslednej metóde execute):
Code: [Select]
public void execute(string name) {
  Item item = items.getItem(name);
  if (item instanceof Door) {
    ((Door) item).use();
  }
  else if (item instanceof Window) {
    ((Window) item).use();
  }
  else {
    throw new InvalidOperationException("tento predmet sa nedá použiť...");
  }
}
pre každý predmet vlastný if, vlastné pretypovanie, etc a mal by si množstvo riadkov :)


dá sa to pochopiť? :)

ak nie, kľudne sa pýtaj... konkrétnejšie otázky, ako si to ty predstavuješ, čo presne ti nie je jasné (napr na tom príklade), etc... budem odpovedať... :)

btw, sorry, ak sú chyby (napr. instanceof si nie som istý, či sa tak zapisuje) v tom príklade - javu nepoužívam...
Title: Re: OOP
Post by: Agamemnon on 26.11.2011, 07:05:38
okej, alebo možno ešte jeden príklad...

máš nejaký výpočet... a to, ako sa výsledok vypočíta, závisí od nejakej hodnoty...

napr. chceš určiť množstvo vody vo vedre... a vieš, že vedro jednej farby má iný objem ako vedrom inej farby... tak to vieš urobiť cez rozhrania (sorry za takýto príklad, ale už je jedna po polnoci... :D)
Code: [Select]
interface IBucket {
  double getVolume();
  double getHeight();
  double getWeight();
}

class BlueBucket implements IBucket {
  public double getVolume() { return 2; }
  public double getHeight() { return 0,3; }
  public double getWeigth() { return 1; }
}

class RedBucket implements IBucket {
  public double getVolume() { return 5; }
  public double getHeight() { return 0,7; }
  public double getWeigth() { return 4; }
}

// ďalšie vedrá...

class Algorithm {
  IBucket bucket;
  // premenná je typu IBucket, čím hovoríme, že tam môžu byť rôzne vedrá...

  public void prepare() {
    print("Ake mas vedro (1 - modre, 2 - cervene, ..., 0 - koniec)?");
    int vedro = read();
    switch (vedro) {
      case 1:
        bucket = new BlueBucket();
        break;
      case 2:
        bucket = new RedBucket();
        break;
      ...
    }
  }

  public void calculate() {
    // bla bla... výpočet... bla bla...
    // len tu jednoducho zavoláš tie metódy z rozhrania, lebo vieš, že každé vedro ich implementuje a nezaujíma ťa, že ako, len ťa zaujíma ich výsledok... java správne zvolí, ktorú metódu má zavolať podľa toho, ako si inicializoval premennú bucket...
    print("tvoje vedro má objem " + bucket.getVolume() + " L, výšku " + bucket.getHeight() + "m a váhu " + bucket.getWeight() + "kg.");
  } 

  public void calculateSomethingElse() {
    // opät to môžeš len jednoducho zavolať metódy rozhrania IBucket - keďže premenná je toho typu a triedy implementujú to rozhranie...
    print("súčet všetkých hodnôt je: " + (bucket.getVolume() + bucket.getHeight() + bucket.getWeight()));
  }

  public void calculate3() {
    // a znovu rovnaký princíp požitia... :)
  }
}

okej, primitívnosť v tomto prípade, a asi by to bolo menej písania urobiť cez if priamo vo výpočte (a nie ako je teraz, pri inicializácií)... a teraz si predstav, že máš napr. 15 vedier :) a nejaký zložitý výpočet... prípadne ešte viac rôznych výpočtov... potom by si tých ifov potreboval veľa v mieste každého výpočtu - v každom ife výpočet znovu a znovu, etc... viac kódu, väčšia šanca na chybu, etc... :)

print a read si nevšímaj :) vm, že zápis je iný, ale nechcelo sa mi to hľadať teraz.... myslím, že je jasné, čo som tým chcel povedať :)
opäť neručím za ďalšie chyby so zápisom, keďže javu nepoužívam :)
Title: Re: OOP
Post by: veynom on 26.11.2011, 16:47:58
chcel by som vediet, ci mozem este zmenit nieco v scenari a poslat to znova cviciacemu
Title: Re: OOP
Post by: Eriik on 26.11.2011, 19:03:56
mám menšiu otázku .. v metóde startNewGame() vytvorím nový batoh a zavolám metódu createRooms, ktorá vytvori miestnosti aj s názvami, opismi atď... pomôže niečo keď potom v metóde startNewGame() zavolám metódu System.gc() ? (tá by mala spustiť GC) alebo je to zbytočné ?
Title: Re: OOP
Post by: Agamemnon on 26.11.2011, 20:32:48
chcel by som vediet, ci mozem este zmenit nieco v scenari a poslat to znova cviciacemu

malé zmeny v scenári robiť môžeš... ak chceš prerobiť celý scenár, tak nie...
Title: Re: OOP
Post by: Agamemnon on 26.11.2011, 20:34:07
mám menšiu otázku .. v metóde startNewGame() vytvorím nový batoh a zavolám metódu createRooms, ktorá vytvori miestnosti aj s názvami, opismi atď... pomôže niečo keď potom v metóde startNewGame() zavolám metódu System.gc() ? (tá by mala spustiť GC) alebo je to zbytočné ?

vytvoríš nejaké veci, na ktoré stále máš referenciu a ktoré sa chystáš používať...
načo potrebuješ volať gc, ak si nič nezrušil... resp. takto explicitne volať gc, to fakt potrebuješ zvláštnu situáciu... nerob to :)
Title: Re: OOP
Post by: milaninho on 27.11.2011, 02:57:17
chcel by som vediet, ci mozem este zmenit nieco v scenari a poslat to znova cviciacemu

posli a uvidis ako zareaguje cviciaci :)
Title: Re: OOP
Post by: esperian on 27.11.2011, 15:50:30
ako mam spravit to, ze jeden predmet sa moze dat aj preniest aj pouzit?? cize musi implementovat aj Useable aj Moveable ?

cize malo by to vyzerat nejako takto public class Kluc extends AbstractItem implements Useable implements Moveable

edit akurat ma napadlo, ze co tak vytvorit novy Interface a tam nejako spojit to useable a moveable ? hm ?
Title: Re: OOP
Post by: veynom on 27.11.2011, 17:54:31
chcel by som vediet, ci mozem este zmenit nieco v scenari a poslat to znova cviciacemu

posli a uvidis ako zareaguje cviciaci :)

neodpisal mi este >:(
Title: Re: OOP
Post by: Agamemnon on 27.11.2011, 18:14:05
ako mam spravit to, ze jeden predmet sa moze dat aj preniest aj pouzit?? cize musi implementovat aj Useable aj Moveable ?

cize malo by to vyzerat nejako takto public class Kluc extends AbstractItem implements Useable implements Moveable

edit akurat ma napadlo, ze co tak vytvorit novy Interface a tam nejako spojit to useable a moveable ? hm ?

áno, môžeš vytvoriť interface, kde spojíš Useable a Moveable, ale zbytočne - hlavne, ak nebude pridávať nič nové...

radšej priamo nech tá trieda implementuje obe rozhrania:
len sa to zapisuje cez čiarku a kľúčové slovo implements sa použije len raz...
Code: [Select]
public class Kluc extends AbstractItem implements Useable, Moveable
Title: Re: OOP
Post by: esperian on 27.11.2011, 18:17:37
no super diky moc , skusal som nejake moznosti ale tuto nie  :D :D :D dik
Title: Re: OOP
Post by: Daron on 27.11.2011, 21:39:49
Ak este niekto nema zadanie, napiste mi PM, mam zadanie z minuleho roka, 15€ so vsetkym. Nebudem to pisat sem, aby vas potom mirek nedojebabral, ze to mate kupene :-)
Title: Re: OOP
Post by: xxx3 on 27.11.2011, 22:06:22
a potom zhoda 100%, nie ? :D
Title: Re: OOP
Post by: luko on 27.11.2011, 23:44:47
navody k cviceniam sa trosku zmenili;)
Title: Re: OOP
Post by: esperian on 28.11.2011, 00:37:52
Ahojte,
znova touto cestou by som chcel oznamit, ze cvicenia v Pondelok o 7:30 sa nebudem moct zucastnit, ostatne cvicenia v dany den sa uskutocnia bez zmeny.

Pozrel som obsah 10. cvicenia ktore sme mali preberat, tak nemal by to byt problem naprogramovat aj doma, vsetko potrebne sa uz prebralo. Jedine pri bode 4, pre inspiraciu, odporucam sa pozriet na  operator "instanceof">>>
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html)

Pripadne nezrovnalosti ktore ste doma nezvladli si preberieme na nasledujucom cviceni.

Martin Kapa

dufam ze na tomto tu sa nezmenilo nic ?! ci ? ;D
Title: Re: OOP
Post by: Tren on 28.11.2011, 01:50:18
navody k cviceniam sa trosku zmenili;)
co sa zmenilo?
Title: Re: OOP
Post by: luko on 28.11.2011, 01:57:03
neviem co vsetko....ale mali sme uz urobeny uvod a na dalsie cviko nam povedal ze to binas zmenil......to budu iba detaily....
Title: Re: OOP
Post by: Tren on 28.11.2011, 01:58:47
neviem co vsetko....ale mali sme uz urobeny uvod a na dalsie cviko nam povedal ze to binas zmenil......to budu iba detaily....
jaaaj nestras  :D to bude len ta zmena v kniznici
Title: Re: OOP
Post by: milaninho on 28.11.2011, 03:22:24
Ak este niekto nema zadanie, napiste mi PM, mam zadanie z minuleho roka, 15€ so vsetkym. Nebudem to pisat sem, aby vas potom mirek nedojebabral, ze to mate kupene :-)
staci dat cloveku nieco zmenit v kode a hned sa vie ci to spravil sam alebo si to kupil
okrem toho sa tie zadania kusa zmenili, takze zadanie vo verzii z minuleho roka teraz nema cenu..
Title: Re: OOP
Post by: mirek on 28.11.2011, 15:17:59
ak chcete rozsirovat rozhrania ktore su dane v zadani, nezasahujte do samotnej kniznice, mozte si vytvorit vlastne rozhrania, ktore budu implementovat tieto dane (tzn. ze tam budu mat to co sa od vas chce na zadani), plus do nich si mozete pridat nove metody (ak vam napr nestaci Room.show(UserInterface), tak si vytvorite nove rozhranie a pridate si tam metodu aku chcete, napr. aj Room.show(UserInterface ui, VlastnyParameter p)).
pre toto nie je potrebne vytvarat nove rozhranie. staci tu novu metodu vytvorit v triede Room a pretazit tak povodny show(). rozhrania rozhodne nie su na to, aby vytvarali akusi sablonu pre nove triedy...
Title: Re: OOP
Post by: xxx3 on 28.11.2011, 18: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
Title: Re: OOP
Post by: Agamemnon on 28.11.2011, 19:36:43
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
Title: Re: OOP
Post by: xxx3 on 28.11.2011, 20:09:34
v com nemam podla teba konkretne predstavu ?

Vsak hovorim len o tom, ze v 10. cviku mame doplnit metodu play(), ktora neexistuje, tak ako ju mam doplnit ked ju vobec nemam ?

Mam to dat do init() alebo start() ? Aby potom pri odovzdavani neboli problemy, ze mi tam nieco chyba
Title: Re: OOP
Post by: matus217 on 28.11.2011, 21:05:57
My sme to dnes riesili na cviku a zhodli sme sa na tom ze to treba dopisat do metody init. Ako xxx3 vravi mame dopisat nieco do neexistujucej metody o ktorej nebola nikdy rec. Tak zjavne tam je nejaky preklep, alebo neviem :D
Title: Re: OOP
Post by: xxx3 on 28.11.2011, 21:07:27
dik, presne to som chcel vediet ... zato je tam ten preklep, ze menia scenar pocas semestra
Title: Re: OOP
Post by: Agamemnon on 28.11.2011, 21: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...
Title: Re: OOP
Post by: xxx3 on 28.11.2011, 21:54:11
nechaj tak, nerozumies co som tym chcel povedat
Title: Re: OOP
Post by: Agamemnon on 28.11.2011, 21:57:49
nechaj tak, nerozumies co som tym chcel povedat

praveze ano... ale to je jedno...
zbytocne som reagoval na to :)
Title: Re: OOP
Post by: BlackBerry on 01.12.2011, 18: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??
Title: Re: OOP
Post by: Agamemnon on 01.12.2011, 19:28:27
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...
Title: Re: OOP
Post by: SteLa on 02.12.2011, 18:28:09
co je pravda na tom, ze sa da zadanie odovzdat v januari bez straty bodu?
Title: Re: OOP
Post by: Tren on 02.12.2011, 18:54:12
co je pravda na tom, ze sa da zadanie odovzdat v januari bez straty bodu?
natom je vsetko pravda  :)
Title: Re: OOP
Post by: ppeess on 02.12.2011, 18:58:16
co je pravda na tom, ze sa da zadanie odovzdat v januari bez straty bodu?
natom je vsetko pravda  :)
Len lepsie je zadanie odovzdat este v semestri ako v januari.......
Title: Re: OOP
Post by: SteLa on 02.12.2011, 19:57:16
co je pravda na tom, ze sa da zadanie odovzdat v januari bez straty bodu?
natom je vsetko pravda  :)
Len lepsie je zadanie odovzdat este v semestri ako v januari.......

a staci v 13. tyzdni? :) 
Title: Re: OOP
Post by: Tren on 02.12.2011, 20:06:10
co je pravda na tom, ze sa da zadanie odovzdat v januari bez straty bodu?
natom je vsetko pravda  :)
Len lepsie je zadanie odovzdat este v semestri ako v januari.......
tak viem ze len v 13. tyzdni sa da, buduci tyzden asi este nie, ale niesom si 110% isty  ???

a staci v 13. tyzdni? :)
Title: Re: OOP
Post by: xxx3 on 02.12.2011, 20:16:08
Kapa hovoril, ze v 13. tyzdni mozme odovzdat ked uz budeme mat, ale ze ked nie tak, ze normanle sa da prve 2 tyzdne skuskoveho

Ale hovoril aj, ze opravi uz tie pisomky z 3. a 6. tyzdna do 2 dni (v pondelok) a je piatok a nikde nic :D

Inak neviete ako bude prebiehat odovzdavanie zadania ?
Title: Re: OOP
Post by: SteLa on 02.12.2011, 20:16:33
co je pravda na tom, ze sa da zadanie odovzdat v januari bez straty bodu?
natom je vsetko pravda  :)
Len lepsie je zadanie odovzdat este v semestri ako v januari.......
tak viem ze len v 13. tyzdni sa da, buduci tyzden asi este nie, ale niesom si 110% isty  ???

a staci v 13. tyzdni? :)

ja vobec neviem kedy uz mam v tom zmatok co sa kedy odovzdava^^ Takze super ked v 13.:)
Title: Re: OOP
Post by: paloSK on 03.12.2011, 04:31:30
Kapa hovoril, ze v 13. tyzdni mozme odovzdat ked uz budeme mat, ale ze ked nie tak, ze normanle sa da prve 2 tyzdne skuskoveho

Ale hovoril aj, ze opravi uz tie pisomky z 3. a 6. tyzdna do 2 dni (v pondelok) a je piatok a nikde nic :D

Inak neviete ako bude prebiehat odovzdavanie zadania ?
To ze sa da este prve dva tyzdne skuskoveho, to je aj v skolskom poriadku, ci ze tak by to malo fungovat vsade. A co sa tyka pisomiek nemas jedno ci budu opravene priebezne alebo naraz ? (body budes mat tak ci tak rovnako, ci ze na tom aj tak nic nezmenis).
Odvzdavanie zadani bude prebiehat klasicky, podobne ako na programku.
Title: Re: OOP
Post by: veteran on 03.12.2011, 13:37:28
Kapa hovoril, ze v 13. tyzdni mozme odovzdat ked uz budeme mat, ale ze ked nie tak, ze normanle sa da prve 2 tyzdne skuskoveho
Ktovie, či to platí aj u doc. Tomášeka  :D
Title: Re: OOP
Post by: veteran on 03.12.2011, 13:40:12
Vie mi nejaká dobrá duša vysvetliť, kde je tu chyba?

package Items;
import textgame.Item;

public class Key implements Moveable, Item {
    private String name;
    private String description;
   
    public Key(){
        this.name = "kluc";
        this.description = "popis z moodla";
    }
   
    public String getName(){
        return this.name;
    }
   
    public void setName(String name){
        this.name = name;
    }
   
    public String getDescription(){
        return this.description;
    }
   
    public void setDescription(String description){
        this.description = description;
    }
}


NetBeans mi podčiarkuje ten vyboldovaný červený riadok a píše "interface expected here". Kvôli čomu tam očakáva interface? Tomášek to s nami programoval na cvičení a on tam žiaden interface nepísal. A chybu mu nevypisovalo žiadnu.
Title: Re: OOP
Post by: Agamemnon on 03.12.2011, 17:18:00
Moveable je interface, Item je abstraktná trieda, nie?
implements funguje len s interfacemi, na dedenie tried sa používa extends...
takže:
Code: [Select]
public class Key extends Item implements Moveable

edit: tie settery setName, setDescription tam potrebuješ?
Title: Re: OOP
Post by: bEnd3r on 03.12.2011, 17:40:42
ja som to riesil tak, ze ak je predmet moveable tak class key implements moveable .. pricom interface moveable extends item a ak predmet nie je moveable tak implementuje rovno item
Title: Re: OOP
Post by: Agamemnon on 03.12.2011, 17:49:14
pricom interface moveable extends item

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

item je abstraktná trieda alebo len ďalší interface?
Title: Re: OOP
Post by: Agamemnon on 03.12.2011, 17:50:33
dajte mi linku na tú knižnicu...
Title: Re: OOP
Post by: bEnd3r on 03.12.2011, 19:00:44
item je interface

Code: [Select]
package textgame;

public interface Item extends Named {

    public void setName(String string);

    public void setDescription(String string);
}
Title: Re: OOP
Post by: veteran on 03.12.2011, 19:03:55
dajte mi linku na tú knižnicu...
http://it4kt.fei.tuke.sk/c/oop/resources/The_Indiana_Jones_Project.jar (http://it4kt.fei.tuke.sk/c/oop/resources/The_Indiana_Jones_Project.jar)
Title: Re: OOP
Post by: esperian on 03.12.2011, 19: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
Title: Re: OOP
Post by: xxx3 on 03.12.2011, 21:19:03
tie prednasky nie su niekde na nete aj v slovencine ?

A co ma byt s Kapom v pondelok na bleskovke ? Co tam moze dat nakodit ? ... keby dal nieco z tohto zadania nakodit tak to je dost tazke na papier napisat
Title: Re: OOP
Post by: xxx3 on 03.12.2011, 21:44:45
co ej vlastne polymorfizmus ? Z tych anglickych prednasok som to moc nepochopil .. vie niekto vysvetlit ?
Title: Re: OOP
Post by: Agamemnon on 03.12.2011, 22:05:38
dajte mi linku na tú knižnicu...
http://it4kt.fei.tuke.sk/c/oop/resources/The_Indiana_Jones_Project.jar (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é
Title: Re: OOP
Post by: Agamemnon on 03.12.2011, 22:07:28
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?)
Title: Re: OOP
Post by: Agamemnon on 03.12.2011, 22:08:15
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?
Title: Re: OOP
Post by: xxx3 on 03.12.2011, 22:10:34
je ich viacej ?
Title: Re: OOP
Post by: Agamemnon on 04.12.2011, 16: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é...

Code: [Select]
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:
Code: [Select]
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...
Code: [Select]
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... :)
Title: Re: OOP
Post by: xxx3 on 04.12.2011, 17:07:29
dakujem, pekne si to vysvetlil ... zatial nemam nic tkae, comu by som z tohto nerozumel, mne islo skor o to, ze som nevedel co to je polymorfizmus, teraz uz viem, ze je to to co si tu rozpisal, este raz diky
Title: Re: OOP
Post by: xxx3 on 04.12.2011, 21:21:27
vie niekto co bolo na poslednej prednaske z OP ? Ze co mozem cakat z teorie na pisomke z Kapom .. tie patterny a frameworky uz boli ?
Title: Re: OOP
Post by: BlackBerry on 04.12.2011, 22:27:34
vie niekto co bolo na poslednej prednaske z OP ? Ze co mozem cakat z teorie na pisomke z Kapom .. tie patterny a frameworky uz boli ?
Mna by to tiez velmi zaujimalo bo minuly tyzden nam odpadlo..a nwm co sa mam ucit :/
Title: Re: OOP
Post by: selli1235 on 04.12.2011, 22:30:00
Opravene bleskovky (http://kapa.s.cnl.sk/op2011_0910/) u Kapu ;D
Title: Re: OOP
Post by: xxx3 on 04.12.2011, 22:36:33
haha, on fakt opravil pisomky :D
Title: Re: OOP
Post by: xxx3 on 05.12.2011, 03:18:50
Agamemnon alebo niekto .. nevies nejak jednoducho a strucne vysvetlit co je pattern a framework a aky je medzi nimi rozdiel ?
Title: Re: OOP
Post by: esperian on 05.12.2011, 03:58:21
aj mne by sa to hodilo lebo sa akurat snazim pochopit aky rozdiel je medzi tym ...
------------
dakujeme  ;)
Title: Re: OOP
Post by: Agamemnon on 05.12.2011, 04: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 :)
Title: Re: OOP
Post by: tas on 05.12.2011, 06:38:54
Vie mi nejaká dobrá duša vysvetliť, kde je tu chyba?

package Items;
import textgame.Item;

public class Key implements Moveable, Item {
    private String name;
    private String description;
   
    public Key(){
        this.name = "kluc";
        this.description = "popis z moodla";
    }
   
    public String getName(){
        return this.name;
    }
   
    public void setName(String name){
        this.name = name;
    }
   
    public String getDescription(){
        return this.description;
    }
   
    public void setDescription(String description){
        this.description = description;
    }
}


NetBeans mi podčiarkuje ten vyboldovaný červený riadok a píše "interface expected here". Kvôli čomu tam očakáva interface? Tomášek to s nami programoval na cvičení a on tam žiaden interface nepísal. A chybu mu nevypisovalo žiadnu.

poedal by som ze problem je kdesi v tom Moveable, zrejme to nie je spravene ako interfacem pozrel by som sa najprv na to, potom na import podla balickov, plus je to len detail ale ak to mas podla cviceni dal by som najprv item potom movable, cisto nech to je prehladne.

co sa dalej movable tyka, riesenia boli rozne, ale da sa to jednoducho ako je v cviceniach napisane, prazdny interface pre movable, kazdy predmet implementuje item a ak je prenosny tak aj movable, cim sa ale nijak nemeni. vsetko o co potom ide je v execute getu osetrit aby predmet odstranilo/pridalo z/do tabulky miestnosti/bacpacku podla instanceof.
nie som ziadny expert, takze neviem ci je to najlepsie alebo podobne, ale jednoznacne je to jednoduche

k truhlici, jedna z moznosti je za predpokladu ze ju treba odomknut nejakym klucom, aby execute kluca zmenil meno/popis truhlice a do miestnosti pridal predmety ktore maju byt v truhlici, je to tak trochu zvlastne, ale je to riesenie pre zakladnu sadu prikazov a nevyzaduje ziadne drasticke rozsirenie

k miestnostiam, to je otazka trochu zradna, pretoze teoreticky by sa vsetky miestnosti mali vytvorit v metode createrooms, takze treba pocitat aj s tym, kazdopadne nemyslim ze vytvarat ich za behu je mozne (vzhladom k ich strukture)
Title: Re: OOP
Post by: BlackBerry on 05.12.2011, 14:10:20
Ako si viem PMD spustit cez prikazovy riadok?? ..dakujem ;)
Title: Re: OOP
Post by: veteran on 05.12.2011, 14:20:36

poedal by som ze problem je kdesi v tom Moveable, zrejme to nie je spravene ako interfacem pozrel by som sa najprv na to, potom na import podla balickov, plus je to len detail ale ak to mas podla cviceni dal by som najprv item potom movable, cisto nech to je prehladne.

...
Oukej, vďaka za vysvetlenie. Urobil som to teda podľa návodu (prázdne Moveable). Tomášek to na cvičení programoval trochu ináč - asi som to nestihol celé prepísať, tak mi to nešlo...
Title: Re: OOP
Post by: xxx3 on 05.12.2011, 18: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
Title: Re: OOP
Post by: Agamemnon on 05.12.2011, 18:58:23
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...
Title: Re: OOP
Post by: xxx3 on 05.12.2011, 19: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
Title: Re: OOP
Post by: Agamemnon on 05.12.2011, 19:28:17
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...
Title: Re: OOP
Post by: razer08 on 05.12.2011, 22:38:31
ako zavolam funkciu use(); v triede Use?
Title: Re: OOP
Post by: Agamemnon on 05.12.2011, 22:56:11
ako zavolam funkciu use(); v triede Use?

predpokladám, že predmety implementujú Use...
pretypuj...
Code: [Select]
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?
Title: Re: OOP
Post by: razer08 on 05.12.2011, 23:07:28
ako zavolam funkciu use(); v triede Use?

predpokladám, že predmety implementujú Use...
pretypuj...
Code: [Select]
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?

je interface.urobil som tak ze ((Usable) predmet1).use();
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<
Title: Re: OOP
Post by: Agamemnon on 05.12.2011, 23:14:01
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:
Code: [Select]
game.getBackpack().remove(this);
Title: Re: OOP
Post by: razer08 on 05.12.2011, 23:45:05
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:
Code: [Select]
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
Title: Re: OOP
Post by: selli1235 on 06.12.2011, 02:03:32
Podarilo sa niekomu uz spustit tu pmd kontrolu na windowse??  bu
Title: Re: OOP
Post by: Agamemnon on 06.12.2011, 02:04:46
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:
Code: [Select]
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ň...
Title: Re: OOP
Post by: matus217 on 06.12.2011, 02:46:08
Podarilo sa niekomu uz spustit tu pmd kontrolu na windowse??  bu
Stiahnut ant apache - prvy link v googli. Rozbalit napr. do C:\Ant potom pridat do systemovych premennych path do C:\Ant\bin a este na javu to je C:\Program Files\Java\jdk1.6.0_24\bin   ten jdk je pre kazdeho iny - zavisi od toho aky mate, nekopirujte automaticky to co som napisal :D potom uz len pustit konzolu, nastavit sa do priecinku projektu, a pustit ant pmd. vysledok je vygenerovany v html v priecinku projektu...
Title: Re: OOP
Post by: esperian on 06.12.2011, 03:53:39
pmd hlasi chybu  :baaa:

Buď deklarujte statickú premennú 'list' ako final, alebo sa vyhnite priradeniu jej hodnoty v konštruktore.
Pretypujte deklarĂĄciu (namiesto typu 'ArrayList' pouĹžite rozhranie, ktorĂŠ tento typ implementuje).
nechapem co vlastne odomna chcu xDDD

public class ParserImpl implements Parser{
   
    public static ArrayList<Command> list;

    public static ArrayList<Item> itemS;
   
    ParserImpl(){
    itemS = new ArrayList<Item>();
    list = new ArrayList<Command>();
   
   
    itemS.add(new Trezor());
    itemS.add(new ZlatyKluc());
   
   
   
    };

}

pomohlo  ;)
Title: Re: OOP
Post by: sulo on 06.12.2011, 03:58:49
1. Prečo sú list a itemS statické? Myslím, že tam nie je dôvod používať statické premenné.
2. ArrayList<Command>  --->  List<Command> (List je rozhranie, ArrayList trieda, čo ho implementuje)
Title: Re: OOP
Post by: zaky on 06.12.2011, 06:27:05
ako mate osetrene ak napisete napr len "preskumaj" bez nicoho? pise mi to chyby a nic mi nenapada :/
if (line.toUpperCase().startsWith("PRESKUMAJ"))
        param = line.substring(10);
ptm zavola execute s param co sa rovna stringu zacinajucemu na 10tom mieste, ale ak nenapisem nic tak mi to hadze chyby

a este jedna otazka

ako otvorit pomocou kluca dvere ? tak ze ked dam pouzi kluc tak hned ma to presunie do tej danej miestnosti, viem ze nastavim current room
dal som game.setCurrentRoom(game.getCurrentRoom().getEast()); ale zle :/
Title: Re: OOP
Post by: matus217 on 06.12.2011, 08:26:55
Skus si tam dat nejaku podmienku na styl ze ak je ten substring prazdny, tak to spusti s parametrom "" a ohladom druhej otazky, ja osobne som to riesil tak, ze po pouziti itemu sa akurat nastavia nove exity v miestnosti. Je hlupost volat getEast od currentRoom po pouziti itemu, pretoze tam by si mal mat zablokovany pristup a je to to iste ako keby si len napisal prikay vychod. Proste tam sa nedostanes. Tebe nejde po pouziti itemu o premiestnenie medzi miestnostami, ale o vytvorenie prechodu...
Title: Re: OOP
Post by: zaky on 06.12.2011, 08:31:03
no problem je ze ja mam vo svojom zadani scenara ten scenar skonstruovany tak ze ak dam pouzit kluc tak ma hodi automaticky do dalsej miestnosti, cize nevytvaram prechod ale ozaj sa potrebujem premiestnit, ale ok, uz asi viem jak na to, spravim prechod a hned za tym prikaz na premiestnenie, ale az zajtra :) zatim dik
Title: Re: OOP
Post by: matus217 on 06.12.2011, 08:47:50
Tak v tom pripade si len po pouziti itemu zavolaj setter setCurrentRoom(ktoru chces) a je to  :) np
Title: Re: OOP
Post by: tas on 06.12.2011, 17:35:58
ak chcete za behu hry volat setExits(...,...,...,...), potrebujete sa dostat k miestnostiam ktore tam chcete nastavit, tie sa vytvaraju v createRooms(), poznam ludi co hru rozsirili a tie miestnosti pri vytvarani vkladaju do arraylistu v GameImpl a teoreticky potom k nim maju pristup tadial, inac jedine co ma napada je nejaky mne neznamy sposob javy alebo nieco podobne ako sa k nim dostat, to vam musi povedat niekto skusenejsi (ak nieco take vobec je). no co sa behu tyka nemyslim si ze je najlepsie riesenie vytvorit si jednu miestnost s null vychodmy a vzdy ked chcem niekam dalej prejst vytvarat nove. ja napr. mozne vychody zistujem podla exitov a pride mi zvlastne aby po vchode do miestnosti a rozhliadnuti hra povedala : nevidis ziadne vychody, a davat to priamo do popisu je zasa na moj vkus pracne.
Title: Re: OOP
Post by: Agamemnon on 06.12.2011, 17: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...
Title: Re: OOP
Post by: Agamemnon on 06.12.2011, 17: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...
Title: Re: OOP
Post by: ultimate on 07.12.2011, 01:49:54
nejake napady co by mohlo byt ako vlastne rozhranie s dvoma metodami?
Title: Re: OOP
Post by: xxx3 on 07.12.2011, 02:00:33
mam v scenari napr. prikaz pouzi lano ... a ako spravim to, ze ked to lano v danej miestnosti nepouzijem tak ze sa hra ukonci ? ... mal som to vymyslene tak, ze akoze bude v miestnosti diera a preto musi dat hrac prikaz pouzi lano aby sa dostal cez dieru, inak spadne do diery .. no myslel som, ze to bude len ako v opise miestonsti, ze je tam akoze diera ... len to ma zaujima, ze ako spravim tieto veci, ze sa musi pouzit ten predmet v danej miestonsti inak sa hra skonci lebo akoze zomrie hrac .. alebo jednoducho, ze sa neda pokracovat dalej ked sa nevykona prikaz v danej miestnosti ktory je v scenari .. ze nepusti to do dalsej miestonsti kym sa nevykona ten prikaz
Title: Re: OOP
Post by: Agamemnon on 07.12.2011, 02:59:10
alebo jednoducho, ze sa neda pokracovat dalej ked sa nevykona prikaz v danej miestnosti ktory je v scenari .. ze nepusti to do dalsej miestonsti kym sa nevykona ten prikaz

toto je rovnaká situácia ako s kľúčom a zamknutými dverami... miestnosť nemá východ, kým sa nepoužije predmet... použitie predmetu nastaví východ pre miestnosť...

mam v scenari napr. prikaz pouzi lano ... a ako spravim to, ze ked to lano v danej miestnosti nepouzijem tak ze sa hra ukonci ? ... mal som to vymyslene tak, ze akoze bude v miestnosti diera a preto musi dat hrac prikaz pouzi lano aby sa dostal cez dieru, inak spadne do diery .. no myslel som, ze to bude len ako v opise miestonsti, ze je tam akoze diera ... len to ma zaujima, ze ako spravim tieto veci, ze sa musi pouzit ten predmet v danej miestonsti inak sa hra skonci lebo akoze zomrie hrac ..

napr takto:
miestnosť má flag, či už daný predmet bol použitý... použitie predmetu nastaví tento flag... prekryješ volanie getEast/getWest/etc na miestnosti - tieto metódy prv urobia kontrolu, či bol predmet použitý... ak áno, povolia vyjsť z miestnosti... ak nie, hru ukončia ako Game over a hráč prehral (vypíšeš nejaké info, nvm, napr. spadol si do jamy a nastavíš gamestate, či ako sa to volá na gameover)...
Title: Re: OOP
Post by: Agamemnon on 07.12.2011, 03:01:16
nejake napady co by mohlo byt ako vlastne rozhranie s dvoma metodami?

rozumné interfacei ma momentálne napadajú len k príkazom - v štýle useable, moveable, switchable, talkable, etc... ale to je väčšina s 1 metódou... samozrejme, nezmyselných interfaceov vymyslím kopu - napr. z každej triedy vyexportuješ interface so všetkými jej public metódami a pod. bludy :)
Title: Re: OOP
Post by: xxx3 on 07.12.2011, 03:18:29
ten flag je co vlastne ? .. dam si nejaku premennu, ktorej nastavim napr. hodnotu true ked predmet bol pouzity, inak bude false ?

A tie getWest atd. kde prekryt ? A ako sa da dat taka podmienka, ze if(predmet bol pouzity) then nieco  ... ?
Title: Re: OOP
Post by: Agamemnon on 07.12.2011, 03:45:37
ten flag je co vlastne ? .. dam si nejaku premennu, ktorej nastavim napr. hodnotu true ked predmet bol pouzity, inak bude false ?

A tie getWest atd. kde prekryt ? A ako sa da dat taka podmienka, ze if(predmet bol pouzity) then nieco  ... ?

jj, flag je zvyčajne bool premenná... v tomto prípade je to presne ako popisuješ...

to prekrytie... máš nejakú miestnosť, kde napr. musíš použiť lano... tak v tej miestnosti (a len v nej) prekryješ pôvodnú getWest (pôvodná getWest len vráti miestnosť smerom na západ) tak, aby v tejto jednej miestnosti urobila aj niečo ďalšie...

napr. takto:
Code: [Select]
public class MietsnostKdeTrebaPouzitLano extends RoomImpl {
  private bool wasRopeUsed = false;  // toto je ten flag

  // teraz máš nejakú metódu, ktorá nastaví flag na true - túto metódu zavoláš pri použití lana (use metóda v triede Lano)
  public void ropeUsed() {
    // flag nastavíš len ak lano používaš v správnej miestnosti...
    if (gameimpl.getCurrentRoom().Equals(this)) {
      wasRopeUsed = true;
    }
  }

  @Override
  public Room getWest() {
    if (!wasRopeUsed) {
      gameimpl.EndGame();  // alebo čokoľvek, čo ti dokáže ukončiť hru... nechce sa mi hľadať teraz ako to má byť presne zapísané... snáď si vieš predstaviť, čo tu máš zavolať... alebo throwni exception a tú potom na vhodnom mieste odchyť etc..
    }
    return westRoom;
  }
}
Title: Re: OOP
Post by: xxx3 on 07.12.2011, 04:05:21
hm, len teraz to mame tak, ze v triede GameImpl je metoda createRooms, ktora vytvori vsetky miestnosti a nastavi vychody z miestnosti ... to si mam teraz tu miestnost kde treba pouzit lano spravit zvlast ako triedu a v createRooms vytvorit instanciu tej triedy miesto tej miestnosti ktoru tam mam teraz v createRooms ?
Title: Re: OOP
Post by: Agamemnon on 07.12.2011, 04:35:08
hm, len teraz to mame tak, ze v triede GameImpl je metoda createRooms, ktora vytvori vsetky miestnosti a nastavi vychody z miestnosti ... to si mam teraz tu miestnost kde treba pouzit lano spravit zvlast ako triedu a v createRooms vytvorit instanciu tej triedy miesto tej miestnosti ktoru tam mam teraz v createRooms ?

áno, prečo nie? krásna ukážka na polymorfizmus... oddedíš tú triedu od všeobecnej miestnosti (predpokladám, že na všetky miestnosti máš nejakú všeobecnú triedu RoomImpl alebo také niečo)... a pri používaní nebudeš musieť nič riešiť - budeš ju používať presne ako ostatné miestnosti, len tá trieda sa sama postará o seba, a aby urobila to, čo má urobiť...

edit:
takto si vieš urobiť v podstate akúkoľvek zvláštnu miestnosť... ktorá má robiť nejaké zvláštne veci...

+ nebojte sa predávať dáta tým miestnostiam a predmetom cez konštruktor pri inicializácií... na tom nie je nič zlé...
Title: Re: OOP
Post by: xxx3 on 07.12.2011, 04:44:32
ano, je RoomImpl ako vseobecna miestnost

takze, teraz mam v GameImpl v metode createRooms() toto: (okrem ineho)
Code: [Select]
RoomImpl A = new RoomImpl("A, nachadzas sa v chyzi svarneho suhaja. Na vychode sa nachadzaju dvere veduce z chyze von");
a ked si vytvorim tu miestnost A zvlast, tak budem mat triedu VlastnaMiestnostA, v ktorej spravim to co si pisal vyssie a potom budem mat v GameImpl namiesto riadku, ktory som napisal vyssie, toto?
Code: [Select]
RoomImpl A = new VlastnaMiestnostA("A, nachadzas sa v chyzi svarneho suhaja. Na vychode sa nachadzaju dvere veduce z chyze von");
dobre to chapem, hej ?
inak diky .. zajtra to vyskusam
Title: Re: OOP
Post by: Agamemnon on 07.12.2011, 05:02:21
jj, tak :)
Title: Re: OOP
Post by: tas on 07.12.2011, 08:04:59
k tym tabulkam, vravim ja to tak nerobim, cisto z lenivosti mi to prislo pracne, ja som ked tak uvazoval nad logickym priznakom pre vychod true/false ci sa nim da prejst, no mna sa to netyka lebo ja mam scenar zrieseny nie na zamknute prekazky ale skor fatalne, ktore ked neodstranis, tak hold prehras ( GameState.GAMEOVER a hotovo, neparam sa s tym) koniec koncov hra co sa neda prehrat za vela nestoji.
Title: Re: OOP
Post by: matus217 on 07.12.2011, 08:57:54
tas ty si asi nejaky sadista na styl vyrobcov Dark Souls  ;D
Inak co myslite, vadi ak mam vsetky texty nazvy popisi miestnosti atd bez diakritiky ?
Title: Re: OOP
Post by: mirek on 07.12.2011, 17:41:43
taketo nieco napisal nejaky ucitel ku oblubenym screencastom na http://www.youtube.com/user/StevenCarline#p/u/0/bQqr8rO3y4o (http://www.youtube.com/user/StevenCarline#p/u/0/bQqr8rO3y4o)

ahoj stevo

s oblubou sledujem tvoje screencasty uz od minuleho semestra. len akurat neviem, koho zachranujes tentokrat (zeby tych istych ako vlani?). ked si spomeniem na nase stretko na kofole, tak si hovoril, ze my ucitelia to mame tazke. hmm... v podstate mame ;) pripravit taky material da dost zabrat - aby bol dost zrozumitelny, aby ako celok daval zmysel, aby kazdy jeden scenar daval aj funkcny vysledok a cele to malo hlavu a patu. no a ty svojimi screencastami ukazujes, ze sa nam to cele podarilo - vysledok ma hlavu patu, priebe jednotlivych scenarov takisto, je to funkcne a da sa to spravit. len neviem, ci si uvedomujes, ale ty tym ludom vlastne skodis, pretoze my sa snazime ich naucit rozmyslat, ale ty im ponukas instantne riesenie pre ich problem bez rozmyslania.

niekolko postrehov z predchadzajucich prispevkov tomu dost nasvedcuje:

martivable:
snad sa chapeme, ja to velmi opravit neviem , len som prisiel na chybu

veteran91ke:
P.S.: Vďaka za všetky videá, bez nich by som nemal šancu ;)

a dost ma veteran91ke pobavil hlavne tymto:
odpozeral som tvoj zdroják, porovnal so svojim. Žiaden preklep u seba som nenašiel. Je to vôbec "technicky" možné, že to tebe ide a mne nie a pritom máme zdrojáky rovnaké?

takze - ked to zhrniem, tak ty tych ludi ucis len prepisovat svoj kod z obrazovky. nerozumeju ale tomu, co to vlastne prepisuju.

dost ma vsak zarazil screencast s nazvom Originalita kodu Java, pretoze mi akosi nezapada do tvojho "spasitelskeho" charakteru, kedze v nom ponukas niekolko tipov, ako system "precurat". sam som zvedavy, ako budu niektori nakoniec prekvapeni :-))) totiz zapocet je jedna vec, ale skuska je vec druha. a pred teoretickou castou tie deti caka aj prakticka cast, kde sa budeme snazit overit ich prakticke skusenosti. a pokial ich maju akurat len v prepisovani kodu z obrazovky a nebudu to mat uz v rukach, nuz... nemusi to dopadnut dobre...

nuz - skoda ;) kazdopadne mas moj obdiv - chcelo to hodne casu na to, aby si svoj vysledok este aj prerozpraval a nahral a nezavesil len vysledok. a deti - drzim vam palce, aby ste mali dostatok stastia a nikto (ani overovac vasej originality) si nic podozrive nevsimol, a aby vam stacilo ten kod na zvladnutie tohto predmetu len prepisat, pretoze v realnom zivote si s takymto pristupom vzdy nevystacite.

mirek

p.s. je mi jasne, ze som zly ucitel, pretoze od tych deti nieco realne chcem a im sa nechce, a je mi jasne, ze ty si najlepsi, pretoze im to das zadarmo :-P

p.s.2 kedy ideme na kofolu? :-)
Title: Re: OOP
Post by: tas on 07.12.2011, 17:54:46
tas ty si asi nejaky sadista na styl vyrobcov Dark Souls  ;D
Inak co myslite, vadi ak mam vsetky texty nazvy popisi miestnosti atd bez diakritiky ?
tak zasa nie ze v kazdej miestnosti mozes prehrat, ale moj nazor je, ze pri takejto hre mas 2 moznosti aby nebola priliz jednoducha
1. je to co aplikujem ja, lebo potom si to musis bud nahrat a spravit spravny krok alebo ist od zaciatku
2. moze obsahovat "hadanky", neviem ako to lepsie popisat, ale klasicky priklad je Polda, tusim ze tam sa prehrat nedalo, ale ked si sa na nejakom hlavolame zasekol tak zbohom
pekny priklad je aj Prince of Persia (kto mysli na Sands of Time a podobne, tak sa vratte v case do cca 1989) kde v podstate mas "hadanku" najst spravnu cestu, obcas je prekazka kde mozes "prehrat" ale nakoniec je tam len na spestrenie. a do toho vsetkeho ta tlaci cas

btw. odporucam si tieto hry zahrat, mozno su stare, ale dobre, aj dalsie ako prehistorik, vikings, supaplex a pod. nakoniec je zaujimave aj odkial kam sa da dostat, ale to sem nepatri
Title: Re: OOP
Post by: mirek on 07.12.2011, 17:55:44
Inak co myslite, vadi ak mam vsetky texty nazvy popisi miestnosti atd bez diakritiky ?
nevadi
Title: Re: OOP
Post by: matus217 on 07.12.2011, 17:58:57
tas ty si asi nejaky sadista na styl vyrobcov Dark Souls  ;D
Inak co myslite, vadi ak mam vsetky texty nazvy popisi miestnosti atd bez diakritiky ?
tak zasa nie ze v kazdej miestnosti mozes prehrat, ale moj nazor je, ze pri takejto hre mas 2 moznosti aby nebola priliz jednoducha
1. je to co aplikujem ja, lebo potom si to musis bud nahrat a spravit spravny krok alebo ist od zaciatku
2. moze obsahovat "hadanky", neviem ako to lepsie popisat, ale klasicky priklad je Polda, tusim ze tam sa prehrat nedalo, ale ked si sa na nejakom hlavolame zasekol tak zbohom
pekny priklad je aj Prince of Persia (kto mysli na Sands of Time a podobne, tak sa vratte v case do cca 1989) kde v podstate mas "hadanku" najst spravnu cestu, obcas je prekazka kde mozes "prehrat" ale nakoniec je tam len na spestrenie. a do toho vsetkeho ta tlaci cas

btw. odporucam si tieto hry zahrat, mozno su stare, ale dobre, aj dalsie ako prehistorik, vikings, supaplex a pod. nakoniec je zaujimave aj odkial kam sa da dostat, ale to sem nepatri
Hej hej chapem ta, to boli paradne hry :) Ja som to nejak tak az neriesil ale mam tam tiez niektore chytaky, ze ked pouzijes dany item tak proste smola :D vyvola to smrtelnu reakciu...
Inak co myslite, vadi ak mam vsetky texty nazvy popisi miestnosti atd bez diakritiky ?
nevadi
vdaka  :)
Title: Re: OOP
Post by: xxx3 on 07.12.2011, 18:05:41
mirek .. zas nie kazdy musi len opisovat tie zdrojaky, napriklad ja si to robim sam, ale ked s niecim uz fakt neviem pohnut alebo mi hadze nejake chyby a neviem prist nato co s tym tak sa pozriem do tych tutorialov a pridem na chybu, opravim si a je to ... co je na tom zle ? ... alebo sa niekto moze z toho aj ucit, pozrie si to a potom spravi aj sam
Title: Re: OOP
Post by: matus217 on 07.12.2011, 18:30:58
Ja osobne som pred tymto predmetom nikdy nevidel javu... Tieto videa mi pekne demonstrovali ako to vsetko funguje a pomohli mi lepsie pochopit princip. Zadanie som si cele vypracoval sam, cize originality sa nebojim :). Kazdopadne neviem ci niektore primitivne metody ako  setDescription mozu byt originalne - tam stale musi byt a bude zhoda... Takze na jednu stranu, ak to niekto vsetko skopiroval a hodla to tak odovzdat, tak to naozaj nechapem a naozaj sa nic nenaucia... Na druhu stranu, tiez v tom nevidim problem, ak clovek z videi vycita len system a pochopi fungovanie javy, ako sa tie instancie spravaju, ako sa to vsetko prepaja atd... Pre mna to bola ucebna pomocka :)
Title: Re: OOP
Post by: xxx3 on 07.12.2011, 19:22:11
ved aj pre mna to bola ucebna pomocka ...

ale s tou originalitou ... tam podla mna tie metody budu mat vsetci dost podobne kedze je v scenaroch napisane akym sposobom ich mame implementovat
Title: Re: OOP
Post by: matus217 on 07.12.2011, 19:30:26
ved aj pre mna to bola ucebna pomocka ...

ale s tou originalitou ... tam podla mna tie metody budu mat vsetci dost podobne kedze je v scenaroch napisane akym sposobom ich mame implementovat
hej no ved ako som vravel... tie gettery a settery na meno a opis musia byt rovnake... a ta hlavna kostra metod bude tiez podobna u vacsiny ludi kedze je dane ako ma vyzerat... bude sa lisit akurat telo
Title: Re: OOP
Post by: veteran on 07.12.2011, 19:30:54
a dost ma veteran91ke pobavil hlavne tymto:
odpozeral som tvoj zdroják, porovnal so svojim. Žiaden preklep u seba som nenašiel. Je to vôbec "technicky" možné, že to tebe ide a mne nie a pritom máme zdrojáky rovnaké?

Tak toto som čakal.  ;D

Naozaj si ten "nejaký učiteľ" myslí, že to svojmu cvičiacemu hodím celé skopčené zo screencastu?! Naozaj si myslí, že to (napr. aj ja konkrétne) sledujem len za účelom skopčenia a ľahkého zisku zápočtu?! A to oslovovanie "deti"...

Tak, aby bolo jasné - ja osobne to používam čisto ako učebnú pomôcku, kde je celý postup programovania toho zadania vysvetlený oveľa lepšie, než na cvičeniach. Nakódim si to presne tak, ako to tam je a špekulujem za pomoci Pecinovského knihy (áno, bol som ochotný investovať 50 € do knihy! To je, čo?) ako ináč sa to dá ešte urobiť, príp. prečo práve takto sa to robí... Bez tých screencastov by som mal fakt veľký problém pochopiť niektoré implementácie či funkcionality konkrétne v tomto zadaní. A je to mimochodom aj veľmi dobrá príprava na praktickú časť skúšky. Najprv to celé potrebujem pochopiť, ako to funguje, prečo to tak funguje, nakoľko som ešte 18. septembra 2011 nemal ani páru o Jave. Určite to nie je tak, že si k tomu sadnem a celé to okopírujem do finálnej podoby zadania. Ja naozaj nie som naivný a nemyslím si, žeby mi niečo také prešlo (aj keď ľudia, čo si to myslia, sú...). Len tak mimochodom, tomu zadaniu venujem maximum svojho času - nepomerne viac oproti ostatným predmetom (napr. celé posledné dva víkendy a pondelky to bolo od rána do večera).

Teda ešte inak povedané, screencasty u mňa suplujú cvičenia. Žiaľbohu, ja nie som žiaden génius, ktorý to celé pochopí z prednášok - osobne považujem prednášky z tohto predmetu za zbytočné. Radšej mohli byť dve cvičenia - a nie typu "ta tam na Moodli mate scenar, ta robte". Ja viem, je to VŠ, ale cvičenia takéhoto typu vlastne ani nemusia byť. Bohate stačilo rovno na začiatku semestra vypísať konzultačné hodiny a dovi-dopo...
Title: Re: OOP
Post by: milaninho on 07.12.2011, 22:44:44
aj by som zareagoval ale dochadzaju mi nervy uz..
Title: Re: OOP
Post by: tas on 07.12.2011, 23:01:23
nie ze by som chcel niekoho branit alebo podobne, ale na prednaskach z oop konkretne a doslovne bolo povedane, ze je to predmet kde by sa viac hodili 2 cvicenia miesto cvicenia a prednasky, zaroven bolo olutovane ze sa to neda a zacala prednaska.
co sa screncastu tyka, su tam ludia aj taky aj taky. najdu sa jedinci co to pozru zistia ako co robit sadnu a naprogramuju, ale najdu sa aj taky co pozru a od slova do slova prepisu
nakoniec si treba uvedomit ze sme na odbore kam sa berie vela ludi, sme tu este bez prijimaciek a v state, kde vam vysoku skolu hradi stat. nechcem nikomu krividt, ale na vysky sa tu hlasia a aj dostavaju ludia, co na to nemaju, no ked to je zadarmo preco to nevyskusat.
Title: Re: OOP
Post by: xxx3 on 08.12.2011, 01:40:48
a este nieco: z PMD  Avoid using implementation types like 'ArrayList'; use the interface instead

to akoze nemam pouzivat ArrayList ? Nechapem, mam miesto ArrayList pouzit rozhranie ?? ako sa to da ?
Title: Re: OOP
Post by: Agamemnon on 08.12.2011, 01:54:52
a este nieco: z PMD  Avoid using implementation types like 'ArrayList'; use the interface instead

to akoze nemam pouzivat ArrayList ? Nechapem, mam miesto ArrayList pouzit rozhranie ?? ako sa to da ?

už sa to rozoberalo... používaj to takto:

Code: [Select]
List<String> ls = new ArrayList<String>();
Title: Re: OOP
Post by: xxx3 on 08.12.2011, 02:03:06
dik, skusim

a mam otazku ... ked mam velakrat v scenari "pouzi nieco" tak musi to byt robene tak, ze sa vsetky tieto prikazy MUSIA pouzit ? Alebo mozem to mat aj tak, ze niektore musia byt vykonane a niektore nie ? Ze napriklad ked mam niekde "pouzi mobil" tak mozem to mat aj tak, ze sa to tam nemusi pouzit, ze sa moze len prejst do dalsej miestnosti aj ked to v scenari je ?
Title: Re: OOP
Post by: tas on 08.12.2011, 02:09:52
teoreticky su povolene male zmeny v scenari, druha vec je ako si ten scenar uvazoval, ci to pouzi mobil malo mat nejaky efekt, alebo si to tam daval len koli splneniu podmienok
Title: Re: OOP
Post by: Agamemnon on 08.12.2011, 02:11:23
ak sa pýtaš, či tam môžeš mať predmety, ktoré sú nepotrebné k prejdeniu hry, prípadne sú tam pre zábavu a pod... tak áno...
ak sa pýtaš, či všetky príkazy v scenári musia byť vykonané, aby si prešiel hru... povedal by som, že ak tam budeš mať 1-2 príkazy navyše (ktoré nezabránia prejdeniu hry, ale nie sú nevyhnutné), tak to vadiť nebude... ak tam máš kopu zbytočných vecí typu (sever - juh - sever - juh - server - juh - ...), tak to vadiť bude :) isté zmeny v scenári sú povolené, takže ak z neho vyhodíš jeden príkaz, tak to určite nebude problém...
Title: Re: OOP
Post by: xxx3 on 08.12.2011, 04:25:06
mam problem pri tom prekryti metody getWest ... co som sa pytal vcera ...

dal som tam:
Code: [Select]
public class IzbaSLanom extends RoomImpl{
   
    public boolean wasRopeUsed = false;
    public GameImpl miestnost;
   
   
    public IzbaSLanom(String description){
        super(description);
    }
   
     public void ropeUsed() {
   
    if (miestnost.getCurrentRoom().equals(this)) {
      wasRopeUsed = true;
    }
    }
     
    @Override
    public Room getWest() {
    if (!wasRopeUsed) {
      System.out.println("Nepouzil si Lano");  /
    }
   
    return this.getWest();
  }
 
   
}

A potom v use Lana mam:
Code: [Select]
public GameState use(Game game) {
        if(game.getCurrentRoom().getItem("sekera") != null){
            tato.ropeUsed();
            game.getCurrentRoom().getNorth();
        }
       
        return GameState.PLAYING;
    }

a predtym :
 public IzbaSoSekerou tato;

ale hned ako sa premiestnim do tej miestnosti kde je Lano tak mi vypisuje milionkrat pod seba Ze nepouzil si lano a potom nejake chyby



Title: Re: OOP
Post by: Agamemnon on 08.12.2011, 05:33:24
máš tam rekurziu: return this.getWest();
daj tam return super.getWest();

edit:
premenné triedy by mali byť private... :) z istých filozofických dôvodov :)
Title: Re: OOP
Post by: Cici on 08.12.2011, 07:32:26
Teda ešte inak povedané, screencasty u mňa suplujú cvičenia. Žiaľbohu, ja nie som žiaden génius, ktorý to celé pochopí z prednášok - osobne považujem prednášky z tohto predmetu za zbytočné. Radšej mohli byť dve cvičenia - a nie typu "ta tam na Moodli mate scenar, ta robte". Ja viem, je to VŠ, ale cvičenia takéhoto typu vlastne ani nemusia byť. Bohate stačilo rovno na začiatku semestra vypísať konzultačné hodiny a dovi-dopo...
mirek .. zas nie kazdy musi len opisovat tie zdrojaky, napriklad ja si to robim sam, ale ked s niecim uz fakt neviem pohnut alebo mi hadze nejake chyby a neviem prist nato co s tym tak sa pozriem do tych tutorialov a pridem na chybu, opravim si a je to ... co je na tom zle ? ... alebo sa niekto moze z toho aj ucit, pozrie si to a potom spravi aj sam

A čo tak sa spýtať na cvičení (alebo spolužiaka ktorý to možno vie) keď niečo neviem? Od toho tie cvičenia hádam sú. Teda aspoň s Mirekom je to tak že tie cvičenia sú o otázkach a odpovediach ... Javu som videl prvý krát tiež v septembri, nerobím textovku ale Freda (alternatívne zadanie) takže nemám v podstate žiadny takýto návod, no aj tak som dokázal spraviť skoro všetky veci čo bolo treba a čo som nevedel tak som sa dozvedel na cviku (alebo sme sa o tom bavili na izbe kým sne na niečo neprišli).
Dať niekomu hotovú odpoveď na otázku bez toho aby nad tým musel rozmýšľať je to najhoršie čo môže byť ... programovať sa dá naučiť len tak že nad tým človek bude sedieť až kým nepríde na nejaké riešenie (prípadne s nejakým hintom - ktorý ale len navedie na správnu odpoveď). Kto toto nechápe tak by tu nemal strácať čas a skúsiť niečo iné (k informatike programovanie myslím celkom patrí).

ps: oslovenie deti aj mne kus vadí ... samozrejme že sa necítim byt na rovnakej úrovni ako cvičiaci, ale zase na to že by sa nám v podstate malo vykať (čo sa mi tiež nepáči :D) je to až moc veľký extrém
Title: Re: OOP
Post by: matus217 on 08.12.2011, 08:40:05
Ozaj existuje aj taka moznost dostat viac bodov za zadanie nez 10 ?  ;D Ak je nejake namakane alebo tak ?
Title: Re: OOP
Post by: tas on 08.12.2011, 13:55:08
Teda ešte inak povedané, screencasty u mňa suplujú cvičenia. Žiaľbohu, ja nie som žiaden génius, ktorý to celé pochopí z prednášok - osobne považujem prednášky z tohto predmetu za zbytočné. Radšej mohli byť dve cvičenia - a nie typu "ta tam na Moodli mate scenar, ta robte". Ja viem, je to VŠ, ale cvičenia takéhoto typu vlastne ani nemusia byť. Bohate stačilo rovno na začiatku semestra vypísať konzultačné hodiny a dovi-dopo...
mirek .. zas nie kazdy musi len opisovat tie zdrojaky, napriklad ja si to robim sam, ale ked s niecim uz fakt neviem pohnut alebo mi hadze nejake chyby a neviem prist nato co s tym tak sa pozriem do tych tutorialov a pridem na chybu, opravim si a je to ... co je na tom zle ? ... alebo sa niekto moze z toho aj ucit, pozrie si to a potom spravi aj sam

A čo tak sa spýtať na cvičení (alebo spolužiaka ktorý to možno vie) keď niečo neviem? Od toho tie cvičenia hádam sú. Teda aspoň s Mirekom je to tak že tie cvičenia sú o otázkach a odpovediach ... Javu som videl prvý krát tiež v septembri, nerobím textovku ale Freda (alternatívne zadanie) takže nemám v podstate žiadny takýto návod, no aj tak som dokázal spraviť skoro všetky veci čo bolo treba a čo som nevedel tak som sa dozvedel na cviku (alebo sme sa o tom bavili na izbe kým sne na niečo neprišli).
Dať niekomu hotovú odpoveď na otázku bez toho aby nad tým musel rozmýšľať je to najhoršie čo môže byť ... programovať sa dá naučiť len tak že nad tým človek bude sedieť až kým nepríde na nejaké riešenie (prípadne s nejakým hintom - ktorý ale len navedie na správnu odpoveď). Kto toto nechápe tak by tu nemal strácať čas a skúsiť niečo iné (k informatike programovanie myslím celkom patrí).

ps: oslovenie deti aj mne kus vadí ... samozrejme že sa necítim byt na rovnakej úrovni ako cvičiaci, ale zase na to že by sa nám v podstate malo vykať (čo sa mi tiež nepáči :D) je to až moc veľký extrém

suhlasim.
na druhu stranu k slicku mas take kvantum tutorialov, ze ked to spojis s cviceniami, podla mna nie je mozne aby si to nespravil.
trochu ma tlaci cas tak len v rychlosti: tutoriali treba spravne vnimat, je to moznost ako sa nieco priucit, no treba pochopit aj co je za tym, nie to brat ako kucharku a ist krok po kroku bez toho aby som sa zamyslel preco
Title: Re: OOP
Post by: veteran on 08.12.2011, 14:24:18
Dať niekomu hotovú odpoveď na otázku bez toho aby nad tým musel rozmýšľať je to najhoršie čo môže byť ... programovať sa dá naučiť len tak že nad tým človek bude sedieť až kým nepríde na nejaké riešenie (prípadne s nejakým hintom - ktorý ale len navedie na správnu odpoveď). Kto toto nechápe tak by tu nemal strácať čas a skúsiť niečo iné (k informatike programovanie myslím celkom patrí).
Mne sa na takýchto "skopčených zdrojákoch" učí veľmi dobre. Na takýchto tutoriáloch ("živých príkladoch") som sa pred x rokmi naučil HTML, CSS-ko a čiastočne aj PHPčko i Céčko. Nevidím dôvod, prečo by som to takto nemal robiť aj s Javou, keď to u mňa proste funguje (Len podotýkam, že o existencii tutoriálu na Sokobana v LS som nemal ani potuchy ;)). A nemám pocit, žeby mi sledovanie tutoriálu nejako škodilo, pretože sa aj zamýšľam nad tým, ako to ten človek robí a prečo to tak robí. Nabudúce nech dá Steven doprava hore osemnástku v červenom krúžku...  :D Je to na každom jedincovi, aký systém učenia si vyberie. Každému proste vyhovuje niečo iné, či sa to niekomu páči alebo nepáči...

Ale pokiaľ niekto chce odovzdať kúpené/skopčené zadanie, v poriadku - doplatí na to on - alebo ho odhalí kontrola originality, alebo praktická časť skúšky. Je to výlučne na zodpovednosti každého jedinca a o jeho prístupe k predmetu. Privítal by som, aby neboli všetci hádzaní do jedného vreca a hromadne považovaní za nejakých podvodníkov alebo čo, len preto, že sledujú nejaký tutorial. Nie sme sopľavé dvanásťročné deti, aj keď to, žiaľbohu, niektorí učitelia zjavne takto vidia (a je úplne irelevantné koľko titulov pred či za menom dotyčný človek má. Mňa oslovenie "decko" dosť uráža). Každý sme zodpovední za seba a za svoje konanie. Ak niekto robí podvody, je to jeho vec. Je však na zodpovednosti cvičiacich a skúšajúcich, aby takýchto podvodníkov a špekulantov odhalili (a ja uznávam, že to majú ťažké). Mali by si radšej posvietiť na takých, čo nejakým zázrakom prešli v LS Programovaním a teraz na FJaP či UŠA nemajú páru ani len o základnej syntaxi Céčka...

Asi toľko k tejto téme som mal na srdci.
Title: Re: OOP
Post by: tino8 on 08.12.2011, 14:27:13
ci boha, to nemyslite vazne ze este aj k dost podrobnemu navodu niekto nahral video kde to este viac vysvetluje  :ohmygod:

...
aha takze ak v svojom buducom zamestnani budes musiet pouzivat niejaku technologiu ktoru este nepoznas tak budes hladat rozpravky na youtube? alebo este lepsie, ak bude treba nieco nove navrhnut tak tiez youtube?
Title: Re: OOP
Post by: veteran on 08.12.2011, 14:52:19
aha takze ak v svojom buducom zamestnani budes musiet pouzivat niejaku technologiu ktoru este nepoznas tak budes hladat rozpravky na youtube? alebo este lepsie, ak bude treba nieco nove navrhnut tak tiez youtube?
Táto otázka by bola na mieste, ak by som to z tutoriálu celé skopíroval a ďalej to neriešil. Čo môj prípad ale nie je... Mne to slúži ako učebný materiál - akurát to nemá formu knihy, ale videa. Mimochodom, doc. Tomášek na cvičeniach programuje úlohu po úlohe a vysvetľuje to, čo programuje. Tiež sú to "rozprávky"? Alebo to radšej nemám sledovať, aby mi to náhodou "neškodilo"? Je to v podstate to isté, akurát nečumím na monitor, ale na stenu.
Title: Re: OOP
Post by: tino8 on 08.12.2011, 15:17:20
je rozdiel medzi ukazanim principu na priklade a naprogramovanim celeho zadania na videu... a z vlastnych skusenosti viem ze je lepsie nieco vymysliest/vytvorit sam ako to vidiet hotove a pochopit tomu.
Title: Re: OOP
Post by: veteran on 08.12.2011, 15:35:34
je rozdiel medzi ukazanim principu na priklade a naprogramovanim celeho zadania na videu...
Tomášek programuje zaradom všetko podľa návodu (okrem doplňujúcich úloh). A popri tom vysvetľuje. Samozrejme, je to podstatne zrýchlenejšie, než na videu. A samozrejme, že to často programuje ináč, čiže aj na tom sa dá veľa vecí pochopiť.

a z vlastnych skusenosti viem ze je lepsie nieco vymysliest/vytvorit sam ako to vidiet hotove a pochopit tomu.
Tak ja mám asi iné skúsenosti... Ja si pozriem video, pozriem si, čo sa robilo na cvičení, k tomu si zapnem návod a otvorím knihu a robím a špekulujem. Dá sa to len tak? Dá sa to aj ináč? Musí to byť práve takto? A to video mi strašne pomáha. Najmä vtedy, ak som niečomu na cvičení vôbec neporozumel. To je môj systém práce. Ak sa niekomu nepáči, ja to rešpektujem a nemám s tým problém. Privítal by som, aby bol rovnako rešpektovaný aj môj systém práce.

Opakujem ešte raz, ak by som zaradom flákal cvičenia, pozrel si iba to video, celé to skopčil a tváril sa spokojne, nepovedal by som ani slovo na tie "obvinenia" (alebo ako to nazvať) uvedené vyššie. Ale ja takto rozhodne nepostupujem, preto mám pocit, že som bol neprávom vhodený do vreca s ľuďmi, ktorí to len okopírujú, nemajú ani páru, čo píšu a dajú kamarátovi za jedno pivo niečo pomeniť a dokódiť, aby prešli originalitou. A to si píšte, že takí sú. A ak nebudú odhalení teraz na zápočte, tak celkom určite na skúške. Aspoň v to dúfam.
Title: Re: OOP
Post by: paloSK on 08.12.2011, 16:45:52
Veteren, ak je pravda vsetko co pises, tak mi takyto comment na yt nedava zmysel.
Quote
Tu na videu, keď si to na konci spustil, išlo ti to OK (aj uloženie, aj načítanie). Ja mám všetky triedy i metódy urobené úplne rovnako a keď načítavam uložený súbor, vypisuje mi chybu. Tento posledný tutoriál som pozeral už 4× - odpozeral som tvoj zdroják, porovnal so svojim. Žiaden preklep u seba som nenašiel. Je to vôbec "technicky" možné, že to tebe ide a mne nie a pritom máme zdrojáky rovnaké?

PS: To len mne jedinemu nevadi oslovenie dieta ?  ap
PS2: Tomu ze budu na skuske odhaleny vsetci co si zadanie nerobili sami, nech nikto neveri !

PS3: Sorry ze som sa votrel do tejto diskusie.
Title: Re: OOP
Post by: veteran on 08.12.2011, 16:53:22
Veteren, ak je pravda vsetko co pises, tak mi takyto comment na yt nedava zmysel.
Quote
Tu na videu, keď si to na konci spustil, išlo ti to OK (aj uloženie, aj načítanie). Ja mám všetky triedy i metódy urobené úplne rovnako a keď načítavam uložený súbor, vypisuje mi chybu. Tento posledný tutoriál som pozeral už 4× - odpozeral som tvoj zdroják, porovnal so svojim. Žiaden preklep u seba som nenašiel. Je to vôbec "technicky" možné, že to tebe ide a mne nie a pritom máme zdrojáky rovnaké?
Už som to písal vyššie. Urobil som si to presne tak, ako na videu a mám aj niečo z cvičení, čo sme robili s Tomášekom. A sledujem, porovnávam, ako je čo urobené, aké iné varianty môžu byť, resp. prečo práve tak to musí byť, apod.

V tamtom konkrétnom prípade mi blblo to čítanie zo súboru. Preto som chcel vedieť, ako je to možné, že to mám bokom naprogramované celé rovnako a mne to nejde. Či môže byť chyba v knižnici (či v nej nebola nejaká zmena) alebo či je problém inde... Snažil som sa prísť na to, kde je problém... Ale preboha ne(s)kopčím to celé do finálnej podoby zadania.

Nabudúce tam asi o tom napíšem nejakú tritisíc znakovú esej, aby sa to nedalo vytrhávať z kontextu a príp. aby si niekto domýšľavý nemohol čo-to podomýšľať podľa vlastného gusta... A ešte: No offence, ale kopírovať komenty z iných stránok poza chrbát dotyčného za účelom "zarážania" sa nad jeho "konaním" bez toho, aby si dotyčný kopírujúci overil, ako to bolo myslené, mi pripadá mimoriadne neseriózne. Takto som bol vykreslený ako posledný blb, podvodník a "rozvracač systému" a ešte aj ako "malé decko"...

Neviem, no, pripadám si už ako Marťan. Je na takomto postupe riešenia zadania niečo zlé?  ???
Title: Re: OOP
Post by: paloSK on 08.12.2011, 17:02:39
Quote
Neviem, no, pripadám si už ako Marťan. Je na takomto postupe riešenia zadania niečo zlé?
Nie nie, vsetko je ok. prepac ;)
Title: Re: OOP
Post by: xxx3 on 08.12.2011, 17:07:41
Agamemnon, diky .. to ma nenapadlo, dat tam super :D

Ale som zistil, ze este je chyba aj inde, ked dam prikaz "pouzi lano" furt mi vypisuje, ze Nepouzil si lano ked dam rozhliadni sa

zmenil som Use takto:
Code: [Select]
public GameState use(Game game) {
        if(game.getCurrentRoom().equals(tato)){
            tato.ropeUsed();
            game.getCurrentRoom().getWest();
           
        }
       
        return GameState.PLAYING;
    }

skusal som spustit debugger a vyzera to tak, ze ta podmienka v Use sa vyhodnoti ako false, takze k tato.ropeUsed(); sa vobec nedostane program ... ako spravit tu podmienku aby sa vyhodnotila kladne ked som v tej miestnosti IzbaSoSekerou ?

// a ked tam nedam podmienku, aby som sa dostal k tato.ropeUsed(); tak mi vyhodi chybu java.lang.NullPointerException
Title: Re: OOP
Post by: matus217 on 08.12.2011, 17:32:46
Skus si ten tvoj override getWest upravit ze ked nie je pouzity item tak nech ti vrati null miestnost, a az ked je pouzite tak cez else super getWest... a v tom use nemusis narabat s current miestnostou. Bud, alebo v tom use nastav rovno currentroom na getWest room. Snad pochopis to co som napisal :D
Title: Re: OOP
Post by: xxx3 on 08.12.2011, 17:37:59
no velmi som to nepochopil co si napisal :D ... skor potrebujem zistit ako zavolat tu metodu ropeUsed() z triedy IzbaSoSekerou ... lebo hadze mi to tam NullPointerException

kedze premenna "tato" je zrejme null ... tak preto to hadze tu chybu .. ale co s tym ?

// vyriesil som to teda nejak pretypovanim, snad to bude OK
Title: Re: OOP
Post by: matus217 on 08.12.2011, 17:50:32
jj treba to pretypovat na triedu tej tvojej miestnosti s ktorou toto vystrajas :D
Tiez som vcera nad tym rozmyslal a takto to ide v pohode. Lebo ked pretypujes tak mozes pristupovat potom k metodam tej danej triedy, cize si spustis ten check...
Title: Re: OOP
Post by: xxx3 on 08.12.2011, 17:55:57
no hej, presne ... nato som nevedel prist :D ... nastastie ma to napadlo a moze mpokracovat dalej so zadanim .. kurnik blby scenar som si teda vymyslel xD
Title: Re: OOP
Post by: matus217 on 08.12.2011, 18:00:25
hehe  :) ja som nemal v scenari nic taketo, zato som ale na podobny styl pridal usmrcovadla aby som mohol pouzit viacej krat GameState.GAMEOVER  ;D predsa len to je potom vacsia sranda...
Title: Re: OOP
Post by: xxx3 on 08.12.2011, 18:09:12
a da sa nejak prekryt prikaz na pohyb napr. na  vychod ?

Lebo potreboval by som to spravit tak, ze ked som v miestnosti napr. so zombie tak ked nedam prikaz pouzi mec ale dam prikaz na pohyb na niektory smer tak sa hra skonci lebo som zomrel

Alebo ako spravit takyto pripad, ze chcem skoncit ked sa nieco nevykona ?
Lebo toto co som robil teraz je zle kvoli tomu, ze ked prekryjem napr. getWest tak hned ako vojdem do miestnosti kde mam nieco pouzit tam by mi to skoncilo, lebo pri pohybe do tej miestnosti sa vola getWest pri vypise moznych vychodov ... a ja potrebujem aby sa mi hra ukoncila nie hned ked vojdem do tej miestnosti ale az ked chcem ist z nej dalej bez pouzitia predmetu
Title: Re: OOP
Post by: matus217 on 08.12.2011, 18:27:46
Zatial ma nenapadlo ako nastavit gamestate v tej metode. Ja osobne som to riesil cez podmienky v prikazoch na pohyb s pouzitim nejakeho checku. Nie velmi elegantne riesenie, ale aspon funkcne...
Title: Re: OOP
Post by: mirek on 08.12.2011, 18:28:41
mirek .. zas nie kazdy musi len opisovat tie zdrojaky, napriklad ja si to robim sam, ale ked s niecim uz fakt neviem pohnut alebo mi hadze nejake chyby a neviem prist nato co s tym tak sa pozriem do tych tutorialov a pridem na chybu, opravim si a je to ... co je na tom zle ? ... alebo sa niekto moze z toho aj ucit, pozrie si to a potom spravi aj sam
hned ti poviem, co je na tom zle. je bezne, studenti nevedia citat chybove hlasky a vyvodit z nich zaver. najcastejsi priklad je null pointer exception. ak je tvoj postup taky, ze to ohodnotis ako "stala sa chyba" a podla teba "to mas dobre", tak svoj problem vyriesis pohladom do hotoveho riesenia. ty si tym padom nevyriesil pricinu, pretoze jej nerozumies, ale vyriesil si nasledok, pretoze ho niekto vyriesil za teba. co ak budes nabuduce riesit nieco, kde opat dojde ku null pointer exception, ale uz k tomu nebude existovat ziadny screencast na youtube? kto to vyriesi za teba?
Title: Re: OOP
Post by: matus217 on 08.12.2011, 18:31:03
S tymto suhlasim... Clovek sa najlepsie priuci a pochopi to ked sa snazi opravit sam chybu.. Jednu chybu v parseri som opravoval 2 dni :D Ale od vtedy som ju uz nezopakoval, tak snad to bolo k niecomu dobre :)
Title: Re: OOP
Post by: mirek on 08.12.2011, 18:38:43
Ja osobne som pred tymto predmetom nikdy nevidel javu... Tieto videa mi pekne demonstrovali ako to vsetko funguje a pomohli mi lepsie pochopit princip.
Na druhu stranu, tiez v tom nevidim problem, ak clovek z videi vycita len system a pochopi fungovanie javy, ako sa tie instancie spravaju, ako sa to vsetko prepaja atd... Pre mna to bola ucebna pomocka :)
aj pred tebou boli ludia, ktori predtym nikdy nevideli javu a zvladli to (dokonca aj stevo je taky pripad, ze jeho programatorsku karieru nastartoval az karel a je jasnym dokazom toho, ze sa to naucit da ;).

ak vsak chces z videi vycitat len system a pochopit fungovanie javy, preco nepozeras ine videa? napriklad java programming tutorial? preco necitas odporucanu literaturu alebo java sun tutorial? je mi to jasne, pretoze ziadny z tychto materialov neriesi zadanie, ktore mas odovzdat a za ktore mas byt ohodnoteny. napriklad je mi zvlastne, ze sa tu nikde neobjavili ine textovkove screencasty a dokonca po cesky. sak na co hladat, ked stevo vyriesil konkretny vas problem, ze?

o ferovosti sa tu rozpisovat netreba - su ludia, ktori to cele urobili sami a stavili nad tym more casu. a su ludia, ktori to len prepisali. hodnoteni budu ale rovnako. hmm... ti, co to len prepisali, su asi sikovnejsi, lebo lepsie vyuzili cas a nestracali ho so zbytocnostami...
Title: Re: OOP
Post by: matus217 on 08.12.2011, 18:51:59
Ja osobne som pred tymto predmetom nikdy nevidel javu... Tieto videa mi pekne demonstrovali ako to vsetko funguje a pomohli mi lepsie pochopit princip.
Na druhu stranu, tiez v tom nevidim problem, ak clovek z videi vycita len system a pochopi fungovanie javy, ako sa tie instancie spravaju, ako sa to vsetko prepaja atd... Pre mna to bola ucebna pomocka :)
aj pred tebou boli ludia, ktori predtym nikdy nevideli javu a zvladli to (dokonca aj stevo je taky pripad, ze jeho programatorsku karieru nastartoval az karel a je jasnym dokazom toho, ze sa to naucit da ;).

ak vsak chces z videi vycitat len system a pochopit fungovanie javy, preco nepozeras ine videa? napriklad java programming tutorial? preco necitas odporucanu literaturu alebo java sun tutorial? je mi to jasne, pretoze ziadny z tychto materialov neriesi zadanie, ktore mas odovzdat a za ktore mas byt ohodnoteny. napriklad je mi zvlastne, ze sa tu nikde neobjavili ine textovkove screencasty a dokonca po cesky. sak na co hladat, ked stevo vyriesil konkretny vas problem, ze?

o ferovosti sa tu rozpisovat netreba - su ludia, ktori to cele urobili sami a stavili nad tym more casu. a su ludia, ktori to len prepisali. hodnoteni budu ale rovnako. hmm... ti, co to len prepisali, su asi sikovnejsi, lebo lepsie vyuzili cas a nestracali ho so zbytocnostami...
Tak ked uz sme pri tom, tak pozeral som aj ine videa, a cital som aj odporucanu literaturu. Konkretne stevove videa som mal ako ucebnu pomocku, ktora nebola JEDINA. Kvoli zadaniu chodim spavat posledne dva tyzdne o stvrtej rano. Tak dufam ze sa mi investovany cas aj nalezito zuroci...
Title: Re: OOP
Post by: sulo on 08.12.2011, 19:33:59
jedna trieda nemoze dedit z dvoch tried ?

V Jave nie. Väčšinou na to ani nie je dôvod. Ak potrebuješ z niektorej triedy len funkcionalitu, použi kompozíciu (daj to triedy členskú premennú typu, ktorý potrebuješ).

Ak predsa len potrebuješ rozhrania (nie iba funkcionalitu) oboch tried, čiže je nutné, aby sa výsledná trieda dala pretypovať na obidva typy, vytvor z jednej z nich rozhranie. Toto rozhranie bude potom výsledná trieda implementovať. A na samotnú implementáciu použi opäť napr. kompozíciu.
Title: Re: OOP
Post by: Agamemnon on 08.12.2011, 19:43:14
Tak ked uz sme pri tom, tak pozeral som aj ine videa, a cital som aj odporucanu literaturu. Konkretne stevove videa som mal ako ucebnu pomocku, ktora nebola JEDINA. Kvoli zadaniu chodim spavat posledne dva tyzdne o stvrtej rano. Tak dufam ze sa mi investovany cas aj nalezito zuroci...

mas konkurencnu vyhodu pri prijimani do zamestnania, lebo tomu budes rozumiet (bez tohto mozes robit php web stranky... tam netreba nicomu rozumiet... pri php je prekazka, ak tomu rozumies... hehe :D ano, nemam rad objektove php, to je omyl a zvrhlost :))... plus budes mat skusenost s tym, ako sa ucit novy jazyk, co tiez vies vyuzit...
Title: Re: OOP
Post by: Agamemnon on 08.12.2011, 19:47:56
xxx3:
najskor prehod tie checky do prikazov na pohyb (mozno nejaky superclass, v ktorom to budes mat zjednotene alebo tak...)...
hmm, alebo to mozes implementovat do setCurrentRoom :) odtial zavolas kontrolu nad miestnostou, z ktorej prave odchadzas, ci z nej mozes odist... nieco na styl validacie, povedzme... a potom nastavis gamestate podla toho... nieco take :) toto je asi lepsie, jednoduchsie :)
Title: Re: OOP
Post by: matus217 on 08.12.2011, 19:50:48
To Agamemnon: Stranky ma nikdy nezaujimali a ani na to nemam esteticke citenie :D A vdaka za povzbudive slova :)
Title: Re: OOP
Post by: mirek on 08.12.2011, 20:02:29
Tak, aby bolo jasné - ja osobne to používam čisto ako učebnú pomôcku, kde je celý postup programovania toho zadania vysvetlený oveľa lepšie, než na cvičeniach.

tu by som len podotkol, ze slovo cvicenie ma zaklad v slove cvicit a nie vysvetlovat. podstata cviceni by mala byt v precvicovani vysvetleneho na prednaskach a konzultovani vzniknutych nejasnosti a nie v znovuvysvetlovani toho, co bolo vysvetlene na prednaskach, pretoze niekto na prednasky nechodi.

na mojich cviceniach sa snazim, aby ste rozumeli, co mate robit. preto vzdy kazde cvicenie zacina analyzou problemu, ktory ma byt vyrieseny. preto ju robime spolu na tabuli. preto ta analyza obsahuje kopec otazok odo mna voci vam, pretoze chcem, aby ste rozmyslali a videli suvislosti. objektove programovanie nie je ani tak o tom kodeni, ako o tom navrhu.

a špekulujem za pomoci Pecinovského knihy (áno, bol som ochotný investovať 50 € do knihy! To je, čo?)

uz len tak veselo dodam, ze - mam z teba radost ;)

Bez tých screencastov by som mal fakt veľký problém pochopiť niektoré implementácie či funkcionality konkrétne v tomto zadaní. A je to mimochodom aj veľmi dobrá príprava na praktickú časť skúšky. Najprv to celé potrebujem pochopiť, ako to funguje, prečo to tak funguje, nakoľko som ešte 18. septembra 2011 nemal ani páru o Jave. Určite to nie je tak, že si k tomu sadnem a celé to okopírujem do finálnej podoby zadania.
ja mam zasa velmi rad relaciu bez servitky. tiez nemam velmi paru o tom, ako dobre a kvalitne varit. kolko casti mi odporucis napozerat, aby som sa mohol dostatocne pripravit na prakticke varenie a pochopil cely princip varenia?
Title: Re: OOP
Post by: xxx3 on 08.12.2011, 20:05:29
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...

este na toto by som sa chcel spytat ... mam v createRooms napr. vytvorenu miestnost: RoomImpl Miestnost5 = new RoomImpl("M5","Si v miestnosti 5")

A potom ju ako mozem predat ako parameter konstruktora predmetu ? Nechapem. V konstruktore predmetu je napr.: 
Code: [Select]
public Key(){
        super("kluc","Stary zhrdzaveny kluc");
    }
kedze dedi od AbstractItem:
Code: [Select]
public AbstractItem(String name, String description){
        this.name = name;
        this.description = description;
    }

Nevysvetlili by ste niekto blizsie ako si predat neiktoru konkretnu miestnost cez ten konstruktor ?

Title: Re: OOP
Post by: Agamemnon on 08.12.2011, 20:08:24
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...

este na toto by som sa chcel spytat ... mam v createRooms napr. vytvorenu miestnost: RoomImpl Miestnost5 = new RoomImpl("M5","Si v miestnosti 5")

A potom ju ako mozem predat ako parameter konstruktora predmetu ? Nechapem. V konstruktore predmetu je napr.: 
Code: [Select]
public Key(){
        super("kluc","Stary zhrdzaveny kluc");
    }
kedze dedi od AbstractItem:
Code: [Select]
public AbstractItem(String name, String description){
        this.name = name;
        this.description = description;
    }

Nevysvetlili by ste niekto blizsie ako si predat neiktoru konkretnu miestnost cez ten konstruktor ?

to, ze nieco dedi od inej triedy, neznamena, ze nemoze mat vlastne parametre v konstruktore... takisto to moze mat viac konstruktorov...
Code: [Select]
public class Key extends AbstractItem {
  public Key(RoomImpl miestnost) {
    this.miestnost = miestnost;
    super(...);
  }
}
Title: Re: OOP
Post by: xxx3 on 08.12.2011, 20:16:40
dakujem
Title: Re: OOP
Post by: mirek on 08.12.2011, 20:18:38
toto je hlavne pre steva, kedze mi na jeho kanali stale youtube odstranuje prispevky. hmm... asi som uz riadny spammer

ahoj

odpoviem pomedzi riadky ;)

"Ja osobne si myslim, ze im pomaham"
ja som nenapisal, ze im nepomahas. ano - ty im pomahas. oni dostali ulohu a ty ju riesis za nich. jasne, ze je to lepsie, ako keby to od niekoho kupili - vdaka tebe usetria.
ja som napisal, ze im skodis. oni sa na zaklade tohto zadania maju nieco naucit. maju si nad tym zadanim odsediet niekolko hodin, vyskusat popularnu metodu hop-trop (pokus-omyl), aby porozumeli tomu, preco sa to vsetko sprava tak, ako sa sprava. vdaka tomu, ze im ponuknes svoje riesenie, tak patrat a skusat nemusia. nestravia nad tym tolko casu, ktory by nad tym inac stravit museli. a v podstate to cele "nepreziju" na vlastnej kozi.

"Viem ze sa snazite o to, aby rozmyslali trochu ale najprv ich treba nieco naucit aby pochopili zakladne principy (nie vsetci davaju pozor na prednaske). "
a kedy ich to mame naucit, ked ty im davas rovno riesenie na problem, pomocou ktoreho by sa to naucit mali? kedy si maju osvojit zaklady algoritmizacie a zaklady programovania ako takeho, ked si zadanie v prvaku vyriesil za nich? kedy si vyskusaju, ako to s tymi objektami a vztahmi medzi nimi je, ked aj tuto skusenost, ktoru by mali nadobudnut sami, za nich preskocis? vzdy na zaciatku cvik im zvyknem povedat, ze programovat sa nenaucia len z pozerania. ja napriklad velmi casto pozeram relaciu bez servitky, ale nemozem povedat, ze som vdaka nej lepsi kuchar.

"A potom ked aspon zcasti rozumeju zakladnym veciam, tak mozu doprogramovat aj nejake svoje veci."
a tu je mozno ukryte jadro celeho problemu - staci rozumiet alebo treba vediet pouzit?

pozri sa - poviem to veselo - vymysli si vlastny projekt, na ktorom im budes demonstrovat principy cohokolvek - ci uz jazyka alebo technologie. skus si pripravit screencasty napriklad na nejaky adresar kontaktov alebo bankomat alebo akykolvek iny killer example. myslis si, ze potom bude tvoj kanal taky popularny, ako je teraz? urcite nie. ich to nebude zaujimat, pretoze oni nemaju robit ziadny adresar kontaktov ani ziadny bankomat. oni maju spravit textovku. to je jedno, ze im davame k dispozicii kadejake fajne materialy. oni ich nepotrebuju, pretoze v nich nie je "jasne" napisane, ako to maju vyriesit. kedze im davas cele riesenie, tak ich nenaucis ani len citat dokumentaciu (ku jdk). a toboz uz nie cokolvek, co je napisane v anglictine... dokonca som prekvapeny, ze nikto neobjavil ine screencasty, ako sa taka textovka robi (a dokonca po cesky). a mozno o tom len neviem. si popularny, pretoze riesis konkretny problem za nich.

po minule roky to napriklad vyzeralo tak, ze som bezne zachytil konverzaciu niekolkych skupin studentov na prednaskach z inych predmetov, kde riesili denne problemy z textovky. dnes? je normalne, ze na mojich cvikach riesia zadania z usa alebo z niecoho ineho. v jednej skupine je pravidelne ticho, pretoze sa nevedia ani len opytat na nejaky problem (asi im to vysvetlis lepsie alebo ziadny problem nemaju). mna nebavi robit policajta, ale zalezi mi na tom, aby sa tie deti daco naucili. ucitel totiz moze byt akolkolvek dobry, ale ak jeho studenti na to kaslu, tak je to len strata casu a vynalozeneho usilia.

uz hadam nemam, co by som k tomu viac dodal. sam mi davas za pravdu v poslednom svojom odstavci, kde pises:

"pomoze vam to za predpokladu, ze sa budete snazit tomu aspon trochu porozumiet"

aby ste si nemysleli, ze vas vsetkych hadzem do jedneho vreca - to som nikdy nerobil. je mi jasne, ze su slabsi a su sikovnejsi. len mi je luto, ze ti slabsi sa snazia dosiahnut na kvalitu sikovnejsich necestne. a mrzi ma, ak niekto, kto sa nadrie a vynalozi velke usilie na dosiahnutie vysledku, je ohodnoteny rovnako (a obcas aj horsie) ako niekto, kto na to vynalozil slabe az ziadne usilie. nuz - "sikovnym" patri svet...

mirek
Title: Re: OOP
Post by: Stardox on 08.12.2011, 20:40:43
Ahojte, som tu zas.  :)

1.) V hre mam herne menu, ale v scenari, ktory sme odovzdavali, som s tym nepocital, mozem teda pridat do scenara, tlacidlo na spustenie hry?
2.) Mozem mat v hernom menu ponuku "Nacitaj hru"? Cize ulozenu poziciu bude mozne loadnut iba z herneho menu.
3.) Ak mam v scenari napriklad takyto prikaz "POUZI CAKAN NA SKALA" je teda mozne, aby som si ten prikaz v scenari upravil len na "POUZI CAKAN". Podobny problem mam aj s truhlickami, pocital som s tym, ze niektore truhlice/krabice uz budu automaticky odomknute, ale aby sme sa dostali k ich obsahu treba zavolat prikaz "PRESKUMAJ TRUHLICA" a az potom sa predmety objavia, mam to riesit pomocou prekrytia, alebo mozem kludne zmenim  v scenary PRESKUMAJ->OTVOR?

Ty.
Title: Re: OOP
Post by: mirek on 08.12.2011, 20:47:42
1.) V hre mam herne menu, ale v scenari, ktory sme odovzdavali, som s tym nepocital, mozem teda pridat do scenara, tlacidlo na spustenie hry?
uspesny scenar nema nic spolocne s uvodnym menu. takze ziadne tlacidlo na spustenie hry nepotrebujes do scenara pridavat. ani pripisovat, ako to vlastne cele spustit a kam kliknut. alebo ako startnut pocitac ;)

2.) Mozem mat v hernom menu ponuku "Nacitaj hru"? Cize ulozenu poziciu bude mozne loadnut iba z herneho menu.
mozes

3.) Ak mam v scenari napriklad takyto prikaz "POUZI CAKAN NA SKALA" je teda mozne, aby som si ten prikaz v scenari upravil len na "POUZI CAKAN". Podobny problem mam aj s truhlickami, pocital som s tym, ze niektore truhlice/krabice uz budu automaticky odomknute, ale aby sme sa dostali k ich obsahu treba zavolat prikaz "PRESKUMAJ TRUHLICA" a az potom sa predmety objavia, mam to riesit pomocou prekrytia, alebo mozem kludne zmenim  v scenary PRESKUMAJ->OTVOR?

tvar prikazu moze byt aj v tvare, ktory pouzivas ty. je to zaujimave rozsirenie navyse.
ak chces "otvorenie" resp. "objavenie" veci vyriesit prikazom preskumaj, kludne mozes. potrebujes ale par riadkov (a mozno aj jedno rozhranie) napisat navyse.
Title: Re: OOP
Post by: Stardox on 08.12.2011, 21:11:32
Vdaka za reply, uvidime ako to pojde s cislom 3.
Title: Re: OOP
Post by: bEnd3r on 08.12.2011, 22:41:25
je len taka otazka na mireka.. ak potrebujem zmenit scenar, pretoze som v nom nasiel zopar chyb, co s tym?
Title: Re: OOP
Post by: mirek on 08.12.2011, 22:46:54
je len taka otazka na mireka.. ak potrebujem zmenit scenar, pretoze som v nom nasiel zopar chyb, co s tym?
ozvi sa u svojho cviciaceho tak, ako sa aj na tom, co ja chodim, ozyvaju ludia ;)
Title: Re: OOP
Post by: bEnd3r on 08.12.2011, 22:50:04
budem to moct zmenit aj tesne pred tym ako odovzdam? su to len take drobnosti..
Title: Re: OOP
Post by: mirek on 08.12.2011, 23:04:42
budem to moct zmenit aj tesne pred tym ako odovzdam? su to len take drobnosti..
to ti zhodnoti tvoj naj(ne)oblubenejsi cviciaci
Title: Re: OOP
Post by: selli1235 on 09.12.2011, 03:00:03
PMD hlasi: Znížte počet: 'if', 'while', 'for', 'case' príkazov v rámci ...
Ja tam ale tie (pravazne) if prikazy potrebujem... co s tym ako?  bu
Title: Re: OOP
Post by: matus217 on 09.12.2011, 06:03:54
Zníž počet: 'if', 'while', 'for', 'case' príkazov :D Skus si to nejaky inak napisat, vytvorit osobitnu metodu, alebo to nejako rozkuskovat. Ja som sa s tymto stretol uz asi 15x :D Stale mi zacne skubat okom ked vidim tuto chybu. Ale zatial sa mi to stale podarilo opravit. Treba uvazovat, nechat si to ulezat v hlave co vlastne robis, a mozno ta nieco napadne.
Title: Re: OOP
Post by: mirek on 09.12.2011, 15:50:46
Zníž počet: 'if', 'while', 'for', 'case' príkazov :D Skus si to nejaky inak napisat, vytvorit osobitnu metodu, alebo to nejako rozkuskovat. Ja som sa s tymto stretol uz asi 15x :D Stale mi zacne skubat okom ked vidim tuto chybu. Ale zatial sa mi to stale podarilo opravit. Treba uvazovat, nechat si to ulezat v hlave co vlastne robis, a mozno ta nieco napadne.
tak tak. vcera som tiez videl kopu ifov na nazvy miestnosti, ktore sa daju v jave 7 nahradit pomocou jedneho switchu alebo v tomto pripade je riesenie este elegantnejsie pomocou hash mapy (slovnika).
Title: Re: OOP
Post by: halmir on 09.12.2011, 17:56:23
zdravím vedel by mi niekto poradiť s touto  chybou ktorú mi hadze PMD-cko
Quote
Buď deklarujte statickú premennú 'historyCommands' ako final, alebo sa vyhnite priradeniu jej hodnoty v konštruktore.
Title: Re: OOP
Post by: Cici on 09.12.2011, 18:18:49
zdravím vedel by mi niekto poradiť s touto  chybou ktorú mi hadze PMD-cko
Quote
Buď deklarujte statickú premennú 'historyCommands' ako final, alebo sa vyhnite priradeniu jej hodnoty v konštruktore.

neviem či správne ale ja som to opravil tak, že som ju pri deklarovaní rovno inicalizoval - nemusím ju mať v konšruktore
Title: Re: OOP
Post by: selli1235 on 09.12.2011, 18:24:17
Zníž počet: 'if', 'while', 'for', 'case' príkazov :D Skus si to nejaky inak napisat, vytvorit osobitnu metodu, alebo to nejako rozkuskovat. Ja som sa s tymto stretol uz asi 15x :D Stale mi zacne skubat okom ked vidim tuto chybu. Ale zatial sa mi to stale podarilo opravit. Treba uvazovat, nechat si to ulezat v hlave co vlastne robis, a mozno ta nieco napadne.
Rozkuskovanie pomohlo, diki ;)
Title: Re: OOP
Post by: xxx3 on 09.12.2011, 21:23:29
poradte prosim ake rozhranie spravit ? ... co robite vy ?
Title: Re: OOP
Post by: ultimate on 09.12.2011, 21:39:03
tiez by ma zaujimalo ake vlastne rozhranie tam dat ... nic co by malo vyuzitie ma nenapada
Title: Re: OOP
Post by: ondrei on 09.12.2011, 22:18:35
ja som robil rozhranie Skrytý, ktoré implementuju vsetky predmety ktore niekedy su viditelne a niekedy nie (napr. mec je viditelny az potom co sa odomkne truhlica kde je ulozeny) a zaroven som tak spravil aj to rozsirenie
 -   Implementujte v hre vec, ktorá v sebe môže mať umiestnené ďalšie veci (napr. truhlica, bedňa, taška). Tieto veci sa stanú súčasťou hry (budú viditeľné v miestnosti) až vtedy, keď túto vec otvoríte (kľúčom k bedničke, truhlici alebo kombináciou k trezoru) alebo keď ich preskúmate (po bližšom preskúmaní tašky bude v miestnosti k dispozícii aj jej obsah). Pozor - toto rozšírenie však nie je možné riešiť spôsobom, že po otvorení predmetu obsahujúceho ďalšie predmety budú tieto vytvorené a umiestnené do miestnosti (podobne, ako je to uvedené v cvičení č. 11). Predmety musia byť v kontajneri umiestnené už počas jeho vytvorenia
Title: Re: OOP
Post by: ondrei on 09.12.2011, 22:53:05
to hej, ale ja som robil prikaz POMOC a tam nepotrebujem nove rozhranie ... preto neviem co take by som mohol spravit ako vlastne rozhranie

Kebyze si tam spravim nejaku postavu do hry, spravim rozhranie Postava ... tak ake  metody by som tam mohol dat ? Kapa vravel, ze talk1 a talk2 ale to mi pride ako blbost :D

staci aj jedna metoda Talk a druha len nejaky getter ci setter ?
podla mna staci. v poziadavkach sa pise, ze dve metody ma mat interface a neni tam povedane ze ake. Ale radsej by som to overil.
Title: Re: OOP
Post by: veteran on 09.12.2011, 23:26:11
poradte prosim ake rozhranie spravit ? ... co robite vy ?
Ja uvažujem nad interface-om, ktorý by slúžil na implementáciu takého predmetu, ktorý sa do batohu nezoberie, ale použiť sa dá/musí. Konkrétne - ja potrebujem vo svojej hre natankovať auto. Je tam predmet "tankovacia pištoľ". Zobrať do batohu - to je blbosť  :D Ale použiť ju nejako musím.

Ale zasa, dá sa to vyriešiť aj ako BackPackImpl - dajme tomu HandsImpl, teda ruky, čo majú "kapacitu" 1 predmetu.
Title: Re: OOP
Post by: matus217 on 09.12.2011, 23:58:45
poradte prosim ake rozhranie spravit ? ... co robite vy ?
Ja uvažujem nad interface-om, ktorý by slúžil na implementáciu takého predmetu, ktorý sa do batohu nezoberie, ale použiť sa dá/musí. Konkrétne - ja potrebujem vo svojej hre natankovať auto. Je tam predmet "tankovacia pištoľ". Zobrať do batohu - to je blbosť  :D Ale použiť ju nejako musím.

Ale zasa, dá sa to vyriešiť aj ako BackPackImpl - dajme tomu HandsImpl, teda ruky, čo majú "kapacitu" 1 predmetu.
Nechcem ti kazit radost, ale citujem: USE - pouzi - "Použije vec, ktorá sa nachádza v batohu alebo v miestnosti." takze toto co pises nie je vobec potrebne riesit :D proste si v miestnosti a das pouzit tankovacia pistol... nemusis ju nikde brat ani nic podobne
Okrem toho item moze implementovat useable a nemusi byt moveable...
Title: Re: OOP
Post by: veteran on 10.12.2011, 00:02:27
poradte prosim ake rozhranie spravit ? ... co robite vy ?
Ja uvažujem nad interface-om, ktorý by slúžil na implementáciu takého predmetu, ktorý sa do batohu nezoberie, ale použiť sa dá/musí. Konkrétne - ja potrebujem vo svojej hre natankovať auto. Je tam predmet "tankovacia pištoľ". Zobrať do batohu - to je blbosť  :D Ale použiť ju nejako musím.

Ale zasa, dá sa to vyriešiť aj ako BackPackImpl - dajme tomu HandsImpl, teda ruky, čo majú "kapacitu" 1 predmetu.
Nechcem ti kazit radost, ale citujem: USE - pouzi - "Použije vec, ktorá sa nachádza v batohu alebo v miestnosti." takze toto co pises nie je vobec potrebne riesit :D proste si v miestnosti a das pouzit tankovacia pistol... nemusis ju nikde brat ani nic podobne
Okrem toho item moze implementovat useable a nemusi byt moveable...
A musí to takto striktne byť? Nemôžem to prerobiť, aby sa dali používať len napr. veci v batohu?

Už som si myslel, že problém vlastného interface-u mám vyriešený :(
Title: Re: OOP
Post by: matus217 on 10.12.2011, 00:07:35
poradte prosim ake rozhranie spravit ? ... co robite vy ?
Ja uvažujem nad interface-om, ktorý by slúžil na implementáciu takého predmetu, ktorý sa do batohu nezoberie, ale použiť sa dá/musí. Konkrétne - ja potrebujem vo svojej hre natankovať auto. Je tam predmet "tankovacia pištoľ". Zobrať do batohu - to je blbosť  :D Ale použiť ju nejako musím.

Ale zasa, dá sa to vyriešiť aj ako BackPackImpl - dajme tomu HandsImpl, teda ruky, čo majú "kapacitu" 1 predmetu.
Nechcem ti kazit radost, ale citujem: USE - pouzi - "Použije vec, ktorá sa nachádza v batohu alebo v miestnosti." takze toto co pises nie je vobec potrebne riesit :D proste si v miestnosti a das pouzit tankovacia pistol... nemusis ju nikde brat ani nic podobne
Okrem toho item moze implementovat useable a nemusi byt moveable...
A musí to takto striktne byť? Nemôžem to prerobiť, aby sa dali používať len napr. veci v batohu?

Už som si myslel, že problém vlastného interface-u mám vyriešený :(
Ak to chapem spravne tak to musis mat praveze takto... http://it4kt.fei.tuke.sk/c/oop/assignment.html (http://it4kt.fei.tuke.sk/c/oop/assignment.html) tam si pozri zakladna sada prikazov, ktoru musi minimalne implementovat hra. Ak to chces spravit inak skus napisat cviciacemu alebo nejakej kompetentnej osobe.
Title: Re: OOP
Post by: veteran on 10.12.2011, 00:09:27
poradte prosim ake rozhranie spravit ? ... co robite vy ?
Ja uvažujem nad interface-om, ktorý by slúžil na implementáciu takého predmetu, ktorý sa do batohu nezoberie, ale použiť sa dá/musí. Konkrétne - ja potrebujem vo svojej hre natankovať auto. Je tam predmet "tankovacia pištoľ". Zobrať do batohu - to je blbosť  :D Ale použiť ju nejako musím.

Ale zasa, dá sa to vyriešiť aj ako BackPackImpl - dajme tomu HandsImpl, teda ruky, čo majú "kapacitu" 1 predmetu.
Nechcem ti kazit radost, ale citujem: USE - pouzi - "Použije vec, ktorá sa nachádza v batohu alebo v miestnosti." takze toto co pises nie je vobec potrebne riesit :D proste si v miestnosti a das pouzit tankovacia pistol... nemusis ju nikde brat ani nic podobne
Okrem toho item moze implementovat useable a nemusi byt moveable...
A musí to takto striktne byť? Nemôžem to prerobiť, aby sa dali používať len napr. veci v batohu?

Už som si myslel, že problém vlastného interface-u mám vyriešený :(
Ak to chapem spravne tak to musis mat praveze takto... http://it4kt.fei.tuke.sk/c/oop/assignment.html (http://it4kt.fei.tuke.sk/c/oop/assignment.html) tam si pozri zakladna sada prikazov, ktoru musi minimalne implementovat hra. Ak to chces spravit inak skus napisat cviciacemu alebo nejakej kompetentnej osobe.
Aha, no z toho textu to tak vyznieva... Tak nič. Idem špekulovať nad niečim iným.
Title: Re: OOP
Post by: matus217 on 10.12.2011, 00:14:56
Staci rozmyslat... Mna len tak na rychlo napadlo napr. vyrobis si interface a budes mat metody jedna ktora zistuje aky bol posledny prikaz. Druha ci posledny prikaz sluzil na presun medzi miestnostami. Ak ano, tak si implementujes dalsi prikaz co ja viem vrat sa... A vykona pohyb opacnym smerom. Napr. pojdes sever, das vrat sa a vykona juh... Ak das pouzi a potom vrat sa, vypise ze si nepouzil smerovy prikaz.... NAPR. nieco taketo pre inspiraciu... snad to teraz nebudete mat 4ja rovnake :D ja osobne toto nemam implementovane, takze ked niekto chce, nech sa paci ma volnu ruku...
Title: Re: OOP
Post by: veteran on 10.12.2011, 00:41:09
Staci rozmyslat... Mna len tak na rychlo napadlo napr. vyrobis si interface a budes mat metody jedna ktora zistuje aky bol posledny prikaz. Druha ci posledny prikaz sluzil na presun medzi miestnostami. Ak ano, tak si implementujes dalsi prikaz co ja viem vrat sa... A vykona pohyb opacnym smerom. Napr. pojdes sever, das vrat sa a vykona juh... Ak das pouzi a potom vrat sa, vypise ze si nepouzil smerovy prikaz.... NAPR. nieco taketo pre inspiraciu... snad to teraz nebudete mat 4ja rovnake :D ja osobne toto nemam implementovane, takze ked niekto chce, nech sa paci ma volnu ruku...
:D A čo tak interface, ktorý bude zisťovať, či náhodou nebol zadaný cheat.  :D Implementácia cheatov v textovke :D Napr. teleportovanie cez nejakú problematickú pasáž hry :D ;D A keď použiješ priveľa cheatov, tak ti to vypyskuje nejakú hlášku a skončí hru.

EDIT: Ale na toto si dávam © ® ™ ;) ;D
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 00:46:39
inak ta mapa co je ako doplnkova uloha v niektorom cviku ma ako vyzerat ? A je to povinne ? ... kedze v rozsireniach hry je prikaz MAPA

staci davat printy na vykreslenie mapy ?

System.out.println("A | B | C");
System.out.println("        | D");
System.out.println("        | E | F | G");


.. a tak dalej, ze takto bude primitivne mapa ?
Title: Re: OOP
Post by: veteran on 10.12.2011, 00:51:50
inak ta mapa co je ako doplnkova uloha v niektorom cviku ma ako vyzerat ?
Niečo také, ako je tu: http://it4kt.fei.tuke.sk/c/oop/08.html (http://it4kt.fei.tuke.sk/c/oop/08.html)

Príp. na sťaženie orientácie hráča by tam nemuseli byť vyznačené "steny" - teda miesta, kde sa nedá prejsť z jednej miestnosti do druhej. Alebo sa to dá rozšíriť tak, že nejako označíš už navštívené miestnosti - napr. že číslo miestnosti dáš do zátvoriek apod. (<9>, (9), {9}).

A je to povinne ? ... kedze v rozsireniach hry je prikaz MAPA
Nemyslím, že je to povinné.
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 00:54:09
lebo mne sa zda, ze Kapa hovoril, ze aj doplnujuce ulohy su povinne

A staci teda tu mapu len tak napevno cez printy ? Ci treba nejak komplikovanejsie ?
Title: Re: OOP
Post by: veteran on 10.12.2011, 00:54:34
staci davat printy na vykreslenie mapy ?

System.out.println("A | B | C");
System.out.println("        | D");
System.out.println("        | E | F | G");
Ak nechceš vypisovať navštívené miestnosti, príp. niečo ďalej s tou mapou robiť, tak by to IMHO stačiť mohlo. Našťastie outline v NetBeanse používa proporciálne písmo, takže sa ti to nerozhádže  :D Ale zasa, neviem, či sa toto bude brať za adekvátne vlastné rozšírenie hry.
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 00:56:16
ja to nechcem ako rozsirenie ... ale mapa je ako doplnujuca uloha

ja s tou mapou nechcem robit nic, ale oni to ako mysleli neviem :D
Title: Re: OOP
Post by: veteran on 10.12.2011, 00:56:42
lebo mne sa zda, ze Kapa hovoril, ze aj doplnujuce ulohy su povinne
V zakladnej sade prikazov (http://it4kt.fei.tuke.sk/c/oop/assignment.html (http://it4kt.fei.tuke.sk/c/oop/assignment.html)) prikaz MAPA nie je... Ale je uvedeny medzi nametmi.
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 00:57:35
nie prikaz mapa ... ale doplnujuca uloha cvicenia 8 je V metóde void createRooms() vytvorte mapu svojej hry.

Nie je tam, ze zobrazte mapu, tak neviem ako vytvorit mapu ? ako to je myslene ?
Title: Re: OOP
Post by: selli1235 on 10.12.2011, 00:57:57
ja to nechcem ako rozsirenie ... ale mapa je ako doplnujuca uloha
Hej, ale to v tom cviku nemas vykreslit mapu ale inicializovat miestnosti nastavit im vychody a dat do nich predmety si myslim  8)
EDIT: + este nastavit currentRoom :)
Title: Re: OOP
Post by: veteran on 10.12.2011, 00:59:34
nie prikaz mapa ... ale doplnujuca uloha cvicenia 8 je V metóde void createRooms() vytvorte mapu svojej hry.
Aha... No neviem, nech sa vyjadria kompetentní :D Je zas pravda, že v tých námetoch sa píše, že nech mapa vyobrazuje len navštívené miestnosti. Ale je to len námet. Neviem...
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 01:00:39
no vsak vychody sa tam nastavuju, aj aktualna miestnost sa nastavi a vlozia sa predmety ... ale to je v popise cvika, tak neverim zeby to mysleli tou doplnujucou ulohou

nerozumiem ako tu mapu tam mam vytvorit
Title: Re: OOP
Post by: matus217 on 10.12.2011, 01:03:21
ja to nechcem ako rozsirenie ... ale mapa je ako doplnujuca uloha
Hej, ale to v tom cviku nemas vykreslit mapu ale inicializovat miestnosti nastavit im vychody a dat do nich predmety si myslim  8)
EDIT: + este nastavit currentRoom :)
Hej takto by to malo byt. Tu mapu netreba vytvorit fyzicky, ale len inicializovat a nastavit vychody a priradit im miestnosti. Celkovy prikaz mapa je podla mna brany ako rozsirenie. Ja osobne som spravil prikaz mapa ktory mi vypisuje uz navstivene miestnosti, a zobrazuje v ktorej sa aktualne nachadzam. A ratam to ako a jedno z povinnych rozsireni...
Title: Re: OOP
Post by: veteran on 10.12.2011, 01:05:55
nerozumiem ako tu mapu tam mam vytvorit
Máš vytvorené pole miestností. Budeš ním prechádzať a zisťovať susedov. A do dvojrozmerného poľa to budeš postupne hádzať. Teda ak je miestnosť 2 na sever od miestnosti 1, tak jej riadok bude mať poradové číslo o jedno menšie, než poradové číslo miestnosti 1. Detto platí aj pre horizontálny smer (západ-východ).
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 01:11:25
Hej takto by to malo byt. Tu mapu netreba vytvorit fyzicky, ale len inicializovat a nastavit vychody a priradit im miestnosti. Celkovy prikaz mapa je podla mna brany ako rozsirenie. Ja osobne som spravil prikaz mapa ktory mi vypisuje uz navstivene miestnosti, a zobrazuje v ktorej sa aktualne nachadzam. A ratam to ako a jedno z povinnych rozsireni...

takze ked tam v createRooms() mam povytvarane instancie miestností, priradene im vychody sez setexits() tak to akoze mam spravenu tu "mapu" a nepotrebujem tam nic dorabat ? ... vsak to musi mat kazdy.

alebo to co pise veteran ? ... ale tu nastava problem, pretoze ja mam pre niektore miestnosti nastavene vsetky vychody na null a odomknu sa az pocas hry
Title: Re: OOP
Post by: veteran on 10.12.2011, 01:21:15
alebo to co pise veteran ? ... ale tu nastava problem, pretoze ja mam pre niektore miestnosti nastavene vsetky vychody na null a odomknu sa az pocas hry
Tak v rýchlosti mi napadlo, že ak máš miestnosť zatiaľ "bez susedov", tak ju môžeš vykresliť nejako takto:
Code: [Select]
?????
? 5 ?
?????

A keď sa ti odomknú exity, tak sa prerobí napr. na
+---+
| 5 ||
+---+

Niekde si budeš poznamenávať "odomknutosť" miestností (nejaký boolean). Ak bude pre danú miestnosť false, tak sa vykreslí "otázniková verzia".
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 01:25:06
no ale tam nikde nepisu nic o tom, ze sa ma vykreslovat ta mapa

// mohol by sa vyjadrit mirek alebo niekto kto si je isty ze vie co tam treba robit v tej doplnujucej ulohe
Title: Re: OOP
Post by: veteran on 10.12.2011, 01:47:59
no ale tam nikde nepisu nic o tom, ze sa ma vykreslovat ta mapa
Hej no, je to tam napísané veľmi stručne. Tuším je tam len jedna veta - aj by som ju sem pastol, keby šiel Moodle i celý TUKE web :D (asi nejaká odstávka). Ja som to pochopil tak, že by sa tá mapa mala vykresľovať.
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 01:51:18
hej je to tam jednou vetou, z ktorej vela nezistim ako je to myslene:

Quote
V metóde void createRooms() vytvorte mapu svojej hry.

podla mna keby chceli vykreslit mapu alebo spravit nejak fyzicku mapu tak by tam nenapisali, ze DO metody createRooms() ale ze napr. vytvorte metodu createMap() ktora vytvori a vykresli mapu
Title: Re: OOP
Post by: matus217 on 10.12.2011, 02:45:46
Ozaj je to brane ako chyba alebo si to mozem nechat, ked som si vsade pisal komentare co robim, aby som sa v tom jednoduchsie orientoval ? Aby to nebolo brane ako co ja viem nejake podvadzanie pri konzultacii zdrojoveho kodu alebo co ja viem... Nemam na mysli teraz java doc, ale klasicke //komentare k niektorym priradeniam a nastaveniam akcii...
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 02:58:49
podla mna to nebude vadit ... vsak ked bude vidiet cviciaci ze rozumies kodu a robil si to ty tak nemal by byt problem
Title: Re: OOP
Post by: milaninho on 10.12.2011, 05:38:40
hej je to tam jednou vetou, z ktorej vela nezistim ako je to myslene:

Quote
V metóde void createRooms() vytvorte mapu svojej hry.

podla mna keby chceli vykreslit mapu alebo spravit nejak fyzicku mapu tak by tam nenapisali, ze DO metody createRooms() ale ze napr. vytvorte metodu createMap() ktora vytvori a vykresli mapu

Vytvorte mapu svojej hry. - mas si vytvorit vlastny svet - svet svojej hry. Ak si svet nainicializoval, mas tuto ulohu splnenu.
Ako uz bolo spomenute, vykreslovanie mapy je namet na rozsirenie, nie je v zakladnej textovke.
to veteran - neviem co si to myslel tym dvojrozmernym polom ale dufam ze to bolo iba abstraktne pole a ze mapu nemas implementovanu cez Array ale cez Exits v Roomoch :)
Title: Re: OOP
Post by: halmir on 10.12.2011, 06:36:24
neviete niekto ci treba robit aj ten class diagram ak ano ako to treba robit
Title: Re: OOP
Post by: matus217 on 10.12.2011, 07:15:55
neviete niekto ci treba robit aj ten class diagram ak ano ako to treba robit
Pytal som sa cviciaceho, dokonca to pise aj v podmienkach pri odovzdavani a dokumentaci, su potrebne UML grafy.
Title: Re: OOP
Post by: ppeess on 10.12.2011, 07:35:27
neviete niekto ci treba robit aj ten class diagram ak ano ako to treba robit
Class diagram by ti vygeneruje NetBeans ..... neviem ci nebudes musiet doinstalovat neaky plugin ....
Title: Re: OOP
Post by: matus217 on 10.12.2011, 07:47:00
Do toho netBeansu som skusal hladat aj nejake pluginy, ale velmi sa mi nepodarilo. Ani cez oficialne tools->plugins menu mi nic nenaslo... Tak asi na to pohladam nejaky iny program jedine.
Title: Re: OOP
Post by: lecter on 10.12.2011, 16:26:07
Preco sa nepouziva Eclipse? Ten to robi sam.
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 16:39:39
je na to nejaky modul do NetBeansu: http://wiki.netbeans.org/NetbeansUML (http://wiki.netbeans.org/NetbeansUML)  ale neskusal som este, len cviciaci nam ukazoval toto
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 16:41:19
Vytvorte mapu svojej hry. - mas si vytvorit vlastny svet - svet svojej hry. Ak si svet nainicializoval, mas tuto ulohu splnenu.
Ako uz bolo spomenute, vykreslovanie mapy je namet na rozsirenie, nie je v zakladnej textovke.
to veteran - neviem co si to myslel tym dvojrozmernym polom ale dufam ze to bolo iba abstraktne pole a ze mapu nemas implementovanu cez Array ale cez Exits v Roomoch :)

super, dik, myslel som si ze to bude len toto a ze netreba ziadnu fyzicku mapu, kedze ta je v rozsireniach ,... tak uz mam skoro vsetko, hura :)
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 18:13:48
Ked sa vam hra ukonci neuspesne, cize nieco vas zabije napriklad, tak davate gamestate GameOver ? A vyhodi vas t ocelkom z hry alebo vas to vrati do menu ?
Title: Re: OOP
Post by: BlackBerry on 10.12.2011, 18:22:12
Ked sa vam hra ukonci neuspesne, cize nieco vas zabije napriklad, tak davate gamestate GameOver ? A vyhodi vas t ocelkom z hry alebo vas to vrati do menu ?
Ja konkretne mam tak ze ma zabije nepriatel a vypise mi ze ma zabil nepriatel a vyhodi ma to z celej hry
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 18:27:10
a menu mas spravene ?
Title: Re: OOP
Post by: BlackBerry on 10.12.2011, 18:36:18
a menu mas spravene ?
Ano mam..akurat chcem spravit aby ma to nevyhodilo uplne ale vratilo do menu
Title: Re: OOP
Post by: selli1235 on 10.12.2011, 18:38:02
A co ma v tom menu byt???
Title: Re: OOP
Post by: Tren on 10.12.2011, 18:42:19
A co ma v tom menu byt???
je to doplnujuca uloha zo 7.cvika

Quote
Vytvorte úvodné menu hry, ktoré bude mať minimálne dve položky:

    spustiť hru
    ukončiť hru

. V prípade, že počas hry hráč napíše príkaz pre jej ukončenie, vráti sa naspäť do hlavného menu.
Title: Re: OOP
Post by: BlackBerry on 10.12.2011, 19:16:53
Mozno hlupa otazka..ale ta kontrola originality ako bude fungovat??lebo napr niektore veci sme robili s cviciacim na hodine...takze to bude mat dost ludi rovnakych..potom ked sme si implemetovali tiez tie metody su rovnake :P
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 19:23:17
tiez by ma zaujimalo, vsak s Tomaskom kto ma tak budu mat vsetci totozne, kedze skoro vsetko robil na cvikach
Title: Re: OOP
Post by: paloSK on 10.12.2011, 19:30:02
tiez by ma zaujimalo, vsak s Tomaskom kto ma tak budu mat vsetci totozne, kedze skoro vsetko robil na cvikach
Nikto im nekazal opisovat vsetko od A po Z.
Title: Re: OOP
Post by: xxx3 on 10.12.2011, 19:32:56
este k tomu menu ... ked bude gamestate SOLVED aj GAMEOVER ... cize hra sa ukonci uspesne alebo neuspesne tak malo by hodit do menu, ze ?
Title: Re: OOP
Post by: matus217 on 10.12.2011, 20:07:07
Ked idem zabalit ten balicek a ten subor readme.txt mam spravit tak tieto dve polozky
VERSION: VERSION.NUMBER
ABOUT: GAME INTRODUCTION (ABOUT, ABSTRACT)

Verziu si mozem kludne napisat ze 1.1 ?
A k tomu about mam len skopirovat text ktory mam v prikaze o hre ? A do jedneho riadku, alebo ho aj odenterovat ?
A este takto, mozem si interface niekde zgrupit do samostatneho package ze interfaces napr. ? Ako su commands ?
Title: Re: OOP
Post by: wman on 10.12.2011, 20:27:35
Ma niekto ten formular ,na ktory nie je link na stranke,ktory je potrebne mat so sebou pri odovzdani??
Title: Re: OOP
Post by: tas on 10.12.2011, 22:30:17
Ked idem zabalit ten balicek a ten subor readme.txt mam spravit tak tieto dve polozky
VERSION: VERSION.NUMBER
ABOUT: GAME INTRODUCTION (ABOUT, ABSTRACT)

Verziu si mozem kludne napisat ze 1.1 ?
A k tomu about mam len skopirovat text ktory mam v prikaze o hre ? A do jedneho riadku, alebo ho aj odenterovat ?
A este takto, mozem si interface niekde zgrupit do samostatneho package ze interfaces napr. ? Ako su commands ?

neviem ti povedat ci sa to moze, ale urcite nebudes sam, ja to tak robim uz od zaciatku, nech v tom mam prehlad. ma to svoje nasledky, teoreticky triedy v rovnakom balicku ak sa vyuzivaju navzajom nepotrebuju importy a pod, ale ked mozme zakladnu kniznicu importovat tak mozme aj to navyse.
toť moj nazor
Title: Re: OOP
Post by: matus217 on 10.12.2011, 22:45:55
...mozem si interface niekde zgrupit do samostatneho package ze interfaces napr. ?.. ?

neviem ti povedat ci sa to moze, ale urcite nebudes sam, ja to tak robim uz od zaciatku, nech v tom mam prehlad. ma to svoje nasledky, teoreticky triedy v rovnakom balicku ak sa vyuzivaju navzajom nepotrebuju importy a pod, ale ked mozme zakladnu kniznicu importovat tak mozme aj to navyse.
toť moj nazor
Ved prave aby som v tom mal poriadok, lebo dost to je neprehladne ked si kontrolujem items package a medzi tym mam 6 interfacov... Mam dost mnou vytvorenych a nepaci sa mi to tak pomiesane  ;D Aspon nebudem sam kto to tak bude mat :)
Title: Re: OOP
Post by: BlackBerry on 10.12.2011, 23:34:31
 vlastné rozhranie moze byt nieco take ze napr.odisti granat?? a odisti bude ako novy prikaz
Title: Re: OOP
Post by: JozoHuzo on 11.12.2011, 01:57:06
je pravda že to mame mať upnute na moodli do štvrtka a odovzdavať až v januari? alebo sa to liši od cvičiaceho? mam Kapu
Title: Re: OOP
Post by: Agamemnon on 11.12.2011, 02:24:37
okej, späť z výletu ;D

je pomerne bežná prax dávať interface-i, pre ktoré to má zmysel, do vlastnej knižnice (package)... to už len napr. preto, že interface sa používajú pri pluginoch, rôznych RMI volaniach etc... tam nemá zmysel (a zvyčajne je priamo nevýhodné) zverejňovať celé implementácie tried... prípadne to vyslovene funguje len na interfaceoch...
Title: Re: OOP
Post by: bEnd3r on 11.12.2011, 03:14:10
Quote from: Moodle
Čo musíte mať so sebou pri preberaní a na čo nezabudnite:
-vytlačený formulár pre preberanie zadania s vypísanou hlavičkou
kde to najdem?
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 03:39:28
tie Unit testy treba mat ? Vobec neviem ako to spravit
Title: Re: OOP
Post by: esperian on 11.12.2011, 04:13:39
ja by som sa chcel spytat ako odstranit takuto chybu

warning: [options] bootstrap class path not set in conjunction with -source 1.6

asi to nema nic spolocne so spravnostou projektu, skor nejake nastavanie samotneho netbeansu...
Title: Re: OOP
Post by: matus217 on 11.12.2011, 04:14:37
Quote from: Moodle
Čo musíte mať so sebou pri preberaní a na čo nezabudnite:
-vytlačený formulár pre preberanie zadania s vypísanou hlavičkou
kde to najdem?
To by zaujimalo aj mna. Ale vyzera ze to nikde nie je...
Title: Re: OOP
Post by: BlackBerry on 11.12.2011, 04:19:38
tie Unit testy treba mat ? Vobec neviem ako to spravit
Staci pre ParserImpl...ale ani sajnu nemam ako to spravit :/
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 04:25:24
Vie niekto urobit ten Unit test ?
Title: Re: OOP
Post by: ppeess on 11.12.2011, 04:31:18
Vie niekto urobit ten Unit test ?
Ja ti mozem poslat moj ............... :D
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 04:34:58
tak je tam metoda:
Code: [Select]
@Test
    public void testGetCommand() {
        System.out.println("getCommand");
        String string = "";
        ParserImpl instance = new ParserImpl();
        Command expResult = null;
        Command result = instance.getCommand(string);
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

ktoru treba implementovat ... a v scenari je napisane, ze V testovacej triede ParserImplTest upravte metódu testGetCommand() tak, aby otestovala správnosť rozpoznávania predpísanej sady príkazov.
Pre reprezentáciu predpísanej sady príkazov použite nasledovný zápis:
Code: [Select]
List<String> listOfKnownCommands = Arrays.asList("SEVER", "juh",
        "   VYCHOD", "zapad   ", "rozhliadni SA", "inVENtar", "KONIEC",
        "VEZMI", "POLOZ", "POUZI", "PRESKUMAJ", "PRIKAZY", "NAHRAJ",
        "ULOZ", "VERZIA", "RESTART" );

ale ako ? Vies to podla tohto spravit ? Alebo niekto ?


Title: Re: OOP
Post by: Agamemnon on 11.12.2011, 04:43:46
tak je tam metoda:
Code: [Select]
@Test
    public void testGetCommand() {
        System.out.println("getCommand");
        String string = "";
        ParserImpl instance = new ParserImpl();
        Command expResult = null;
        Command result = instance.getCommand(string);
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

ktoru treba implementovat ... a v scenari je napisane, ze V testovacej triede ParserImplTest upravte metódu testGetCommand() tak, aby otestovala správnosť rozpoznávania predpísanej sady príkazov.
Pre reprezentáciu predpísanej sady príkazov použite nasledovný zápis:
Code: [Select]
List<String> listOfKnownCommands = Arrays.asList("SEVER", "juh",
        "   VYCHOD", "zapad   ", "rozhliadni SA", "inVENtar", "KONIEC",
        "VEZMI", "POLOZ", "POUZI", "PRESKUMAJ", "PRIKAZY", "NAHRAJ",
        "ULOZ", "VERZIA", "RESTART" );

ale ako ? Vies to podla tohto spravit ? Alebo niekto ?

napr. takto :)
v teste inicializuješ triedy, ktoré potrebuješ (netuším, ktoré to sú) na to, aby si dokázal zavolať getcommand... potom pre každý prvok poľa zavoláš getcommand a overíš, či ti volanie vrátilo objekt alebo nie...
Title: Re: OOP
Post by: halmir on 11.12.2011, 05:11:04
nevie niekto ako doinstalujem ten plugin na class diagramy v netbeanse 6.9 ?
Title: Re: OOP
Post by: Zeusetdeus on 11.12.2011, 06:13:38
Mam otazku ku komentarom.  Metody ktore boli implementovane z kniznice sa nekomentuju.  Na druhej strane sa vyzaduje aby bol vysledok analyzy JavaDoc prazdny. Tie Override metody teda zakomentujem /** */ naprazdno?
Title: Re: OOP
Post by: matus217 on 11.12.2011, 07:18:45
Mam otazku ku komentarom.  Metody ktore boli implementovane z kniznice sa nekomentuju.  Na druhej strane sa vyzaduje aby bol vysledok analyzy JavaDoc prazdny. Tie Override metody teda zakomentujem /** */ naprazdno?
Ja osobne som radsej okomentoval vsetko... Radsej to mat kompletne a trosku roboty naviac, ako by malo potom hlasit chyby a robit problemy...
Title: Re: OOP
Post by: charlie on 11.12.2011, 09:54:41
ako ste riesili prikazy s parametrom? lebo :

Code: [Select]
kontrola prikazu -> if(ak je za prikazom daco){oreze a vybere parameter} else {hlaska: zly parameter};
teoreticky by to malo pracovat, ale ked dam "prikaz" bez znaku za nim tak mi hodi ERR.
Ak som pochopil dobre, tak hadze kvoli kontrole v if. neviete ako by som to poriesil? bo uz na tym sedim dost dlho neviem pohnut.  >:(

dikes
Title: Re: OOP
Post by: veteran on 11.12.2011, 12:50:24
je pravda že to mame mať upnute na moodli do štvrtka a odovzdavať až v januari? alebo sa to liši od cvičiaceho? mam Kapu
Zrejme sa to líši - doc. Tomášek vravel, že na Moodli to musí byť do polnoci pred cvičením a odovzdávať sa to bude dať len na tom jednom konkrétnom cvičení (žiaden január).
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 15:46:23
Agamemnon - getcommand je v ParserImpl takze asi staci ta trieda, co tam je inicialicovana ... ako overovat ci bol vytvoreny objekt ?
Title: Re: OOP
Post by: Agamemnon on 11.12.2011, 16:05:53
Mam otazku ku komentarom.  Metody ktore boli implementovane z kniznice sa nekomentuju.  Na druhej strane sa vyzaduje aby bol vysledok analyzy JavaDoc prazdny. Tie Override metody teda zakomentujem /** */ naprazdno?

overridy komentuj... to, že niečo override inú metódu, neznamená, že to bude robiť úplne to isté, čo tá pôvodná metóda... trochu iná vec je s metódami implementovanými podľa rozhrania... ale keby bolo na mne, tak komentujem všetko
Title: Re: OOP
Post by: Agamemnon on 11.12.2011, 16:06:59
ako ste riesili prikazy s parametrom? lebo :

Code: [Select]
kontrola prikazu -> if(ak je za prikazom daco){oreze a vybere parameter} else {hlaska: zly parameter};
teoreticky by to malo pracovat, ale ked dam "prikaz" bez znaku za nim tak mi hodi ERR.
Ak som pochopil dobre, tak hadze kvoli kontrole v if. neviete ako by som to poriesil? bo uz na tym sedim dost dlho neviem pohnut.  >:(

dikes

pastuj kód... netuším, čo pre teba znamená "ak je za prikazom daco" alebo "oreze a vybere parameter"...
tiež pastuj chybu, ktorú ti to hodí...

takto nemám šancu povedať ti, čo sa deje... môžem si to tak max. tipnúť...
Title: Re: OOP
Post by: Agamemnon on 11.12.2011, 16:11:34
ako overovat ci bol vytvoreny objekt ?

máš objekt v nejakej premennej:
Code: [Select]
Command command = xy.getCommand("pouzi");

c# nUnit má na to metódu IsNotNull (s týmto som robil, takže tento poznám)... preto predpokladám, že jUnit bude mať tiež podobnú metódu - asi najskôr assertNotNull (to si nájdi)...
potom takto:
Code: [Select]
assertNotNull(command);

ak taká metóda neexistuje... tak vieš použiť assertNotEqual (ak existuje taká) a porovnáš s null...
Code: [Select]
assertNotEquals(null, command);

a ak neexistuje ani to, použiješ if, porovnáš to s null a vyhodíš assertFail, ak sa to rovná null...
Code: [Select]
if (command == null) {
  fail();
}
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 16:30:50
dik

UML sa niekomu podarilo poriesit cez NetBeans ?
Title: Re: OOP
Post by: bEnd3r on 11.12.2011, 16:35:29
@xxx3 vcera som sa s tym babral a v netbeanse som nenasiel nic.. jedina aspon truchu uzitocna vec je toto..pre windózy http://sourceforge.net/projects/jug/ (http://sourceforge.net/projects/jug/)
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 16:51:29
a cez to sa to da vygenerovat v pohode, hej ? Tam nahras svoj projekt s vygeneruje UML?
Title: Re: OOP
Post by: milaninho on 11.12.2011, 16:56:21
na netbeans bol plugin, ale ten nefunguje na novych netbeansoch.. odporucam si nasjt nejaky alternativny softver, mnoho modelovacich nastrojov podporuje reverse engineering
Title: Re: OOP
Post by: bEnd3r on 11.12.2011, 16:57:05
ta..ani ne, nahras tam subory *.class a ono ti vytvori taketo nieco
(http://i43.tinypic.com/20itc0z.png)
a ako pozeram na googli tak je este co robit.. ale teraz ma napadlo nejak to dokopat cez blueJ

//milaninho..nemohol by si tu hodit nieco co by si ty odporucal? pekne prosim :)
Title: Re: OOP
Post by: farkasdvd on 11.12.2011, 17:00:55
Nepameta si niekto, jak Kapa hovoril, ze kto nevie odovzdat hru v 13. tyzdni ponelok, kedy ma na to nasledujucu moznost?
Title: Re: OOP
Post by: esperian on 11.12.2011, 17:10:23
ta..ani ne, nahras tam subory *.class a ono ti vytvori taketo nieco
(http://i43.tinypic.com/20itc0z.png)
a ako pozeram na googli tak je este co robit.. ale teraz ma napadlo nejak to dokopat cez blueJ

//milaninho..nemohol by si tu hodit nieco co by si ty odporucal? pekne prosim :)

postupuj podla navodu
Instalar UML en Netbeans 6.8 (http://www.youtube.com/watch?v=fxZW2UCouiw&feature=related#)

mam to otestovane na netbeans 7:0.1  ;)
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 17:16:24
Hm, tam ale nie su tie sipky ...

Niekto tu spominal, ze preco nerobime v Eclipse, ze tam sa to da vygenerovat ... kebyze stiahnem Eclipse a tam nahram svoj projekt ? Mi to spravi ?
Title: Re: OOP
Post by: esperian on 11.12.2011, 17:21:27
ake sipky ?? ja to mam takto (pripajam kusok)a vygenerovalo sa mi to samo .. len som si to potom este trocha rozmiestnil..

edit// aha to si asi nenarazal na mna xD
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 18:24:35
to som pisal k tomu co se mdal bender
Title: Re: OOP
Post by: ultimate on 11.12.2011, 18:37:37
diky, ale zmaz si post, nasiel som chybu, tak som zmazal svoj post

// potom zmazem aj tento
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 18:59:53
jedna z poziadaviek na odovzdanie: Priečinok obsahuje binárku, resp. spustiteľný súbor vašej hry.

Ako si spravim tu binarku alebo spustitelny subor hry ?
Title: Re: OOP
Post by: esperian on 11.12.2011, 19:02:38
zda sa mi ze to je ten jar subor ktory mas v Adventuer/dist/Adventure.jar

spustis ho v prikazovom riadku nasledovne..
"preklikas" sa do priecinku Adventuer/dist a zadas prikaz java -jar Adventure.jar
Title: Re: OOP
Post by: orsi on 11.12.2011, 19:07:51
ako opraviť toto pmd: Znížte počet: 'if', 'while', 'for', 'case' príkazov v rámci 'class GameImpl' (zložitosť je 2 (Highest = 14) z 10).
??
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 19:08:54
ako ze vam pise vystup z PMD po slovensky ? Co mate za ruleset ?
Title: Re: OOP
Post by: Agamemnon on 11.12.2011, 19:14:18
if sa dá nahradiť kompozíciou objektov a polymorfizmom... ak je vhodná situácia...

ale jednoduchšie je urobiť napr. switch... a pod... ak pastneš kód, tak ti cca poviem, čo sa dá urobiť...
Title: Re: OOP
Post by: orsi on 11.12.2011, 19:16:13
ako nastaviť mirekov ruleset? neviem podla akych pravidiel mi to teraz kontroluje  :D

// ok, už chapem, ja tiež som stiahol z 6. cvika, takže je to ten mirekov ruleset.
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 19:16:35
ja nemam v priecinku dist\ ziadny jar subor ... ako ho vygenerovat ?

ja som stiahol ruleset z moodle z 6. cvika
Title: Re: OOP
Post by: matus217 on 11.12.2011, 19:24:51
ja nemam v priecinku dist\ ziadny jar subor ... ako ho vygenerovat ?

ja som stiahol ruleset z moodle z 6. cvika
Hore v netbeanse vedla tlacitka na spustenie (zelena sipka) mas tlacitko clean and build... Toto ti vytvori novy cisty build tvojho programu do priecinku dist napr. rovno v priecinku tvojho projektru.
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 19:54:55
dik ... a ta prirucka ... chybove hlasenia tam ake davate ? ... len tie z History ? ... alebo ked mam take, ze System.out.println("Tadial sa neda ist") tak aj taketo sa beru ako chybove hlasenia ?
Title: Re: OOP
Post by: esperian on 11.12.2011, 20:16:02
aj take aj take, vsetky chyby co vyhodi   :)
Title: Re: OOP
Post by: xxx3 on 11.12.2011, 20:18:19
potom mam vsetky tie "chybove hlasky" .. ako naprikad: taketo predmet neexistuje a podobne pisat ako System.err.println  alebo moze ostat System.out.println ci game.getUI().println ? .... alebo to je jedno ? na tom nezalezi ?
Title: Re: OOP
Post by: esperian on 11.12.2011, 20:21:56
vies co, nam Kapa vravel samozrejme ak som ho spravne pochopil, ze ak mame nejaku metodu kde mas parameter game napr

execute(Game game,....) tak tam treba pouzivat game.GetUI.println("aa");
Title: Re: OOP
Post by: matus217 on 11.12.2011, 20:24:42
Ja som vypisal vsetky chybove hlasky ake mam v celom zadani. Ohladom predmetov, ukladania hry, batohu, atd... Aj tie co su cez normalny print, aj cez textUI print
Title: Re: OOP
Post by: orsi on 11.12.2011, 23:35:02
ako opraviť - všade kde mám Arraylisty mi pmd vypisuje toto:    Pretypujte deklaráciu (namiesto typu 'ArrayList' použite rozhranie, ktoré tento typ implementuje).
Title: Re: OOP
Post by: ppeess on 11.12.2011, 23:38:32
ako opraviť - všade kde mám Arraylisty mi pmd vypisuje toto:    Pretypujte deklaráciu (namiesto typu 'ArrayList' použite rozhranie, ktoré tento typ implementuje).
Toto sa tu uz tusim riesilo ......
Title: Re: OOP
Post by: selli1235 on 11.12.2011, 23:59:19
Nasiel uz niekto ten formular??
Title: Re: OOP
Post by: bEnd3r on 12.12.2011, 00:08:36
pokial viem tak on tam bol a teraz uz nie je, cize ho asi niekto zodpovedny musel zvesit, nerob paniku  :)
Title: Re: OOP
Post by: veteran on 12.12.2011, 00:29:46
vies co, nam Kapa vravel samozrejme ak som ho spravne pochopil, ze ak mame nejaku metodu kde mas parameter game napr

execute(Game game,....) tak tam treba pouzivat game.GetUI.println("aa");
Hej, hej, také čosi spomínal aj doc. Tomášek.
Title: Re: OOP
Post by: veteran on 12.12.2011, 01:37:09
Ešte k chybovým hláškam. Mám rátať medzi ne aj takéto prípady?

Mám predmet skrutkovač, ktorým si potrebujem otvoriť cestu cez vetraciu šachtu. Keď skrutkovač použijem, vytvorí sa predmet "odmontovaný poklop" a môžem ísť. Ak však skrutkovač nepoužijem a chcem pokračovať cez neodmontovaný poklop, tak mi to vypisuje "Do vetracej sachty sa nevies dostat. Najprv odmontuj poklop."

Alebo:

V batohu mám peniaze, ktoré potrebujem na natankovanie auta. Prídem do pokladne pumpy a ak ju chcem opustiť bez zaplatenia, vypíše mi hlášku "Hej, chces zdrhnut bez zaplatenia?!".

Sú aj toto chybové hlášky? Dávate do dokumentácie aj takéto hlášky?
Title: Re: OOP
Post by: matus217 on 12.12.2011, 02:03:27
Ešte k chybovým hláškam. Mám rátať medzi ne aj takéto prípady?
...
Tieto hlasky som tam ja nezapisoval. To mi neprijde ako chybova hlaska, ale priamo reakcia hry na tvoj stav. Aspon mne to neprijde ako chyba...
Title: Re: OOP
Post by: Agamemnon on 12.12.2011, 02:22:19
to nie sú chybové hlášky... chybové hlášky sú veci typu... súbor neexistuje... príkaz neexistuje... a pod...
Title: Re: OOP
Post by: veteran on 12.12.2011, 17:35:38
Tieto hlasky som tam ja nezapisoval. To mi neprijde ako chybova hlaska, ale priamo reakcia hry na tvoj stav. Aspon mne to neprijde ako chyba...

to nie sú chybové hlášky... chybové hlášky sú veci typu... súbor neexistuje... príkaz neexistuje... a pod...

Oukej, takže treba dávať len "systémové hlášky". :)
Title: Re: OOP
Post by: mirek on 12.12.2011, 19:07:37
Hej takto by to malo byt. Tu mapu netreba vytvorit fyzicky, ale len inicializovat a nastavit vychody a priradit im miestnosti. Celkovy prikaz mapa je podla mna brany ako rozsirenie. Ja osobne som spravil prikaz mapa ktory mi vypisuje uz navstivene miestnosti, a zobrazuje v ktorej sa aktualne nachadzam. A ratam to ako a jedno z povinnych rozsireni...
ano - tak ako hovoris. trosku som tu ulohu preformuloval, aby bola zrozumitelnejsia. dolezite je ale vnimat kontext - ta doplnkova uloha je ku cviceniu, v ktorom sa riesi virtualna reprezentacia sveta. takze ak ste zvladli vytvorit styri miestnosti a prepojit ich, zvladnete vytvorit aj vsetky svoje miestonsti a prepojit ich.
Title: Re: OOP
Post by: mirek on 12.12.2011, 20:11:10
este k tomu menu ... ked bude gamestate SOLVED aj GAMEOVER ... cize hra sa ukonci uspesne alebo neuspesne tak malo by hodit do menu, ze ?
ano
Title: Re: OOP
Post by: orsi on 12.12.2011, 20:55:37
to uml ste ako poriesili ludia?
Title: Re: OOP
Post by: veteran on 12.12.2011, 22:21:42
Akým spôsobom sa dá zbaviť upozornenia PMDčka "OnlyOneReturn".

Hlási mi to napr. pri takýchto metódach:
Code: [Select]
public boolean nieco(){
        if(podm){
            prikaz1;
            return false;
        }
        else {
            prikaz2;
            return true;
        }
    }
Title: Re: OOP
Post by: Agamemnon on 12.12.2011, 22:24:22
Akým spôsobom sa dá zbaviť upozornenia PMDčka "OnlyOneReturn".

už sa to rozoberalo... máš zlý ruleset...

inak to ide urobiť tak, že priradíš to, čo chceš ako return z metódy, do nejakej premennej a na konci metódy len vrátiš tú premennú...
Title: Re: OOP
Post by: veteran on 13.12.2011, 00:01:42
Akým spôsobom sa dá zbaviť upozornenia PMDčka "OnlyOneReturn".

už sa to rozoberalo... máš zlý ruleset...

inak to ide urobiť tak, že priradíš to, čo chceš ako return z metódy, do nejakej premennej a na konci metódy len vrátiš tú premennú...
Aha, je to na predošlej strane. Inak, kvôli čomu to vypisuje také banality ako OnlyOneReturn. Trochu som gúglil a prakticky všetko, čo som našiel o vyriešení OnlyOneReturn-u, by sa dalo zhrnúť do vety - Keď vám to vadí, zakážte vypisovanie tejto chyby (odstráňte to z XMLka)  :D

A ešte takáto vec:
Keď mám takýto konštruktor:
public niečo(){
        super("meno","popis");
    }

... je potrebné do dokumentačných komentárov písať parameter @param meno a @param popis? NetBeans to tam implicitne nehádže, ale tie parametre tam vystupujú.
Title: Re: OOP
Post by: BlackBerry on 13.12.2011, 00:31:08
Akým spôsobom sa dá zbaviť upozornenia PMDčka "OnlyOneReturn".

Hlási mi to napr. pri takýchto metódach:
Code: [Select]
public boolean nieco(){
        if(podm){
            prikaz1;
            return false;
        }
        else {
            prikaz2;
            return true;
        }
    }
Netreba si to kontrolovat cez netbeans ale cez prikazovy riadok...a tam uz nechadze tu chybu

Title: Re: OOP
Post by: Agamemnon on 13.12.2011, 00:45:40
A ešte takáto vec:
Keď mám takýto konštruktor:
public niečo(){
        super("meno","popis");
    }

... je potrebné do dokumentačných komentárov písať parameter @param meno a @param popis? NetBeans to tam implicitne nehádže, ale tie parametre tam vystupujú.

nevystupujú tam žiadne parametre... ty máš popísať vstup do metódy... nie parametre všetkých metód, ktoré tvoja metóda volá... používateľa "nezaujíma" v tomto prípade, ako je metóda naimplementovaná... len to, čo robí, ako ju má zavolať (s akými parametrami) a čo bude jej návratová hodnota...
Title: Re: OOP
Post by: Agamemnon on 13.12.2011, 00:48:15
Quote
Inak, kvôli čomu to vypisuje také banality ako OnlyOneReturn. Trochu som gúglil a prakticky všetko, čo som našiel o vyriešení OnlyOneReturn-u, by sa dalo zhrnúť do vety - Keď vám to vadí, zakážte vypisovanie tejto chyby (odstráňte to z XMLka)

only-one-return je nezmysel, ktorý vymyslel niekto, kto pravdepodobne v živote neprogramoval (rozumej nejaký manager - najskôr QM alebo také niečo), a myslel si, že taká coding guideline zvýši čitateľnosť kódu, keď v skutočnosti sa takto dosiahne presný opak...
Title: Re: OOP
Post by: Stardox on 13.12.2011, 00:56:22
PMD mi hlasi, ze nesmiem mat viac, ako 30 importov. Stretol sa s tymto uz niekto a vie, ako to vyriesit?  :(
Title: Re: OOP
Post by: BlackBerry on 13.12.2011, 01:04:34
PMD mi hlasi, ze nesmiem mat viac, ako 30 importov. Stretol sa s tymto uz niekto a vie, ako to vyriesit?  :(
tak napr. import callofduty_item.*;...importne ti cely package
Title: Re: OOP
Post by: Stardox on 13.12.2011, 01:08:54
PMD mi hlasi, ze nesmiem mat viac, ako 30 importov. Stretol sa s tymto uz niekto a vie, ako to vyriesit?  :(
tak napr. import callofduty_item.*;...importne ti cely package

Je to tak! Vdaka za rychlu odpoved.  :)
Title: Re: OOP
Post by: provasik on 13.12.2011, 02:20:15
Btw, Halupkovy chlapci ktory ste niektoru bleskovku nepisali u neho a nemate ju ohodnotenu poproste osobu u ktorej ste si cvika nahradzali aby vam tieto blesky vyhodnotila. V pripade ak tak neurobite, tak vam za tu bleskovku dam 0 bodov !!!
Title: Re: OOP
Post by: bEnd3r on 13.12.2011, 04:26:09
ma mirek binas cvicenie z OOP aj utorok? ak ano tak kedy a kde?
Title: Re: OOP
Post by: Tren on 13.12.2011, 04:31:27
ma mirek binas cvicenie z OOP aj utorok? ak ano tak kedy a kde?
preco nevyuzivate tento maisportal ked potrebujete nieco take vyhladat? je tu vsetko od rozvrhu, rozvrh ucitela, miestnosti, rozvrh predmetu atd atd  :)
http://maisportal.tuke.sk/portal/rozvrhy.mais (http://maisportal.tuke.sk/portal/rozvrhy.mais)
Title: Re: OOP
Post by: bEnd3r on 13.12.2011, 04:37:05
dakujem.. vidim ze sa zalozky zase rozrastu :)
Title: Re: OOP
Post by: Stardox on 13.12.2011, 05:59:37
Mimochodom, je tu niekto od vas, kto ma cvicenia z OOP s Halupkom o 12:30? Lebo som pocul take veci, ze tento piatok (16.12.) nedojde Halupka, ale Binas. Ak je to tak, potom cas a miestnost ostavaju rovnake ne?
Title: Re: OOP
Post by: bEnd3r on 13.12.2011, 15:15:56
myslim ze binas spominal nieco ze cviko presunie na lezecku stenu na veterinu... alebo niekam do severnej veze domu svatej alzbety, nie som si isty..
Title: Re: OOP
Post by: Stardox on 13.12.2011, 16:15:21
myslim ze binas spominal nieco ze cviko presunie na lezecku stenu na veterinu... alebo niekam do severnej veze domu svatej alzbety, nie som si isty..

Ej! Aky to vtipny chlapec.  :D
Title: Re: OOP
Post by: bEnd3r on 13.12.2011, 16:25:23
vies jak sa hovori... blba otazka, blba odpoved
Title: Re: OOP
Post by: Stardox on 13.12.2011, 16:59:53
vies jak sa hovori... blba otazka, blba odpoved

Co uz, no. Ja len pre istotu.  :)
Title: Re: OOP
Post by: zaky on 13.12.2011, 18:47:21
poradte napad na povinny prikaz poloz, ze dokial nepolozim daco, nemozem postupovat dalej, ako by to mohlo vyzerat.. dikeska
Title: Re: OOP
Post by: veteran on 13.12.2011, 18:53:10
poradte napad na povinny prikaz poloz, ze dokial nepolozim daco, nemozem postupovat dalej, ako by to mohlo vyzerat.. dikeska
Keď položíš nejaký predmet, vytvor zároveň nejaký virtuálny predmet. Pokiaľ nebude existovať, tak sa z miestnosti nebudeš môcť pohnúť. Ja som to riešil takto  :laugh: Ale dá sa to určite aj elegantnejšie.

A teraz na príklade:
Mám miestnosť xyz a na sever od nej je miestnosť vetracia sachta. A tá je akože zablendovaná poklopom. Tak v tej miestnosti musím použiť predmet Skrutkovač. No a keď ho použijem, vznikne mi v miestnosti predmet OdmontovanyPoklop a môžem ísť. Ak OdmontovanyPoklop v miestnosti nie je, nedovolí mi pokračovať ďalej na sever.
Title: Re: OOP
Post by: veteran on 14.12.2011, 01:43:31
postupuj podla navodu
Instalar UML en Netbeans 6.8 (http://www.youtube.com/watch?v=fxZW2UCouiw&feature=related#)

mam to otestovane na netbeans 7:0.1  ;)
A ako sa ti to podarilo rozbehať? Mne to stále vyhadzuje chybu - nevie nájsť to XMLko (Unable to connect to the UML because of Connection timed out). Upravoval si nejako proxy konfiguráciu?

// EDIT: OK, už nič. Po hodine si to s tým "Connection timed out" rozmyslelo  bp
Title: Re: OOP
Post by: matotv on 14.12.2011, 15:10:20
neviete ako to je na cvikach s Kapom?
musime odoslat zadanie do polnoci, alebo ked chceme odovzdavat v Januari tak az niekedy cez prazdniny? pisal som mail, ale odpovede som sa zatial nedockal a o chvilu to treba mozno mat :D
Title: Re: OOP
Post by: charlie on 14.12.2011, 19:12:39
tiez by ma zaujimalo, ked napise daj vediet.  :beer1:
Title: Re: OOP
Post by: ondrei on 14.12.2011, 22:56:03
postupuj podla navodu
Instalar UML en Netbeans 6.8 (http://www.youtube.com/watch?v=fxZW2UCouiw&feature=related#)

mam to otestovane na netbeans 7:0.1  ;)
A ako sa ti to podarilo rozbehať? Mne to stále vyhadzuje chybu - nevie nájsť to XMLko (Unable to connect to the UML because of Connection timed out). Upravoval si nejako proxy konfiguráciu?

// EDIT: OK, už nič. Po hodine si to s tým "Connection timed out" rozmyslelo  bp
aka je ta  URL adresa co tam pasteoval v tom videu?
Title: Re: OOP
Post by: veteran on 14.12.2011, 23:22:32
postupuj podla navodu
Instalar UML en Netbeans 6.8 (http://www.youtube.com/watch?v=fxZW2UCouiw&feature=related#)

mam to otestovane na netbeans 7:0.1  ;)
A ako sa ti to podarilo rozbehať? Mne to stále vyhadzuje chybu - nevie nájsť to XMLko (Unable to connect to the UML because of Connection timed out). Upravoval si nejako proxy konfiguráciu?

// EDIT: OK, už nič. Po hodine si to s tým "Connection timed out" rozmyslelo  bp
aka je ta  URL adresa co tam pasteoval v tom videu?
Code: [Select]
http://ea.ddns.com.br:8090/netbeans6.8/UML/catalog.xml
Je napísaná v popise videa ;)
Title: Re: OOP
Post by: ondrei on 14.12.2011, 23:27:31
dik. dufam ze to pojde aj na 6.9.1
Title: Re: OOP
Post by: xxx3 on 15.12.2011, 02:01:14
pojde ... keby nie, tak je take tazke spravit update na sedmickovy netbeans ?
Title: Re: OOP
Post by: Stardox on 15.12.2011, 03:04:15
Podarilo sa niekomu uspesne spojazdnit tie JUnit testy pre ParserImpl? Skusil som taketo nieco:
Code: [Select]
@Test
    public void testGetCommand() {
       
        /*List<String> listOfKnownCommands = Arrays.asList("SEVER", "juh",
        "   VYCHOD", "zapad   ", "rozhliadni SA", "inVENtar", "KONIEC",
        "VEZMI", "POLOZ", "POUZI", "PRESKUMAJ", "PRIKAZY", "NAHRAJ",
        "ULOZ", "VERZIA", "RESTART" );*/
       
        System.out.println("getCommand");
        String arg0 = "SEVER";
        ParserImpl instance = new ParserImpl();
        //Command expResult = null;
        Command result = instance.getCommand(arg0);
        assertEquals(new North(), result);
        // TODO review the generated test code and remove the default call to fail.
        //fail("The test case is a prototype.");
    }

Ale po spusteni test failne:
Code: [Select]
Testcase: testGetCommand(commands.ParserImplTest): FAILED
expected:<commands.North@1ca4eb4> but was:<commands.North@f522e8>
junit.framework.AssertionFailedError: expected:<commands.North@1ca4eb4> but was:<commands.North@f522e8>
at commands.ParserImplTest.testGetCommand(ParserImplTest.java:58)

Cize ak tomu spravne rozumiem, mam 2 instancie North, lenze ta prva ma ako keby ine ID?
Title: Re: OOP
Post by: Agamemnon on 15.12.2011, 03:14:47
Podarilo sa niekomu uspesne spojazdnit tie JUnit testy pre ParserImpl? Skusil som taketo nieco:
Code: [Select]
@Test
    public void testGetCommand() {
       
        /*List<String> listOfKnownCommands = Arrays.asList("SEVER", "juh",
        "   VYCHOD", "zapad   ", "rozhliadni SA", "inVENtar", "KONIEC",
        "VEZMI", "POLOZ", "POUZI", "PRESKUMAJ", "PRIKAZY", "NAHRAJ",
        "ULOZ", "VERZIA", "RESTART" );*/
       
        System.out.println("getCommand");
        String arg0 = "SEVER";
        ParserImpl instance = new ParserImpl();
        //Command expResult = null;
        Command result = instance.getCommand(arg0);
        assertEquals(new North(), result);
        // TODO review the generated test code and remove the default call to fail.
        //fail("The test case is a prototype.");
    }

Ale po spusteni test failne:
Code: [Select]
Testcase: testGetCommand(commands.ParserImplTest): FAILED
expected:<commands.North@1ca4eb4> but was:<commands.North@f522e8>
junit.framework.AssertionFailedError: expected:<commands.North@1ca4eb4> but was:<commands.North@f522e8>
at commands.ParserImplTest.testGetCommand(ParserImplTest.java:58)

Cize ak tomu spravne rozumiem, mam 2 instancie North, lenze ta prva ma ako keby ine ID?

implementni equals metódu do commandov... stačí aby porovnala, či sa rovnajú typy, myslím... mohlo by stačiť do abstrakt classy... ale nie som si istý, ako sa má junit správať v tomto prípade, keďže ho nepoužívam... takže ti nvm povedať, či je chyba u teba alebo v nejakých nastaveniach junitu...

inak - ako ja tomu testu rozumiem... tak ideš na to zle... mal by si urobiť foreach cez ten list a testnúť to z listu... aspoň tak to chápem ja - a tak by som to aj implementoval
Title: Re: OOP
Post by: Jason Bourne on 15.12.2011, 07:26:53
Code: [Select]
public void testGetCommand() {
        System.out.println("getCommand");
        ParserImpl instance = new ParserImpl();
        Command expResult = null;
        for (String string : listCommands) {
            string=string.toUpperCase().trim();
            System.out.print(string + " --- ");
            Command result = instance.getCommand(string);
        if (result!=null){
            System.out.println("dobre");}
        else {assertEquals("OK",expResult, result);
                System.out.println("zle");}
        }
    }
Ja to mam nejak tak, sice neviem ci dobre. A pre GameImpl by ste nemohli niekto postnut?
Title: Re: OOP
Post by: tino8 on 15.12.2011, 20:40:46
Code: [Select]
public void testGetCommand() {
        System.out.println("getCommand");
        ParserImpl instance = new ParserImpl();
        Command expResult = null;
        for (String string : listCommands) {
            string=string.toUpperCase().trim();
            System.out.print(string + " --- ");
            Command result = instance.getCommand(string);
        if (result!=null){
            System.out.println("dobre");}
        else {assertEquals("OK",expResult, result);
                System.out.println("zle");}
        }
    }
Ja to mam nejak tak, sice neviem ci dobre. A pre GameImpl by ste nemohli niekto postnut?

mas to zle, nastuduj si lepsie naco su tie testy... inspirovat sa mozes predchadzajucim prispevkom
Title: Re: OOP
Post by: visvk on 15.12.2011, 21:41:20
Zdravim
neviem vyriesit jedno hlasenie v PMD
   Buď deklarujte statickú premennú 'historiaCommands' ako final, alebo sa vyhnite priradeniu jej hodnoty v konštruktore.
Quote
public class History {
    private static History instance = new History();
    /**
     * list pre historiu prikazov
     */
    public static List<String> historiaCommands= new ArrayList<String>();
    /**
     * Zoznam pouzitych prikazov
     */
    /**
     * konstruktor
     */
    public History() { 
    historiaCommands = new ArrayList<String>();

ked to skusam nejak obmienat, vkuse mi vyjde nejaka chyba, cize stale sa dostanem ku tomuto zapisu. A PMD sa to nepaci... co s tym?
Title: Re: OOP
Post by: ondrei on 15.12.2011, 21:46:53
Zdravim
neviem vyriesit jedno hlasenie v PMD
   Buď deklarujte statickú premennú 'historiaCommands' ako final, alebo sa vyhnite priradeniu jej hodnoty v konštruktore.
Quote
public class History {
    private static History instance = new History();
    /**
     * list pre historiu prikazov
     */
    public static List<String> historiaCommands= new ArrayList<String>();
    /**
     * Zoznam pouzitych prikazov
     */
    /**
     * konstruktor
     */
    public History() { 
    historiaCommands = new ArrayList<String>();

ked to skusam nejak obmienat, vkuse mi vyjde nejaka chyba, cize stale sa dostanem ku tomuto zapisu. A PMD sa to nepaci... co s tym?

public class History {
   
    /**
     * list pre historiu prikazov
     */
    private List<String> historiaCommands;
    /**
     * Zoznam pouzitych prikazov
     */
    /**
     * konstruktor
     */
    public History() { 
    historiaCommands = new ArrayList<String>();
vyskusaj
Title: Re: OOP
Post by: visvk on 15.12.2011, 22:08:31
no lenze ja tu historiaCommands vyuzivam aj v GameImpl
for(String command : History.historiaCommands)
nejak takto, a tym ze to uz nieje public, nemozem to tu volat... jednoducho, musim to nejak inac zapisat. len neviem ako, lebo stale niekde je chyba.
Title: Re: OOP
Post by: ondrei on 15.12.2011, 22:21:49
tak potom neviem. ocividne na to ides inak ako ja. ja mam vsetky metody co robia s tym listom prikazov v triede History a tym padom ich mam dekl ako private
Title: Re: OOP
Post by: bEnd3r on 15.12.2011, 22:28:32
visvk, na to si vytvor metodu getHistoriaCommands
Title: Re: OOP
Post by: visvk on 15.12.2011, 23:13:58
no nejak som urobil ten getCommand a tamto nejak kus zlozitejsie nahradil, ale i tak tu chybu som nevyriesil, cize to je zbytocne, stale v PMD vyhodi tu istu hlasku.
Title: Re: OOP
Post by: Agamemnon on 15.12.2011, 23:22:42
Quote
Buď deklarujte statickú premennú 'historiaCommands' ako final, alebo sa vyhnite priradeniu jej hodnoty v konštruktore.

čo na tom nechápeš? však tam máš presne napísané, čo máš urobiť, aby si tú pmd chybu odstránil...
Title: Re: OOP
Post by: visvk on 16.12.2011, 01:18:56
chyba uz je odstranena. Ano je tam napisane, vlastne to, ze to mam vymazat z konstruktora, ale len toto nestacilo. aspon nie mne.
Title: Re: OOP
Post by: xxx3 on 16.12.2011, 04:26:37
kto ste uz odovzdali zadanie u Kapu, mate uz niekto zapocet v maise ???
Title: Re: OOP
Post by: ohen on 16.12.2011, 06:52:20
vie niekto, kedy budu dalsie terminy na preberanie zadania v januari, kde tieto info budu a ci bude este moznost odoslat zadanie na moodle a kedy? vdaka
Title: Re: OOP
Post by: Eriik on 16.12.2011, 14:14:32
vie niekto, kedy budu dalsie terminy na preberanie zadania v januari, kde tieto info budu a ci bude este moznost odoslat zadanie na moodle a kedy? vdaka
to by ma tiež zaujímalo
Title: Re: OOP
Post by: PaliP on 16.12.2011, 14:51:23
 :beer1:
Title: Re: OOP
Post by: xxx3 on 16.12.2011, 17:36:47
Kapa este stale nezapisal nikomu zapocet do maisu ?
Title: Re: OOP
Post by: MartinK on 16.12.2011, 20:09:29
Nie este som nezapisal  :ropebanana: ... ale uz sa to blizi! bp :emot-dance:
Title: Re: OOP
Post by: pietro316 on 16.12.2011, 20:55:58
Nie este som nezapisal  :ropebanana: ... ale uz sa to blizi! bp :emot-dance:

Bude sa dat buduci tyzden este odovzdat zadanie? Lebo nietkori cviciaci este budu preberat zadania aj buduci tyzden.
Title: Re: OOP
Post by: xxx3 on 16.12.2011, 21:48:45
Nie este som nezapisal  :ropebanana: ... ale uz sa to blizi! bp :emot-dance:

bolo by na case, chcel by som sa prihlasit totiz na nejaky normalny termin na skusku  :ropebanana:
Title: Re: OOP
Post by: MartinK on 17.12.2011, 00:59:22
Nie este som nezapisal  :ropebanana: ... ale uz sa to blizi! bp :emot-dance:

Bude sa dat buduci tyzden este odovzdat zadanie? Lebo nietkori cviciaci este budu preberat zadania aj buduci tyzden.

Odporucal by som sledovat Moodle, mam take tusenie, ze na dalsi tyzden sa vypise uz jeden termin na hromadne odovzdavanie zadani.
Title: Re: OOP
Post by: milaninho on 17.12.2011, 02:56:04
so far je termin na odovzdavanie zadania 21. 12. 2011, streda od 8:00 v PC1
Title: Re: OOP
Post by: xxx3 on 17.12.2011, 04:41:26
Nie este som nezapisal  :ropebanana: ... ale uz sa to blizi! bp :emot-dance:
kedy to tam uz bude ? :D
Title: Re: OOP
Post by: pietro316 on 19.12.2011, 06:01:31
so far je termin na odovzdavanie zadania 21. 12. 2011, streda od 8:00 v PC1

Ten termin je len pre ludi od Tomaseka? Alebo aj pre ludi od kapa?
Title: Re: OOP
Post by: zaky on 19.12.2011, 07:26:19
zdar, mam pruser, mam vela prikazov ktore mozu nieco robit s predmetmi, to znamena ze ak zistujem co je na vstupe mam dost dlhy if (param.startsWith("oslov")||param.startsWith("sprav si")||param.startsWith("hod")) atd.. a teraz mi pmd stale vypisuje chybu ze
Znížte počet: 'if', 'while', 'for', 'case' príkazov v rámci 'method processCommand' (zložitosť je 11 z 10).
co s tym ? neviem ci toto mu vadi ze mam vela moznych prikazov ale skusil som zmazat 2 prikazy a uz mi tu chybu nevypisovalo, jak to mam obist? nemozem 2 prikazy vynechat, potrebujem ich :/
skuste mi helfnut
Title: Re: OOP
Post by: Agamemnon on 19.12.2011, 16:03:20
zdar, mam pruser, mam vela prikazov ktore mozu nieco robit s predmetmi, to znamena ze ak zistujem co je na vstupe mam dost dlhy if (param.startsWith("oslov")||param.startsWith("sprav si")||param.startsWith("hod")) atd.. a teraz mi pmd stale vypisuje chybu ze
Znížte počet: 'if', 'while', 'for', 'case' príkazov v rámci 'method processCommand' (zložitosť je 11 z 10).
co s tym ? neviem ci toto mu vadi ze mam vela moznych prikazov ale skusil som zmazat 2 prikazy a uz mi tu chybu nevypisovalo, jak to mam obist? nemozem 2 prikazy vynechat, potrebujem ich :/
skuste mi helfnut

vadi mu, ze mas vela if-ov... ti to tam aj pise...
urob mensi pocet ifov... pripadne pastni kod a mozno ti poradim, ze ako
Title: Re: OOP
Post by: razer08 on 19.12.2011, 18:30:57
Urobil som junit test takto:
    @Test
    public void testGetCommand() {
        List<String> listCommands = Arrays.asList("SEVER", "juh",
        "   VYCHOD", "zapad   ", "rozhliadni SA", "inVENtar", "KONIEC",
        "VEZMI", "POLOZ", "POUZI", "PRESKUMAJ", "PRIKAZY", "NACITAJ",
        "ULOZ", "VERZIA", "RESTART" );
        ParserImpl instance = new ParserImpl();
        Command expResult = null;
        for(String key: listCommands){
            assertNotNull(instance.getCommand(key));
        }
    }

ale vzdy mi hadze chybu:
No test passed, 1 test failed
adventure.ParserImplTest FALED
testGetCommand Failed:junit.framework.AssertionFailedError

kto by mi vedel pomoct?
Title: Re: OOP
Post by: Brand on 19.12.2011, 18:50:56
Ze test pada, neznamena nutne, ze je zly, skor to znamena, ze splnil ucel a nesiel chybu :).

Daj si na riadok

assertNotNull(instance.getCommand(key));

breakpoint a skus to trosku podebugovat, na zaciatok len prejdi ten cyklus, aby si videl, pri ktorom prikaze Ti to pada, mozno nemas osetreny niektory pripad (case sensitive? trim?)
Title: Re: OOP
Post by: razer08 on 19.12.2011, 19:27:51
Ze test pada, neznamena nutne, ze je zly, skor to znamena, ze splnil ucel a nesiel chybu :).

Daj si na riadok

assertNotNull(instance.getCommand(key));

breakpoint a skus to trosku podebugovat, na zaciatok len prejdi ten cyklus, aby si videl, pri ktorom prikaze Ti to pada, mozno nemas osetreny niektory pripad (case sensitive? trim?)

diky...mal som iny problem...toUpperCase som robil vTextUI v loop-e a v getCommand-e som nemal toUpperCase a kvoli tomu neakceptoval velke pismena...akoze hra uz akceptoval len v getCommand-e mi neurobil toUpperCase :) uz len backpackimpltest mi chyba
Title: Re: OOP
Post by: esperian on 20.12.2011, 01:47:01
ahojte, tak trocha sa bavkam v jave a chcel by som sa spytat mozno niekto skusal nieco podobne.. nasiel som kniznicu java.util.Calendar; no a teraz by som chcel spravit nieco take, ze získam si koľko je práve sekúnd int sec=cal.get(Calendar.SECOND); , no a teraz by som chcel aby sa mi ten cas prekresloval na výstupe .. ze 8 potom by tam bolo 9 ..10.. atd.. len neviem ci to je aj realne s mojimi znalostami, ale tak aspon skusam xDDD
---
dik  ;)
Title: Re: OOP
Post by: Agamemnon on 20.12.2011, 01:48:46
ahojte, tak trocha sa bavkam v jave a chcel by som sa spytat mozno niekto skusal nieco podobne.. nasiel som kniznicu java.util.Calendar; no a teraz by som chcel spravit nieco take, ze získam si koľko je práve sekúnd int sec=cal.get(Calendar.SECOND); , no a teraz by som chcel aby sa mi ten cas prekresloval na výstupe .. ze 8 potom by tam bolo 9 ..10.. atd.. len neviem ci to je aj realne s mojimi znalostami, ale tak aspon skusam xDDD


http://docs.oracle.com/javase/1.3/docs/api/java/util/Timer.html (http://docs.oracle.com/javase/1.3/docs/api/java/util/Timer.html)
Title: Re: OOP
Post by: Eriik on 20.12.2011, 02:29:33
Quote
Metóda obsahuje viac ako 99 príkazov. Skúste redukovať jej veľkosť vytvorením pomocných metód.
Je to vážne nutné ? nechce sa mi teraz prerábať celú metódu createRooms() ...
Title: Re: OOP
Post by: ppeess on 20.12.2011, 02:35:11
ahojte, tak trocha sa bavkam v jave a chcel by som sa spytat mozno niekto skusal nieco podobne.. nasiel som kniznicu java.util.Calendar; no a teraz by som chcel spravit nieco take, ze získam si koľko je práve sekúnd int sec=cal.get(Calendar.SECOND); , no a teraz by som chcel aby sa mi ten cas prekresloval na výstupe .. ze 8 potom by tam bolo 9 ..10.. atd.. len neviem ci to je aj realne s mojimi znalostami, ale tak aspon skusam xDDD
---
dik  ;)
Preco to chces robit takto?????? :)
Title: Re: OOP
Post by: Agamemnon on 20.12.2011, 03:13:15
Quote
Metóda obsahuje viac ako 99 príkazov. Skúste redukovať jej veľkosť vytvorením pomocných metód.
Je to vážne nutné ? nechce sa mi teraz prerábať celú metódu createRooms() ...

však len zober skupinu príkazov, ktorá robí nejakú zmysluplnú vec a exportni ich do zvláštnej metódy... ja nvm... createRoomsInFirstBuilding...
Title: Re: OOP
Post by: xxx3 on 20.12.2011, 04:01:31
nam Kapa vravel, ze v createrooms ked bude PMDcko hlasit chybu o pocte riadkov, ze je prilis rozsiahla, tak ze tato chyba nebude vadit ...
Title: Re: OOP
Post by: Eriik on 20.12.2011, 18:14:36
Quote
Metóda obsahuje viac ako 99 príkazov. Skúste redukovať jej veľkosť vytvorením pomocných metód.
Je to vážne nutné ? nechce sa mi teraz prerábať celú metódu createRooms() ...

však len zober skupinu príkazov, ktorá robí nejakú zmysluplnú vec a exportni ich do zvláštnej metódy... ja nvm... createRoomsInFirstBuilding...
čo sa dalo tak som takto spravil .. zvyšok by si žiadal rozsiahlejšie zmeny a to sa mi už vôbec nechce robiť..

nam Kapa vravel, ze v createrooms ked bude PMDcko hlasit chybu o pocte riadkov, ze je prilis rozsiahla, tak ze tato chyba nebude vadit ...
super, tak dík :)
Title: Re: OOP
Post by: NightWalker on 20.12.2011, 21:42:03
neviete niekto poradit so save() ??? vytvorim si subor,ale z history mi don nezapise nic
Title: Re: OOP
Post by: Agamemnon on 20.12.2011, 23:00:54
neviete niekto poradit so save() ??? vytvorim si subor,ale z history mi don nezapise nic

tak niečo robíš zle...












-------

pastni kód, napíš čo robíš, etc... si myslíš, že viem čítať myšlienky alebo kód bez toho, aby som ho videl?
Title: Re: OOP
Post by: NightWalker on 20.12.2011, 23:59:34
v tride save som si vytvoril
    public void execute(Game game, String path) {       
        try {
           History.getInstance().save(path);
        } catch (IOException ex) {
            //Logger.getLogger(Save.class.getName()).log(Level.SEVERE, null, ex);
            System.out.print(ex);
        }       
          game.setGameState(GameState.PLAYING);
    }

malo by to sluzit na ulozenie

a v triede history ulozenie array listu do suboru

 public void save(String path) throws IOException{
        String subor = path.trim();
        if (subor.length() == 0) { subor = "save.txt"; }

         File aFile = new File(subor);
    aFile.createNewFile();
    try {
    LibraryMethods.save((ArrayList<String>) this.historyZoznam, subor);
    } catch (Exception ex) {
        System.out.println(ex.getMessage());
    }
    System.out.println("Game Saved !!");

    }
Title: Re: OOP
Post by: Agamemnon on 21.12.2011, 01:01:25
odhadom... nemáš ten súbor vytvárať... pretože tak, ako ho ty vytvoríš, tak súbor ostane otvorený, a potom tá metóda save z LibraryMethods, keď sa ho pokúsi vytvoriť znovu, tak nemá šancu... nie je to síce v javadoc špecifikované, ale tak nejak to z toho, čo tam je napísané, vyplýva...
pastni akú ti to píše exception... keď už tam máš ten výpis chyby urobený

btw... handling resources... každý súbor, ktorý otvoríš, máš za sebou aj zavrieť...
Title: Re: OOP
Post by: excellent on 23.12.2011, 22:51:33
Čaute, vy čo ste odovzdávali zadanie v stredu, máte už zápočet na MAIS-e?
Title: Re: OOP
Post by: darkoooooo on 24.12.2011, 20:49:56
Čaute, vy čo ste odovzdávali zadanie v stredu, máte už zápočet na MAIS-e?

nie ...
Title: Re: OOP
Post by: zaky on 25.12.2011, 18:43:41
anooo.. s tomaskom mam
Title: Re: OOP
Post by: milaninho on 26.12.2011, 15:54:46
nam Kapa vravel, ze v createrooms ked bude PMDcko hlasit chybu o pocte riadkov, ze je prilis rozsiahla, tak ze tato chyba nebude vadit ...

pokial viem toto plati vseobecne, nielen u Kapu
Title: Re: OOP
Post by: charlie on 05.01.2012, 19:03:28
cawte, vedel by mi niekto pomoct s teleportom? chcel by som po pouziti nejakeho predmetu (napr kolac) aby sa postava teleportla do inej miestnosti.
som vlzil do itemu prikaz adventure.GameImpl.setCurrentRoom(); ale neviem ako mam zadat nazov miestnosti. v game impl ich mam  v poli. dalo by sa to nejako poriesit cez meno alebo description?

diki
Title: Re: OOP
Post by: Mattotelle on 05.01.2012, 19:22:34
cawte, neviete mi niekto poradit, pri pmd mi hlasy chybu processing errors, nejaka chyba pri Error while parsing iba pri tridach ktore obsahuju ArrayListy? ako to treba upravit aby to slo?? je to vobec nejaka chyba?
Title: Re: OOP
Post by: matus217 on 05.01.2012, 23:05:22
cawte, neviete mi niekto poradit, pri pmd mi hlasy chybu processing errors, nejaka chyba pri Error while parsing iba pri tridach ktore obsahuju ArrayListy? ako to treba upravit aby to slo?? je to vobec nejaka chyba?
pri inicializovani toho arrayListu napis rovno aj typ ze <String>, ta nova java hlasi ze staci prazdny diamond, ale to berie PMDcko ako ten processing error...
Title: Re: OOP
Post by: Agamemnon on 05.01.2012, 23:06:10
ta nova java hlasi ze staci prazdny diamond

na také nezmysly si nezvykajte
Title: Re: OOP
Post by: matus217 on 06.01.2012, 00:14:56
ta nova java hlasi ze staci prazdny diamond

na také nezmysly si nezvykajte
Ja som sa s tym stretol dnes prvy krat :D Lebo svoje zadanie som robil pod 6kovou javou, a dnes som prave kamosovi opravoval presne hore spomenutu chybu... Ale prijde mi to ako hlupost ze sa to vobec takto da napisat... Este aj netbeans to oznacuje zltym...
Title: Re: OOP
Post by: charlie on 06.01.2012, 17:19:53
cawte, vie niekto ako mozem pozmenit nazov itemu ak pouzivam dedenie?

Code: [Select]
public class keksa extends AbstractItem{
   
         public keksa(){
              super("nazov", "popis");
}

by som tu rad pouzil premmenu a cez opdmienky to pomenil, ale mi to nefacha. neviete ako to obist? lebo nechcem vytvarat zbytocne dalsie itemy, ked nemusim.
Title: Re: OOP
Post by: Agamemnon on 06.01.2012, 18:10:39
cawte, vie niekto ako mozem pozmenit nazov itemu ak pouzivam dedenie?

Code: [Select]
public class keksa extends AbstractItem{
   
         public keksa(){
              super("nazov", "popis");
}

by som tu rad pouzil premmenu a cez opdmienky to pomenil, ale mi to nefacha. neviete ako to obist? lebo nechcem vytvarat zbytocne dalsie itemy, ked nemusim.

nechápem úplne, čo chceš, podľa toho, čo si napísal...

ale zmeniť názov môžeš napr. takto:

Code: [Select]
public keksa(nazov) {
  super(nazov);
}
Title: Re: OOP
Post by: charlie on 07.01.2012, 16:56:26
v Junit test pre parserImpl ma byt len testGetCommand()? alebo aj ine metody?
Title: Re: OOP
Post by: charlie on 08.01.2012, 17:39:26
seruste, kde nastavim GameState? napr, ze pri GAMEOVER mi vypise dajaku hlasku a hodi do menu? bo to nikde nemozem najst  >:(
Title: Re: OOP
Post by: xxx3 on 08.01.2012, 18:38:47
ja som to tusim do TextUI daval, to menu
Title: Re: OOP
Post by: matotv on 08.01.2012, 23:13:14
ako to vlastne bude zajtra prebiehat? pri kom to budeme odovzdavat? sice zatial nenapisali miestnosti ani nic, ale tak mozno niekto ma blizsie info :D
Title: Re: OOP
Post by: ohen on 09.01.2012, 01:58:13
mna by tiez zaujimalo kde sa bude odovzdavat. je 13 hodin pred odovzdanim a miestnosti nie su zverejnene  bu
Title: Re: OOP
Post by: matotv on 09.01.2012, 02:47:45
takze uz to je upravene, pk6-pc1 to bude od 9
Title: Re: OOP
Post by: ohen on 10.01.2012, 20:35:43
Mate uz zapisane zapocty po vserajsom odovzdavani?
Title: Re: OOP
Post by: matotv on 10.01.2012, 21:16:54
Mate uz zapisane zapocty po vserajsom odovzdavani?

zatial nie, ale myslim ze to budu zapisovat az po stvrtkovom termine..
Title: Re: OOP
Post by: Domino_666 on 11.01.2012, 19:53:34
čafte, keď chcem inštalovať ten UML plugin podľa youtube videa čo tu niekde bolo, stále mám timeout spojenia  am
dával som tam link (to http:// ) čo bol v komentári k videu
pripojenie, firewall a podobné veci mám na 100% správne nastavené (skúšal som aj firewall vypnúť a tak)
pls help
Title: Re: OOP
Post by: ohen on 12.01.2012, 18:47:59
uz mate zapisane zapocty po pondelkovom, alebo stvrtkovom odovzdavani zadania?
Title: Re: OOP
Post by: matotv on 12.01.2012, 19:03:33
uz mate zapisane zapocty po pondelkovom, alebo stvrtkovom odovzdavani zadania?


pondelok som bol a este nemam, cviciaci Kapa
Title: Re: OOP
Post by: xxx3 on 13.01.2012, 23:06:06
minuly rok vraj bolo na skuske naprogramovat predmet truhlica + jednu miestnost a nejake metody, prikazy .... ale ako tam treba spravit novu miestnost a nastavit ju na aktualnu ked nam Kapa vravel, ze nebudeme mat pristup k tym triedam zadania, ze vsetky budu v ramci kniznice a ich kod si nebudeme vediet ani len pozriet ... tak potom ako mozem nastavit napr. aktualnu miestnost na tu mnou vytvorenu ked nebudem mat pristup do kodu GameImpl kde sa vytvaraju miestnosti ?
Title: Re: OOP
Post by: neucilasom on 14.01.2012, 19:19:40
minuly rok vraj bolo na skuske naprogramovat predmet truhlica + jednu miestnost a nejake metody, prikazy .... ale ako tam treba spravit novu miestnost a nastavit ju na aktualnu ked nam Kapa vravel, ze nebudeme mat pristup k tym triedam zadania, ze vsetky budu v ramci kniznice a ich kod si nebudeme vediet ani len pozriet ... tak potom ako mozem nastavit napr. aktualnu miestnost na tu mnou vytvorenu ked nebudem mat pristup do kodu GameImpl kde sa vytvaraju miestnosti ?

Do GameImpl pristup bude ked to bude tak kao minuly rok.
Title: Re: OOP
Post by: bEnd3r on 14.01.2012, 19:33:14
a budes mat aj pristup k dokumentacii pokial viem..
Title: Re: OOP
Post by: esperian on 14.01.2012, 19:46:42

Do GameImpl pristup bude ked to bude tak kao minuly rok.

a min. rok ste mali nakodit nieco take, že ste to aj realne mali mat v svojom zadani krore ste odovzdavali ??
Title: Re: OOP
Post by: ppeess on 14.01.2012, 21:32:48

Do GameImpl pristup bude ked to bude tak kao minuly rok.

a min. rok ste mali nakodit nieco take, že ste to aj realne mali mat v svojom zadani krore ste odovzdavali ??
Tak na termine co som bol ja sme mali nakodit miestnost, nastavit jej vychody, pridat do nej predmet TRUHLICA, ptm pridat prikazy otvor a zatvor a este sme mali urobit jedno rozhranie ...... vysledok bol taky, ze ked si dal otvor truhlica ti malo napisat ze truhlica sa otvorila resp. ked uz bola otvorena ti malo napisat ze truhlica je uz otvorena, pri prikaze zatvor to bolo obdobne .......
Title: Re: OOP
Post by: james138 on 14.01.2012, 23:32:13
noo presne presne to bolo tak ze do gameipml bude pristup a oni ti daju navod kde bude presne popisane ze co mas srpavit !
ja to sice opakujem ale tuto prakticku cast som spravil ale som nevyklikal test na dekana :D taze tak :)
pisal som kapovi lebo som si dal uznat zapich a pytal som sa ci budu nejake zmeny lebo som nechodil na cvika a povedal ze podobne!
vytvorit mozno 2 alebo 1 miestnost, do niech hodis predmet, a potom ti daju vytvorit nejake predmety ktore bud si jednoduche ze nic nerobia ale mas ich vytvorit a dat do miestnosti alebo maju nieco ako ta truhlica ze mala vypisat ze ju otvoris alebo ci uz je vytvorena !
nic zlozite ! len klud a rozmyslat ! dufam ze aj tento rok to bude podobne ale co som pozeral moodle tak ste isli presne toto co my minuly rok :)
PS : ja sa chcem praveze opytat ze som pocul ze tento rok malo niektori special zadnie ? na K sa to vola neviem presne:) ale to vraj na skuske nebude ze to ma nieco uz s 2D grafikou ?
Title: Re: OOP
Post by: xxx3 on 15.01.2012, 00:46:41
hej, jedna skupina mala specialne zadanie, ktore si chcel Binas otestovat .. a asi buduci rok sa uz bude robit to (alebo aj to ?) .. vola sa Fred
Title: Re: OOP
Post by: Wolfdale on 15.01.2012, 03:29:49
ked spravim prakticku cast a klikacku nie na riadnom termine, na opravnom idem opat na obidve casti?
Title: Re: OOP
Post by: BlackBerry on 15.01.2012, 03:53:02
ked spravim prakticku cast a klikacku nie na riadnom termine, na opravnom idem opat na obidve casti?
Ja mam take info ze uz nie..ale niesu to 100% zdroje ;)
Title: Re: OOP
Post by: xxx3 on 15.01.2012, 04:05:41
ked nespravis klikacku opakujes len klikacku
Title: Re: OOP
Post by: james138 on 15.01.2012, 06:49:50
Este sa chcem opytat info, ak ste sa pytali cviciacich , co sa da ocakavat na skuske ? hlavne tej programovacej nieco ako minuly rok ? co som ja pisal kapovi tak povedal ze ano nieco podobne, tak nejake presnejsie info ?
Title: Re: OOP
Post by: xxx3 on 15.01.2012, 16:31:48
mna ucil Kapa a ked sme odovdudavali zadania tak hovoril, ze bude nieco take, ze vytvorit nejake miestnosti, dat do nich itemy a vytvorit nejake prikazy a take veci .. konkretnejsi nebol
Title: Re: OOP
Post by: xxx3 on 15.01.2012, 17:53:39
ja som si skusal spravit tu Truhlicu co ste mali minuly rok, to som zvladol, tak snad bude ozaj nieco podobne, podobna obtiaznost ... a z coho sa ucis na klikacku ? Z tych EN prednasok ?
Title: Re: OOP
Post by: james138 on 15.01.2012, 18:44:22
na edukite su nejake otazky :) tak tie si idem pozriet :) a tu je este jedno pdf-ko http://leteckaposta.cz/177426266 (http://leteckaposta.cz/177426266) :) nech sa paci :) a drzim palce a nezabudnite vsetci sem pridavat skusesnoti zo zajtrajska co ste mali a tak !
Title: Re: OOP
Post by: bEnd3r on 17.01.2012, 01:56:20
ak chces aby zadania boli aspon zhruba rovnake tak to ries inde...
Title: Re: OOP
Post by: Agamemnon on 17.01.2012, 08:41:01
tie zadania su rovnake... to, ze mas poskladat nieco s nazvom snajperka, alebo s nazvom drak a mec... je to iste... ci tam niekde urobis new/add alebo remove... tak to je fakt obrovsky rozdiel... navyse... takychto "roznych variacii" je miliony a miliony... takze ci to budete riesit tu alebo inde, mate jedno...
Title: Re: OOP
Post by: mirek on 17.01.2012, 08:56:03
PS: zavisi od dozoru ! ja som bol dole v pc1 bol tam Binas a ini, ty ma poslali domov ! ale POZOR hore v pc14 kamos to tiez nevedel a dali mu 5b a poslali ho na test ! cize taka skusenost z dneska !!! Testik sa vraj da!
zavisi hlavne od toho, co pises, teda programujes! ak totiz vidim skvost ako napr.

Code: [Select]
// konstruktor
public Konstruktor(){
   public ciel = ...;
   super( "", "" );
}

tak je to pre mna jasny pripad, ktory nema narok ani na tych 5 bodov, pretoze taketo "pokusy" so zdrojovymi kodmi mal dotycny absolvovat pri tvorbe zadania a nie na skuske. takze binas nebinas - bud vies alebo nevies.
Title: Re: OOP
Post by: xxx3 on 17.01.2012, 12:06:17
ja som mal to iste ako ty, ze poskladat zbran  ... vsak to bolo uplne jednoduche ...
Nevedel si odstranit z miestnosti predmety ? Ved to mas v prikaze Get (vezmi) v zadani ...
Title: Re: OOP
Post by: Wolfdale on 18.01.2012, 20:46:16
ked spravim prakticku cast a klikacku nie na riadnom termine, na opravnom idem opat na obidve casti?
Ja mam take info ze uz nie..ale niesu to 100% zdroje ;)

Diky pekne  ;)
Title: Re: OOP
Post by: esperian on 23.01.2012, 16:34:26
chcel by som sa spytat 4i dobre chapem rozdielu pola a arraylistu..

pole ma obmedzeny pocet vlozenych prvkov na zaciatku..

arraylist je ako pole, ktore sa pridavanim prvkov zvacsuje,..

cize ak mam arrayList<String> list= new arrayList<String>(10); tak hned na zaciatku sa mi vytvori 10 miestne pole... ak prekrocim ten pocet tak sa vytvori nove pole, z toho stareho sa tam vsetko skopci a prida sa ten 11 objekt..

a ak deklarujem na zaciatku ten list takto ? kolko miestne pole sa vytvori ? alebo sa vytvori az potom ked do neho vlozim prvy prvok,cize pole o rozmere 1??
arrayList<String> list= new arrayList<String>();

a este som sa niekde docital ze existuje taka kolekcia, nieco ako ten arraylist, ale proste sa tam len jedno pole pouziva, ze sa nekopiruje do dalsieho, a objekt sa vklada vydy na koniec toho pola .. nevie niekto ako sa vola, lebo ani za .... to teraz neviem najst

dik
Title: Re: OOP
Post by: Agamemnon on 23.01.2012, 17:07:29
závisí od jazyka, konkrétnej implementácie kolekcie, etc...
ale v podstate je to tak, ako píšeš...

toto
arrayList<String> list= new arrayList<String>();
vytvorí nejaké malé pole na začiatku... netuším koľko je to v jave :) c# to mal myslím 4... ale to je len veľmi matná spomienka, takže ten počet môže byť kľudne iný... už to bolo dávno...

teoreticky môže existovať kolekcia, ktorá sa bude zväčšovať, kým môže... ak ju niekto napísal :) netuším, či taká je...

btw - pre c#... podstatné je, že aj kolekcie, aj polia implementujú IEnumerable rozhranie... :) netuším, či aj v jave niečo také je :)
Title: Re: OOP
Post by: sulo on 23.01.2012, 20:15:25
a ak deklarujem na zaciatku ten list takto ? kolko miestne pole sa vytvori ?
arrayList<String> list= new arrayList<String>();

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#ArrayList() (http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#ArrayList())
"Constructs an empty list with an initial capacity of ten."

Quote
a este som sa niekde docital ze existuje taka kolekcia, nieco ako ten arraylist, ale proste sa tam len jedno pole pouziva, ze sa nekopiruje do dalsieho, a objekt sa vklada vydy na koniec toho pola .. nevie niekto ako sa vola, lebo ani za .... to teraz neviem najst

Existuje ešte LinkedList (http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html), ktorý síce vkladá na začiatok/koniec v konštantnom čase, ale výber alebo vloženie kdesi do stredu má lineárnu časovú zložitosť vzhľadom na počet prvkov, čiže treba zvážiť, či sa to oplatí. ArrayList je vhodnejší na drvivú väčšinu vecí.
Title: Re: OOP
Post by: Agamemnon on 23.01.2012, 20:23:29
Quote
a este som sa niekde docital ze existuje taka kolekcia, nieco ako ten arraylist, ale proste sa tam len jedno pole pouziva, ze sa nekopiruje do dalsieho, a objekt sa vklada vydy na koniec toho pola .. nevie niekto ako sa vola, lebo ani za .... to teraz neviem najst

Existuje ešte LinkedList (http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html), ktorý síce vkladá na začiatok/koniec v konštantnom čase, ale výber alebo vloženie kdesi do stredu má lineárnu časovú zložitosť vzhľadom na počet prvkov, čiže treba zvážiť, či sa to oplatí. ArrayList je vhodnejší na drvivú väčšinu vecí.

on sa pýtal na niečo iné, nie?
inak tých rôznych listov existuje viacero ako len tieto 2...
plus bude množstvo implementácií od tretích strán podľa konkrétnych potrieb (však stačí len implementovať rozhranie)
Title: Re: OOP
Post by: neucilasom on 24.01.2012, 12:10:48
Ako dosiahnem  ze ked mam predmet a v miestnosti 1 po pouziti aby sa presunul do miestnosti 2?
Title: Re: OOP
Post by: esperian on 24.01.2012, 12:54:50
tak napr. zistis si v akej miestnosti sa nachadzas, a potom sa "preklikas" do miestnosti kde chces predmet vlozit...

cize game.getCurrentRoom().getEast.getEast.......

alebo lepsie riesenie je ze si v triede kde mas miestnosti vytvoris metodu ktora ti bude vracat tu konkretnu miestnost do ktorej chces predmet dat...

//dik Agamemnon a Sulo za objasnenie  ;)
Title: Re: OOP
Post by: veteran on 24.01.2012, 14:36:14
Ako dosiahnem  ze ked mam predmet a v miestnosti 1 po pouziti aby sa presunul do miestnosti 2?
Quote
rooms.get(0).removeItem(CurrentRoom.getItem("Názov predmetu"));
rooms.get(1).addItem(new Item());

pričom rooms = new ArrayList<Room>(); of course :)
Title: Re: OOP
Post by: mirek on 24.01.2012, 14:43:28
Ako dosiahnem  ze ked mam predmet a v miestnosti 1 po pouziti aby sa presunul do miestnosti 2?
Quote
rooms.get(0).removeItem(CurrentRoom.getItem("Názov predmetu"));
rooms.get(1).addItem(new Item());

pričom rooms = new ArrayList<Room>(); of course :)

robit to takto pomocou ArrayListu je znacne neprakticke, pretoze si potrebujes pamatat index miestnosti. vhodnejsie je pouzit na idexaciu nazov miestnosti a teda ArrayList vymenit za hash mapu.
Title: Re: OOP
Post by: tino8 on 24.01.2012, 15:00:13
Ako dosiahnem  ze ked mam predmet a v miestnosti 1 po pouziti aby sa presunul do miestnosti 2?
Quote
rooms.get(0).removeItem(CurrentRoom.getItem("Názov predmetu"));
rooms.get(1).addItem(new Item());

pričom rooms = new ArrayList<Room>(); of course :)

(http://e.static.memegenerator.net/cache/instances/400x/12/13128/13443294.jpg)
Title: Re: OOP
Post by: Cukor on 26.01.2012, 14:57:43
Neviete niekto priblizne jak znel ten priklad kde bolo treba poskladat pusku? diky.
Title: Re: OOP
Post by: xxx3 on 26.01.2012, 15:12:50
vytvoris si miestnost
spravis predmety hlaven a parba s tym, ze su pouzitelne, cize robis metodu use, v ktorej ak sa v miestnosti/alebo v batohu nachadza hlaven aj parba tak sa akoze zlozi puska ... a to tak, ze z miestnosti/alebo batohu odstranis parbu aj hlaven a vlozis tam predmet puska .. ak nemas obe potrebne veci, cize hlaven a parbu tak sa vypise len nejaka hlaska, ze nemas potrebne zlozky.
Title: Re: OOP
Post by: Cukor on 30.01.2012, 13:15:47
vytvoris si miestnost
spravis predmety hlaven a parba s tym, ze su pouzitelne, cize robis metodu use, v ktorej ak sa v miestnosti/alebo v batohu nachadza hlaven aj parba tak sa akoze zlozi puska ... a to tak, ze z miestnosti/alebo batohu odstranis parbu aj hlaven a vlozis tam predmet puska .. ak nemas obe potrebne veci, cize hlaven a parbu tak sa vypise len nejaka hlaska, ze nemas potrebne zlozky.
no skusal som to ale nevelmi mi to ide nevies jak dosiahnem ze ked spojim tie dva predmety aby mi naskocil treti ale zaroven tie 2 zmizli
?
Title: Re: OOP
Post by: xxx3 on 30.01.2012, 13:49:16
vsak mas funkcie removeItem a addItem .. asi pomocou nich, nie ?
Title: Re: OOP
Post by: darkoooooo on 30.01.2012, 15:34:59
vytvoris si miestnost
spravis predmety hlaven a parba s tym, ze su pouzitelne, cize robis metodu use, v ktorej ak sa v miestnosti/alebo v batohu nachadza hlaven aj parba tak sa akoze zlozi puska ... a to tak, ze z miestnosti/alebo batohu odstranis parbu aj hlaven a vlozis tam predmet puska .. ak nemas obe potrebne veci, cize hlaven a parbu tak sa vypise len nejaka hlaska, ze nemas potrebne zlozky.
no skusal som to ale nevelmi mi to ide nevies jak dosiahnem ze ked spojim tie dva predmety aby mi naskocil treti ale zaroven tie 2 zmizli
?
addItem a removeItem ... ved to je najlahsie co moze byt .... su aj horsie veci  bu
Title: Re: OOP
Post by: Cukor on 31.01.2012, 19:56:21
vytvoris si miestnost
spravis predmety hlaven a parba s tym, ze su pouzitelne, cize robis metodu use, v ktorej ak sa v miestnosti/alebo v batohu nachadza hlaven aj parba tak sa akoze zlozi puska ... a to tak, ze z miestnosti/alebo batohu odstranis parbu aj hlaven a vlozis tam predmet puska .. ak nemas obe potrebne veci, cize hlaven a parbu tak sa vypise len nejaka hlaska, ze nemas potrebne zlozky.
no skusal som to ale nevelmi mi to ide nevies jak dosiahnem ze ked spojim tie dva predmety aby mi naskocil treti ale zaroven tie 2 zmizli
?
addItem a removeItem ... ved to je najlahsie co moze byt .... su aj horsie veci  bu
A tie funkcie addItem a removeItem uz boli v RoomImpl zadefinovane a bolo ich treba pouzit pri Itemoch alebo ich najprv bolo treba zadefinovat v RoomImpl ??
Title: Re: OOP
Post by: Wolfdale on 31.01.2012, 19:58:47
to je uz zadefinovane...

game.getCurrentroom().addItem("predmet na pridanie");
game.getCurrentroom().removeItem(game.getCurrentroom().getItem("predmet na zmazanie"));
Title: Re: OOP
Post by: Cukor on 31.01.2012, 20:03:33
to je uz zadefinovane...

game.getCurrentroom().addItem("predmet na pridanie");
game.getCurrentroom().removeItem(game.getCurrentroom().getItem("predmet na zmazanie"));
Aha diky pekne za info.

ta druha cast co si pisal
game.getCurrentroom().addItem("predmet na pridanie");
game.getCurrentroom().removeItem(game.getCurrentroom().getItem("predmet na zmazanie"));

to uz ide do   public GameState use(Game game)   do triedy daneho itemu nie?
Title: Re: OOP
Post by: Wolfdale on 31.01.2012, 20:10:01
ano do metody use...ale budes tam potrebovat podmienku ze sa iba vtedy da poskladat ta puska ci co, ked mas aj tie dve veci v danej miestnosti(este spec. pripad v batohu)...inak nie.

 
Title: Re: OOP
Post by: Cukor on 31.01.2012, 20:13:00
ano do metody use...ale budes tam potrebovat podmienku ze sa iba vtedy da poskladat ta puska ci co, ked mas aj tie dve veci v danej miestnosti(este spec. pripad v batohu)...inak nie.

A nevies jak to dam do if -u ? ze je pritomna pazba aj hlaven ?
Title: Re: OOP
Post by: Wolfdale on 31.01.2012, 20:17:48
if((game.getCurrentroom().getItem("pazba") != null) && (game.getCurrentroom().getItem("hlaven") != null)) {
  game.getCurrentroom().addItem(new Puska());
  game.getCurrentroom().removeItem(game.getCurrentroom().getItem("hlaven"));
  game.getCurrentroom().removeItem(game.getCurrentroom().getItem("pazba"));
  game.getUI().println("poskladal som pusku");
} else game.getUI().println("nemas potrebne veci na poskladanie pusky...")
return GameState.PLAYING;

asi tak nejak...
Title: Re: OOP
Post by: Cukor on 31.01.2012, 20:25:55
if((game.getCurrentroom().getItem("pazba") != null) && (game.getCurrentroom().getItem("hlaven") != null)) {
  game.getCurrentroom().addItem(new Puska());
  game.getCurrentroom().removeItem(game.getCurrentroom().getItem("hlaven"));
  game.getCurrentroom().removeItem(game.getCurrentroom().getItem("pazba"));
  game.getUI().println("poskladal som pusku");
} else game.getUI().println("nemas potrebne veci na poskladanie pusky...")
return GameState.PLAYING;

asi tak nejak...

Diky pekne aj ja som prisiel na nieco podobne to s tymi Itemmi by uz aj slo este keby som mohol mam dve otazky :
1. Ked vytvaram miestnost ktora sa ma volat napr.  AAA  a ma mat popis napr. "toto je miestnost AAA" tak potom ked pisem do metody   public void createRooms(){
RoomImpl AAA = new RoomImpl("toto je miestnost AAA");
otazka je je to spravne ten popis ma byt tam ci to je nieco ine?

2. Druha otazka je ze som pocul ze popis jednotlivych predmetov je schvalne na viac riadkov ze sa to da spajat nejak v tej zatvorke ("opis predmetu je dlhy")

Diky
Title: Re: OOP
Post by: BlackBerry on 31.01.2012, 20:30:06
if((game.getCurrentroom().getItem("pazba") != null) && (game.getCurrentroom().getItem("hlaven") != null)) {
  game.getCurrentroom().addItem(new Puska());
  game.getCurrentroom().removeItem(game.getCurrentroom().getItem("hlaven"));
  game.getCurrentroom().removeItem(game.getCurrentroom().getItem("pazba"));
  game.getUI().println("poskladal som pusku");
} else game.getUI().println("nemas potrebne veci na poskladanie pusky...")
return GameState.PLAYING;

asi tak nejak...

Diky pekne aj ja som prisiel na nieco podobne to s tymi Itemmi by uz aj slo este keby som mohol mam dve otazky :
1. Ked vytvaram miestnost ktora sa ma volat napr.  AAA  a ma mat popis napr. "toto je miestnost AAA" tak potom ked pisem do metody   public void createRooms(){
RoomImpl AAA = new RoomImpl("toto je miestnost AAA");
otazka je je to spravne ten popis ma byt tam ci to je nieco ine?

2. Druha otazka je ze som pocul ze popis jednotlivych predmetov je schvalne na viac riadkov ze sa to da spajat nejak v tej zatvorke ("opis predmetu je dlhy")

Diky
1.RoomImpl AAA= new RoomImpl("tu mas meno","tu mas popis")...snad je to zretenelne
2.tak to je blbost co si pocul :)...zatvorku mas rozdelenu na dve casti...prva cast je name a druha description
Title: Re: OOP
Post by: Wolfdale on 31.01.2012, 20:32:16
1. ja by som to riesil tak, ze v triede GameImpl by som si vytvoril nove premenne typu Room. a potom v metode createRooms() to zadefinoval. napr.

Code: [Select]
private Room a; //ta premenna

a = new RoomImpl("meno miestnosti", "opis miestnosti"); //nova miestnost
a.setExits(null,null,null,null) // vychody, momentalne vsetky uzavrete
a.addItem(new Puska()); //pridanie pusky do miestnosti a


2. 
Code: [Select]
public class Drevo extends AbstractItem{
   
    public Drevo(){
        super("drevo","neeeeeeeeeeeeeeeeeeeeennnnnnnnnnnnnnnnnnooooooooooooorrrrrrrrrrmmmmmm"
                            + "aaaaaaaaaaaalllllllllllllllllllnnnnnnnnneeeeeeeee dlhy opis ");
    }
}
Title: Re: OOP
Post by: Cukor on 31.01.2012, 20:36:02
if((game.getCurrentroom().getItem("pazba") != null) && (game.getCurrentroom().getItem("hlaven") != null)) {
  game.getCurrentroom().addItem(new Puska());
  game.getCurrentroom().removeItem(game.getCurrentroom().getItem("hlaven"));
  game.getCurrentroom().removeItem(game.getCurrentroom().getItem("pazba"));
  game.getUI().println("poskladal som pusku");
} else game.getUI().println("nemas potrebne veci na poskladanie pusky...")
return GameState.PLAYING;

asi tak nejak...

Diky pekne aj ja som prisiel na nieco podobne to s tymi Itemmi by uz aj slo este keby som mohol mam dve otazky :
1. Ked vytvaram miestnost ktora sa ma volat napr.  AAA  a ma mat popis napr. "toto je miestnost AAA" tak potom ked pisem do metody   public void createRooms(){
RoomImpl AAA = new RoomImpl("toto je miestnost AAA");
otazka je je to spravne ten popis ma byt tam ci to je nieco ine?

2. Druha otazka je ze som pocul ze popis jednotlivych predmetov je schvalne na viac riadkov ze sa to da spajat nejak v tej zatvorke ("opis predmetu je dlhy")

Diky
1.RoomImpl AAA= new RoomImpl("tu mas meno","tu mas popis")...snad je to zretenelne
2.tak to je blbost co si pocul :)...zatvorku mas rozdelenu na dve casti...prva cast je name a druha description
1.RoomImpl AAA= new RoomImpl("tu mas meno","tu mas popis")...snad je to zretenelne
"tu mas meno"  ked sa ma volat miestnost AAA tam das AAA alebo len nejaky index 1 ze je to prva miestnost?
Title: Re: OOP
Post by: Wolfdale on 31.01.2012, 20:39:48
kde to chces volat?

v inite()?

tam treba dat

setCurrentRoom(AAA);
Title: Re: OOP
Post by: Cukor on 31.01.2012, 20:46:58
kde to chces volat?
ok uz som na to prisiel co som chcel :D myslel som ked miestnost sa ma nazvyt AAA a ma mat popis nejaky ci to je tak spravne ale istil som ze je to tak:
RoomImpl aRoom1 = new RoomImpl("AAA","popis miestnosti AAA"
                                                                         + "je to dlhy opis");
Title: Re: OOP
Post by: Cukor on 01.02.2012, 18:53:03
Je tu niekto kto by doucil OOP? €
Title: Re: OOP
Post by: Wolfdale on 01.02.2012, 19:06:36
napis podrobnejsie co vlastne potrebujes...teoreticke otazky ti robia problemy? aneb kodenie? ak kodenie, tak pis radsej sem, pokusime sa ta naviest na spravnu odpoved, tak sa to naucis najlepsie  ;)
Title: Re: OOP
Post by: Cukor on 01.02.2012, 19:27:35
No ako to kodenie na dnesnej skuske ma dostalo preto chcem to s niekym osobne prebrat lebo dnes som mal dost nejasnosti hned vytvorit miestnost ako klasika cez roomImpl lenze tam boli vytvorene iba triedy GameImpl, Main, a Parser a treida RoomImpl v tom packagi nebola. Dalej bolo treba vytvorit Rozhranie Runable -boolen , turn on(), turn off(), co mi tiez spravilo problem a dalsia zaujimavost bol ze Itemy bolo treba nahodit do toho isteho package u kde boli Main, Parser a GameIMPL.
Title: Re: OOP
Post by: xxx3 on 01.02.2012, 19:32:00
zadanie si si nerobil sam, ze ? :)

miestnosti sa vytvaraju v GameImpl, nie v RoomImpl, konkretne v metode createRooms.

Vytvorit rozhranie ? Kliknes pravym a das New Interface, donho pises tie metody. Das si tam jednu boolean premennu a turnOn/Off bude zrejme mennit jej hodnotu na true/false ... neviem ake zadanie bolo konkretne.

Itemy je uplne jedno v ktorom package su ... vsak netbeans si po kliknuti na zlty vykricnik sam spravi import.
Title: Re: OOP
Post by: Agamemnon on 01.02.2012, 19:37:13
čoooo? java má fieldy v interfaceoch? to je čo za nezmysel
Title: Re: OOP
Post by: Cukor on 01.02.2012, 19:39:19
zadanie si si nerobil sam, ze ? :)

miestnosti sa vytvaraju v GameImpl, nie v RoomImpl, konkretne v metode createRooms.

Vytvorit rozhranie ? Kliknes pravym a das New Interface, donho pises tie metody. Das si tam jednu boolean premennu a turnOn/Off bude zrejme mennit jej hodnotu na true/false ... neviem ake zadanie bolo konkretne.

Itemy je uplne jedno v ktorom package su ... vsak netbeans si po kliknuti na zlty vykricnik sam spravi import.
To viem ze sa miestnosti robia v GameImpl v createRooms ale ked tam nemam triedu RoomImpl a zacnem do createRooms pisat RoomImpl aRoom1 = new RoomImpl("1");  tak mi to RoomImpl  nepozna...
Title: Re: OOP
Post by: Wolfdale on 01.02.2012, 19:53:40
vela tried tam mas, ale su v kniznici textgame. nemas ich priamo ako source-package. novu miestnost vytvoris jednoducho, v triede si najrpv zadefinues nove premenne typu Room, tj. public Room room1;..... a potom v metode createrooms to pouzivas takto:
room1 = new RoomImpl("miestnost c.1","aka suprova miestnost");

rozhranie spravis tak, ako ti to pisal xxx3...pravym klik na balicek, New--> Java Interface a pises veci...

zatial v kazdom zadani bolo napisane, ze snazte sa dodrzat pravidla zapuzdrenosti, vsetky triedy nech sa nachadzaju v balicku exam. nevidim v tom problem vytvorit vsetky triedy v tom balicku.
Title: Re: OOP
Post by: xxx3 on 01.02.2012, 20:45:52
tak ako pise Tux, ty tam tu triedu RoomImpl mas, ale nie je mozne v nej vykonavat akekolvek zmeny, takze ju tam nevidis medzi tymi ostatnymi ako Parser, GameImpl .. je implementovana v kniznici
Title: Re: OOP
Post by: tino8 on 01.02.2012, 23:02:26
do rozhrani by sa mali davat iba konstanty, nedavajte tam ziadne premenne su to zle navyky, a ani to velmi nema zmysel
Title: Re: OOP
Post by: sulo on 01.02.2012, 23:55:33
V rozhraniach môžu byť iba verejné konštanty, čiže "public static final". Ak sa tam tie kľúčové slová nedajú, Java si ich tam akoby implicitne doplní. Klasické premenné v rozhraniach nemôžu byť v žiadnom prípade.
Title: Re: OOP
Post by: Cukor on 02.02.2012, 09:13:48
Nemate niekto vzor takeho zadania kde su viditelne iba triedy GameImpl, Main a Parser? aby som si na nom vedel vyskusat nakodit nejake veci lebo na skusku som sa pripravoval tak ze som vymazal veci z mojho zadania a kodil nanovo ale na skuske boli nejake veci inak. Velmi by mi to pomohlo diky.
Title: Re: OOP
Post by: xxx3 on 02.02.2012, 11:04:58
Ved to mas uplne to iste ako tvoje zadanie.

Si vytvor tiez balik exam a rob vsetko donho s tym, ze budes menit len GameImpl, Parser a Main a ostatnych sa ani nedotknes, cize akoby si ich tam nemal.

+ zmaz si vsetko z createRooms() metody v GameImpl, na skuske to budes mat prazdne.