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

Objektove programovanie

Started by markus, 21.02.2009, 23:57:40

« predchádzajúce - ïal¹ie »

radix

co pride po backpacku?  br

Patto

Spravil som si skoro cele 8.cviko doma, kedze nam v pondelok odpadlo cviko ... akurat som nepochopil, ako to mam spravit to s prenositelnostou predmetu. OK tie veci ktore budu prenositelne budu implementovat rozhranie IMoveable, ktore je prazdne. Uz tomu nechapem naco mam implementovat prazdne rozhranie. Ibaze by sa v metode pri vkladani predmetu testovalo, ci dany objekt ako parameter implementuje rozhranie IMoveable? takto je to myslene? Ak to ma byt robene takto, tak ako sa robi tato podmienka, pretoze na nete som nieco nasiel, ale nechcelo mi to nejako fungovat.

Mao

otestujes to napriklad takto
if (obj is IMoveable)
{
///      TODO
}

nighthunter

Quote from: mirek on  10.04.2009, 16:17:29
Quote from: ApokalypS on  10.04.2009, 04:30:10
keby si poriadne popozeral, tak by si vedel, ze najde.. ;)
alebo keby si poriadne popozeral ten c mreza, tak by si zistil, ze si vies spravit kludne aj sam..

joj ty moj ziak radostny - az som vysmiaty, ked to citam. nakolko si predmet vlani opakoval, nechal si si uznat zapocet, ale vdaka (neviem comu, neviem komu) si sa rozhodol, ze si to zadanie aj tak spravis. nuz - nie vsetci sa na to takto pozeraju... :-(
klypso (aj ked on sa nezda) je charakter
10 veci ktore na PC nenavidim
1. MAIS 2. Vista 3. Office 07 4. ICQ 5 Internet Explorer 6 WMP 7 BSOD 8.......(prijimam napady)

Patto

Mao diki .... toto ma nenapadlo ... myslel som, ze is sa pouziva len na zistenie, ci je objekt danej tiredy, ale nevedel som ze sa tym zistuje aj, ci implementuje nejake rozhranie.

mirek

Quote from: Patto on  17.04.2009, 00:33:25
Mao diki .... toto ma nenapadlo ... myslel som, ze is sa pouziva len na zistenie, ci je objekt danej tiredy, ale nevedel som ze sa tym zistuje aj, ci implementuje nejake rozhranie.

operator is sa pouziva na zistenie, ci objekt je daneho typu. takze nie len, ci je typu danej triedy, ci implementuje dany interface, ale vies napisat aj napriklad taketo nieco:

int x = 5;
if( x is int )
   Console.WriteLine( "je to intidzer" );

vyssie uvedeny kod sice nema velky zmysel, ale je to len ukazka toho, ze pri pouziti is ide naozaj o typovu kontrolu.
So say we all!

morrfun23

mimochodom kedy budu spravene materialy k dalsiemu cviceniu?

mirek

Quote from: morrfun23 on  17.04.2009, 03:02:48
mimochodom kedy budu spravene materialy k dalsiemu cviceniu?

od 3. scenara ku textovke ich uz robia ini cviciaci, takze to zalezi od nich. najneskor ale v pondelok.
So say we all!

piton

skoda, ako poznam "inych cviciacich", oni si s tym daju na cas...
"Iba život, ktorý žijeme pre ostatných, stojí za to." - Albert Einstein

morrfun23

skoda kedze mne by sa to hodilo keby to bolo aj skor ako pondelok

Patto

mne by sa to hodilo tiez skor, ako je pondelok ... ze clovek si moze aspon pozriet, co bude mat na cvicku a tak ... aspon sa moze pripravit lepsie

morrfun23

presne tak a potom na cviku sa uz len opytat na veci ktorym nechape

domino3d

Quote from: Patto on  17.04.2009, 16:46:53
mne by sa to hodilo tiez skor, ako je pondelok ... ze clovek si moze aspon pozriet, co bude mat na cvicku a tak ... aspon sa moze pripravit lepsie
no a ne? aj aj si myslim
vivat academicus

mirek

Quote from: Domino3D on  17.04.2009, 21:27:13
Quote from: Patto on  17.04.2009, 16:46:53
mne by sa to hodilo tiez skor, ako je pondelok ... ze clovek si moze aspon pozriet, co bude mat na cvicku a tak ... aspon sa moze pripravit lepsie
no a ne? aj aj si myslim

no ale teraz kvoli velkej noci sa meska za cvikami... poznamky svoje ku scenarom (taka kostra) vam ale pastnem - je to ale len take strohe... neviem, ci vam to vobec pomoze... :-)))

4. prikazovy riadok
• vytvorenie parsera pre prikazovy riadok
• vytvorit prikazy (triedy) pre prechod miestnostami implementovanim rozhrania ICommand a kazdy prikaz bude potomkom triedy ACommand
• pouzitie enumeracnych typov

5. historia prikazov
• ukladanie prikazov do historie
• nacitavanie historie prikazov
• osetrovanie vynimiek
• ukladanie len vybranych prikazov vs. ukladanie vsetkeho (problem s load/save prikazmi v historii)
• vypnutie zaznamenavania prikazov do historie (vyuzitelne pri loadovani prikazov zo suboru a ich interpretovani)
• odchytavanie vynimiek pri praci so subormi

