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

Zobrazi prspevky

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

Zobrazi prspevky Menu

Messages - Stardox

#26
2. ročník / Re: OOP
23.11.2011, 04:54:19
Quoteja 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?
#27
2. ročník / Re: OOP
22.11.2011, 00:11:27
QuoteA 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.
#28
2. ročník / Re: OOP
08.11.2011, 02: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?
@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;
    }
#29
2. ročník / Re: OOP
06.11.2011, 00:58:38
Quotecize 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.
#30
2. ročník / Re: OOP
05.11.2011, 22:29:57
Scenar 07, Uloha 3:
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).
#31
2. ročník / Re: OOP
30.10.2011, 05: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.
#32
2. ročník / Re: UŠaA
14.10.2011, 17:48:17
Neviete nahodou v 4. Zadani, ako je myslene toto:

Úloha: Pridajte podporu operácie TopAndPop, ktorá prečíta a zároveň odoberie prvok z vrcholu zásobníka (nie len zavolaním existujúcich operácií).

To znamena ze v TopAndPop si nemozem volat uz pripravene operacie Top a Pop, ktore su uz naprogramovane, ale stale mozem skopirovat ich zdrojovy kod?  ???
#33
2. ročník / Re: UŠaA
06.10.2011, 20:58:35
Dajme tomu, ze sme len to MUL 2, prepisali na ADD 2, potom:
(Teraz ideme podla MOODLE Cv. 2)

Uniformne - To len opises, tam sa nam nemeni nic.

Logaritmicke - Casova zlozitost:
Tak tam, kde mas l(c(2)), tak to nenahradis log(i!), ale log(((1+i)/2)*i), preto, lebo v nasom pripade tam teraz nemas faktorial, ale sucet cisel a tento vzorec je z Matematiky na vypocet postuponosti cisel, dalej si ten log uz len poupravujes a dostanes take nieco log( i^3 + 2*i^2 + i) a toto potom dosadis do toho S(n) a robis podobne ako v Moodle, tie konstanty nahradis "n" taze ti vyjde: n*log( n^3 + 2*n^2 + n - 1).

Dalej tam jak mame ten krok "po uprave:" :
Tak tam to bude take nieco: T(n) = n*log(((1+n)/2)*n), zase sme si tam dosadili ten naz vzorec na vypocet sumy, pohrajes sa s tym a dostanes:
n*( log(n^2 + n) - log(2) ), no tu ale mozeme zanedbat log(2) a v prvej zatvorke to ( + n ), taze: n*( log ( n^2) ), dvojka nam vyjde pred logaritmus, takze mame:
2n*log(n), pri asymptotickej zlozitosti ta 2 nehra velku ulohu, takze vysledok bude: O(n*log(n))

A ta priestorova zlozitost, to je tusim to iste ako predosli krok.
#34
2. ročník / Re: UŠaA
02.10.2011, 20:11:18
Quote from: esperian on  02.10.2011, 19:32:36
Quote from: Stardox on  02.10.2011, 17:15:27
Ked prerobim program z 1. Cvicenia (faktorial) tak, ze miesto MUL 2, dam ADD 2 a funguje mi to spravne, myslite ze to bude stacit cviciacemu takto, alebo treba nieco originalnejsie vymysliet? A ak mu to bude stacit potom mam tu zlozitost pocitat podla ADD 2?

mna ma korecko a en sam vravel aby sme si pozreli ten program z prveho cvika a ze ho mozme upravit ze je to  zalezitost par minut, zmenit jednu instrukciu ...

Okej, diky pekne za info, tiez mam s Koreckom, ale asi som to prepocul.  :)
#35
2. ročník / Re: UŠaA
02.10.2011, 17:15:27
Ked prerobim program z 1. Cvicenia (faktorial) tak, ze miesto MUL 2, dam ADD 2 a funguje mi to spravne, myslite ze to bude stacit cviciacemu takto, alebo treba nieco originalnejsie vymysliet? A ak mu to bude stacit potom mam tu zlozitost pocitat podla ADD 2?
#36
2. ročník / Re: UŠaA
26.09.2011, 21:28:28
Quote from: Tux on  26.09.2011, 18:09:06
a ako porovnas dve cisla? pouzijes instrukciu SUB, akoze odcitas cislo A od cisla B, a ked ti vysledok vyjde vacsi jak nula (JGTZ), tak cislo B bude maximum? v opacnom pripade (zaporny vysledok) bude max A? ci?  ;D

Diky pekne za toto, hned ako som si toto precital uz mi konecne dokapčalo. Uz to mam hotove.  :)
#37
Diky za nazory chlapci, radsej si este raz premyslim tu Javu  :)
#38
Java alebo .NET? Ak by v .NET bol C# tak potom si dam C#. Neviete nahodou?
#39
1. ročník / Re: Fyzika
06.06.2011, 20:40:21
Ti co ste boli A skupina, ako vam vysli tie priklady? Rad by som si porovnal.
#40
1. ročník / Re: Programovanie
17.05.2011, 14:43:22
To je termin tej opravy? Lebo tak neurcito je to tam na Moodly napisane.
#41
Tak Mados na prednaske hovoril ze to nebude MOODLE test, ale klasicky test na papier. Budu tam priklady z toho, co sme pocitali na cvieniach, budu tam otazky s moznostami ABCD a ze vraj budu tam aj teoreticke otazky kde sa bude treba podrobnejsie rozpisat (spominal krutenu dvojlinku a otazky z topologie sieti). Vravel, ze sa mame obcas pozriet na jeho stranku, ze tam da okruhy, ktore bude treba.
#42
Ak ste niekto uz nahodov pisali zapoctovku z ASM, napiste pls na co sa priblizne treba pripravit.