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

OP - Objektove programovanie

Started by pepco, 23.02.2008, 02:04:57

« predchdzajce - alie »

puq

mas jedno :) vytvorili sme si vlastne projekty :P

kOsTi

ale ppt diky... dobre vediet pre buducnost :)
:trestac:

Agamemnon

vytvoril si project, ktorý nerobí .exe, ale .dll... a nechce ti ho spustiť :)

EDIT: aha, nevšimol som si, že ti už poradili :)
All code is crap.

42

TradeMark

//Vybere vec zos batoha
        public IItem Pop(string name)
        {
            int i;
            bool ItemRemoved = false;
            IItem temp = new Item();
           
            for (i = 0; i < this.Inventory.Count; i++)
            {
                if (((Item)Inventory[i]).GetName() == name)
                {
                    temp = ((Item)Inventory[i]);
                    Inventory.Remove(((Item)Inventory[i]));
                    ItemRemoved = true;
                    Console.WriteLine("Vec {0} už vof dnuka vof batohu neni.", name);
                }
               
            }
            if (!ItemRemoved) { Console.WriteLine("Nane {0} vof batohu, nit co vyrucic!", name); }
            return temp;
        }


t.j - moj Pop. Otazka teraz znie: Je v poriadku ze temp je typu IItem a priradzujem do neho objekt typu Item?
Vdaka!
Pičoch jest veľo, ale nalivačoch malo!

Agamemnon

All code is crap.

42

Final_Destructer

Mam dalsiu otazku:

Mapu robim cez dvjrozmerne pole Roomov... teda konstruktor vyzera tak:

Room[,] Field = new Room[x,y]

a potom volam metodu Generate, ktora robi to ze na kazdom policku toho pola roomov (teda na kazdom Roome???) urobi:

napr. Field[i,j] = new Room("Chodba", ...);

no a ono to vyhadzuje taku vec ze NullReferenceException ..

neviete preco?

Wanna get destructed?

Agamemnon

kde presne ti to tam vyhadzuje? pastni kód
All code is crap.

42

Final_Destructer

ked dam debug tak sa to spusti ale hodi exception a zltym oznaci ten riadok kde do Field[i,j] priradzujem new Room (bludy bludy...).
Wanna get destructed?

Agamemnon

tú exception možno vyhadzuje niečo, čo priradzuješ v konštruktore triedy Room...

lebo takto by to malo fungovať...

prípadne... odkrokuj si to - ale tak si to krokuj, aby si chodil aj do vnútra metód, aby si presne videl, kde to padne
All code is crap.

42

TradeMark

#459
private string Name;
        private string Description;
        private ArrayList ItemList;
        private ArrayList DirectionsList;
        private bool Visited;
       
        //Smery ze kde sa da zos miestnosti ist
        private bool Sever;
        private bool Juh;
        private bool Vychod;
        private bool Zapad;

        //Konštruktor miestnosti
        public Room(string Name, string Description, bool visited, bool sever, bool juh, bool vychod, bool zapad)
        {
            ArrayList DirectionsList = new ArrayList();
            this.Visited = visited;
            this.Sever = sever;
            this.Juh = juh;
            this.Vychod = vychod;
            this.Zapad = zapad;
            SetDirectionsList();
            ArrayList ItemList = new ArrayList();
            this.Name = Name;
            this.Description = Description;
        }


toto su veci ohladom roomu a knostruktora... hodil som si za konstruktor Roomu breakpoint a pozrel stav tych veci a pri ItemListe aj DirectionListe mi to pise ze null. Moze to byt ten problem?

Este pripajam metodu SetDirectionsList():

//Toto je metoda, ktora vytvori DirectionsList, resp. ho naplni smermy kde sa da ist
        public void SetDirectionsList()
        {
            if (this.Sever) DirectionsList.Add("sever");
            if (this.Vychod) DirectionsList.Add("vychod");
            if (this.Zapad) DirectionsList.Add("zapad");
            if (this.Juh) DirectionsList.Add("juh");
        }
Pičoch jest veľo, ale nalivačoch malo!

Agamemnon

výnimku ti vyhodí to SetDirectionsList()...

dôvod je ten, že to, čo máš v konštruktore, neinicializuje členov triedy, ale len lokálne premenné konštruktora:
ArrayList DirectionsList = new ArrayList();
- vytvorí lokálnu premennú a tú inicializuje...

správne potrebuješ:
DirectionsList = new ArrayList();
resp.:
this.DirectionsList = new ArrayList();

a to isté pre ItemList...
All code is crap.

42

TradeMark

ufff no chapem...to som opravil...ale i tak to hadze chybu... nebudem to uz tu riesit iba co postujem stale kod... Agamemnon nebudes nahodou na Mirekovom cviku s Agnlickou skupinou o...ufff 10:50 tusim?
Pičoch jest veľo, ale nalivačoch malo!