6. tdd
• unit testy
• test pre overenie scenara
• popripade test pre overenie funkcnosti batohu - batoh ma kapacitu, takze skusit navkladat vela veci a skontrolovat, ci sa nevkladaju veci navyse
So say we all!

Agamemnon

Quote from: mirek on  17.04.2009, 23:20:44
6. tdd
• unit testy
• test pre overenie scenara
• popripade test pre overenie funkcnosti batohu - batoh ma kapacitu, takze skusit navkladat vela veci a skontrolovat, ci sa nevkladaju veci navyse

to nie je tdd :) na tdd máš prv testy až potom kód :)
All code is crap.

42

andy

#365
Ako by som mohol v hlavnej triede (kde vytvaram instanciu triedy Game), zavolat ShowBackpack() z triedy Backpack
pretoze
newGame.Backpack.ShowBackpack() nefunguje.. :'(

vsetky ostatne metody z triedy Backpack idu, len tuto jednu nemozem pouzit.. nvm preco

piton

Musis to pretypovat na Backpack, lebo v triede Game mas ten backpack typu IBackpack, a to rozhranie nema definovanu metodu ShowNackpack. Tak dajak:
((Backpack)newGame.Backpack).ShowBackpack()
"Iba život, ktorý žijeme pre ostatných, stojí za to." - Albert Einstein

andy

Quote from: piton on  18.04.2009, 04:05:48
Musis to pretypovat na Backpack, lebo v triede Game mas ten backpack typu IBackpack, a to rozhranie nema definovanu metodu ShowNackpack. Tak dajak:
((Backpack)newGame.Backpack).ShowBackpack()
tyyy jo... dik..  :)

Patto

Tak aspon z coho bude pisomka v pondelok by nam niekto mohol prezradit, kedze to byva napisane vo wiki, ci to sa mame tiez dozvediet az na cviku rano?

thom

Caute ,neviete poradit???
Vytvorim tie triedy Dragon, Chest, Key... ale stale mi vyhadzuje chybu , ze :" TextGame.Items.AItem' does not contain a constructor that takes '0' "
mam to vytvorene takto:

class Dragon : AItem
    {
        string name = "Je to sedemhlavy drak a rozhodne sa netvari tak, ze by sa chcel kamaratit prave so mnou";
        string description = "drak";

        Dragon(string name, string description)
        {
            this.name = name;
            this.description = description;
        }

    }
A vyhadzuje to u vsetkych tried.Nebude chyba niekde v tom dedeni?

Ing. nemtom

nemas konstruktor ktory nepotrebuje parametre
brix will be shat

Agamemnon

vždy pri dedení sa volá konštruktor predka... a ten musí byť explicitne definovaný... takže v tomto prípade to je tak, že pri vytváraní tej tvojej triedy sa pokúšaš zavolať konštruktor AItem(), ktorý neexistuje... v tom AItem je tam myslím len konštruktor s 2 stringami alebo taký nejaký... pozri a uprav podľa toho ten tvoj kód...
All code is crap.

42

Patto

Quote from: thom on  18.04.2009, 17:40:12
Caute ,neviete poradit???
Vytvorim tie triedy Dragon, Chest, Key... ale stale mi vyhadzuje chybu , ze :" TextGame.Items.AItem' does not contain a constructor that takes '0' "
mam to vytvorene takto:

class Dragon : AItem
    {
        string name = "Je to sedemhlavy drak a rozhodne sa netvari tak, ze by sa chcel kamaratit prave so mnou";
        string description = "drak";

        Dragon(string name, string description)
        {
            this.name = name;
            this.description = description;
        }

    }
A vyhadzuje to u vsetkych tried.Nebude chyba niekde v tom dedeni?

Ano mas chybu s dedenim. Spravne by to malo byt tak, ze sa zavola konstruktor z rodicovskej triedy AItem a tie clenske premmene name a description nie je potrebne vytvarat, kedze sa uz dedia od AItem.

Cize takto:


class Dragon:AItem
   {
       public Dragon() : base("drak", "Je to sedemhlavy drak a rozhodne sa netvari tak, ze by sa chcel kamaratit prave so mnou") { }
   }

drtic

#373
Vedeli by ste mi poradit, ze preco mi ak aplikujem get property na objekt odovzdany metode cez parameter vracia 0.
Konkretne:

.
.
.
public bool MoveTile(Tile tile)
{
int row = tile.row;
int col = tile.col;
Console.WriteLine(row);
Console.WriteLine(col);
.
.
.


pricom objekt este pred tym ako je poslany ako parameter vracia spravnu hodnotu

Patto

#374
pretoze chces ziskat clensku premennu, ktora nie je viditelna, a nie property Row a Col

namiesto tile.row a tile.col daj: tile.Row a tile.Col

a inac to sa nahodou netyka dotNetu? :)


-------------
Este som sa chcel opytat ohladom toho priebezneho testu na certifikat z microsoftu: Ohladom coho budu otazky? Podla kurzov, co su na itacademy.microsoftelearning.com ??