Agamemnon

mal by som zajtra zase byť na cviku...
All code is crap.

42

Agamemnon

ešte ak môžem radu, čo sa týka komentárov:

mirek vám hovoril, že systémovú príručku stačí vygenerovať doxygenom (týka sa jeho skupín, iné závisí na cvičiacom) - to vám odľahčí robotu dosť výrazne...
ale na to, aby ste to mohli urobiť, tak potrebujete upraviť komentovanie - ide hlavne o komentovanie metód, tried, atď...

namiesto toho jednoduchého komentovania (typu: // komentár), potrebujete použiť nejaký zo spôsobov zápisu pre doxygen (detaily nájdete na webe: http://www.stack.nl/~dimitri/doxygen/docblocks.html)
ide hlavne o špeciálne uvádzanie komentárov:

/**
* komentár
*/

prípadne iné verzie sú tiež...

(ak chcete vidieť ukážku vygenerovanej dokumentácie, tak tu: http://discovery.fw.sk/~pavlicko/refman.pdf - je to v angličtine, ale dá sa nastaviť aj sk)
All code is crap.

42

TradeMark

Tie komentare co tam mam to su iba docasne... aby som vedel co sa tam robi... serioznejsie urobim ked to dokoncim ;) ale vdaka za radu a linky.
Pičoch jest veľo, ale nalivačoch malo!

puq

cize java komentar :) hej? no zajtra navrhnem aj forgacovi, nech cez toto mozeme amt tiez :)

ywetka

hej, u mna je tiez jedno, v com bude dokumentacka... take pekne sa naucime robit az dalsi semester na ZSwI  :P... teraz mozete mat aj v doxygene, alebo v niecom podobnom.
~~Was mich nicht umbringt, macht mich stärker.~~
При́п'ять, мы никогда не будем забывать Вас.

kOsTi

inac ywetka... kedy a kde sa budu odovzdavat zadania? :)
:trestac:

ywetka

Quote from: kOsTi on  28.04.2008, 03:20:00
inac ywetka... kedy a kde sa budu odovzdavat zadania? :)

hm, tak je to riesene, ze budu nejake terminy, kedy budu vsetky skupiny odovzdavat naraz... bola zatial taka dohoda, ze kazdy bude odovzdavat svoj program inemu cviciacemu ako tomu, ktory ho cvicil... to plati o tych terminoch. Pokial vsak chcete odovzdat program este pocas trvania semestra (t.j. do 13. tyzdna), tak ho mozete odovzdat svojmu cviciacemu... takze tak sa ma situacia  :emot-prettywink:
~~Was mich nicht umbringt, macht mich stärker.~~
При́п'ять, мы никогда не будем забывать Вас.

puq

zaujimavo vymyslene, inac su na programe nejake bodiky dole? ked sa bude odovzdavat po 13 tyzdni????

ywetka

Quote from: puq on  28.04.2008, 03:50:46
zaujimavo vymyslene, inac su na programe nejake bodiky dole? ked sa bude odovzdavat po 13 tyzdni????

urcite nie
~~Was mich nicht umbringt, macht mich stärker.~~
При́п'ять, мы никогда не будем забывать Вас.

kOsTi

no skusim na tom porobit uvidime co bude :) zatial som na bode ze poriadne neviem co a ako :D
:trestac:

puq

ja som bol na tom podobne jak ty, ale daco som porobil a mam predstavu, len dufam ze v polke sa nespamatam ze to tak fungovat nebude :D :D

pUf

este tip na generovanie systemovej doku - VSdocman. integruje sa do VS :P
pUf :zuzka: ywetku (teh one and only :D)
~ ~ ~ ~ ~ ~ ~ ~
Support my band :) :P
bandzone
facebook

TradeMark

#474
Nezeby som chcel byt hnusny ale hodit verziu 0.2 Interfejsov ked uz mam zadanie na 70 percent je pekne od veci ...
Hned mam zrazu na vecer zabavu...

Este by som poprosil blizsie opisat co vlastne ma robit ten step. Teraz to bude trieda (nie abstraktna) cize treba urobit nejaky objekt. Napr. ja ked prejdem do dalsej miestnosti tak urboim urcite veci - ziskam jej meno, popis, smery, veci, veci v batohu.. doteraz som to proste robil v metode (napr. MoveNorth()) kde to aj rovno vypisalo. Ak chapem dobre tak po novom mam urobit novy objekt Step (?) a co s nim? Mam ho iba vytvorit alebo aj urobit v ramci triedy Step nejaku metodu na vypis a tu potom zavolat???

Vdaka za objasnenie...

EDIT: Resp. ma niekto nejaky tip ako to tam vsunut tak aby mi triedy uz brali nove Interfejsi a nie este tie stare? Prepisal som subory v zlozke Projects ale nejako to nefunguje.... vdaka
Pičoch jest veľo, ale nalivačoch malo!