• 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

« predchdzajce - alie »

byglajs

thom: práveže toto mi tam nechce dať, neviem ale tak asi tam musí byť niečo ešte napísané, ako napr. game.room1 , ale neviem čo  ???

mircoo

Quote from: byglajs on  08.05.2009, 21:22:15
thom: práveže toto mi tam nechce dať, neviem ale tak asi tam musí byť niečo ešte napísané, ako napr. game.room1 , ale neviem čo  ???

presne tiez mam taky problem, neviem co s tym, ludia help
chcelo by to aby boli miestosti viditelne, bud spravit property alebo ja neviem ako
Praise Him with the strings....

thom

Quote from: byglajs on  08.05.2009, 21:22:15
thom: práveže toto mi tam nechce dať, neviem ale tak asi tam musí byť niečo ešte napísané, ako napr. game.room1 , ale neviem čo  ???

No to ti nejde podla mna z toho dovodu,ze ty to skukas spustit, (tu metodu) v triede ktora nema pristup ku tim odkazom na tie miestnosti.
A take cosi si skusal??
game.CurrentRoom.SetExits(game.CurrentRoom.West, null, null, null)

ved z aktualnej miestnosti mas odkaz aj na ostatne miestnosti okolo nej.

Agamemnon

takže postupne:

pri loade treba resetnúť hru, samozrejme...

Quote from: thom on  08.05.2009, 20:34:13
Quote from: byglajs on  08.05.2009, 20:29:29
br zdravím
vie mi niekto poradiť,pls ?
Ak použijem kľúč na dvere chcem nastaviť iné východy v aktuálnej miestnosti, ale neviem poriadne ako, niekde tuna som sa zasekol:
game.CurrentRoom.SetExits(null,null,tuna mám dať čo ?,null);

má niekto nejakú ideu ako to spraviť ? ???

No ved tam das tu miestnost na ktoru chces aby to ukazovalo, vlastne odkaz na tu miestnost. room1, room2 alebo ako ich mas pomenovane.
game.CurrentRoom.SetExits(null,null,room1,null);

- to riešenie je dobré, len ak máš vhodne implementované SetExits... pretože inak toto urobí niečo také, že vám všetky doterajšie východy zablokuje (nastaví na null) a správne nastaví len ten jeden, zmenený (room1)
- to room1 musí byť nejak nastavené - napr. v triede kľúč budeš mať referenciu na miestnosť, ktorú tam chceš priradiť... alebo ju tam vytvoríš rovno, alebo také niečo... to room1 proste musí byť inicializované...
All code is crap.

42

byglajs

tak ja som skúšal spraviť novú property, niečo ako currentRoom, ale aj tak to nešlo, hoci som si do nej vložil tú miestnost ktorú som potreboval, tak aj tak mi to nešlo , tak ja neviem ako ďalej

Agamemnon

Quote from: thom on  08.05.2009, 21:46:16
Quote from: byglajs on  08.05.2009, 21:22:15
thom: práveže toto mi tam nechce dať, neviem ale tak asi tam musí byť niečo ešte napísané, ako napr. game.room1 , ale neviem čo  ???

No to ti nejde podla mna z toho dovodu,ze ty to skukas spustit, (tu metodu) v triede ktora nema pristup ku tim odkazom na tie miestnosti.
A take cosi si skusal??
game.CurrentRoom.SetExits(game.CurrentRoom.West, null, null, null)

ved z aktualnej miestnosti mas odkaz aj na ostatne miestnosti okolo nej.

ale mal by si mať odkaz len na tie miestnosti, kam sa dá prejsť... nie na miestnosti, kam doteraz prístup nemáš... ono to je úplne easy urobiť nejak takto:


class Kluc {
   public void Use() {
       Room room = new MyRoom();
       game.CurrentRoom.SetExits(game.CurrentRoom.North, game.CurrentRoom.South, room, game.CurrentRoom.West);
   }
}


nvm, v akom poradí sú tie miestnosti v setexits, takisto nvm, aké classy a interfaces sú tam podedené...
ako ukážka je to dúfam pochopiteľné
All code is crap.

42

Agamemnon

pokiaľ je tá miestnosť už existujúca, tak si tam potrebujete predať referenciu... cez konštruktor tej classy Kluc napr...
All code is crap.

42

byglajs


tala2xlc

a mam tiez problem s loadom ale troska iny....ked mam v miestnosti nepriatela tak sa z miestnosti neda ist kym ho "nezneskodnim" potom sa objavia vychody a mozem ist dale...lenze pri loade ked sa vratim do tej istej miestnosti kde bol predtym nepriatel tak je tam znova...pri beznom hrani hry tam samozrejme nie...poradte pls..

game.Play();
game.Backpack.Remove(" ");
History history = History.GetInstance();
if (Params == null) Params = @"C:\tmp\history.bin";
history.Load(Params);
Parser parser = new Parser();
ACommand cmd;
foreach (string com in history)
            {
                if (com != "ULOZ")
                {
                    Console.WriteLine(com);
                    cmd = parser.GetCommand(com);
                    ((ICommand)cmd).Execute(game);
           
                }
           
            }

Agamemnon

z tohto asi veľmi neporadím... toto vyzerá byť ok... hmm...
skús debuggovať ten program... inak ťažko - možno keby si pastol nejaký iný kód - napr. execute toho príkazu, ktorý zneškodní toho enemy (príkaz pouzi?)... možno aj kód toho enemyho (predpokladám, že je to item?)
je ten príkaz uložený v save file? ostatné veci, čo sa v hre zmenili do save-u ostali zmenené? len enemy ožije?
hmm, nvm...
All code is crap.

42

tala2xlc

v save file je ten prikaz to som zabudol dat do pm... :)

JCube

Quote from: Agamemnon on  08.05.2009, 20:14:32
do používateľskej sa píšu také veci, ako je potrebná konfigurácia na spustenie, ako sa program ovláda, v prípade tejto hry sa tam dáva scenár na vyriešenie hry, mapa, myslím... potom tam má byť nejaký úvod, popis programu a pod. nejaké vzory sú na katedrovej stránke, mám pocit
http://hornad.fei.tuke.sk/studinfo/dokPP.html
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

mirek

Quote from: thom on  08.05.2009, 20:31:04
AAAAAAAAAAAaa
a este jedna vec ma zaujima, ze ked mam rozohratu hru, dam save, a potom nasledne load, tak zase vykona vsetky prikazy od zaciatku ktore som zadal, to by netrebalo resetnut celu hru ? lebo potom tie prikazy nemaju zmysel na tej aktualnej pozicii a ja chcem akoze novu hru, stymi prikazmi co som ulozil ...
HALP bv

tak ten problem mam aj ja.rad by som vedel ci to vadi alebo nie, ked uprostred hry dam save a potom load tak znova sa vykonaju tie prikazy co su ulozene.
Cize ako keby som ich zadal rucne.Moze to tak byt alebo nie??
[/quote]

ulozenie stavu hry ma znamenat to, ze ked hras hru a spravis si checkpoint (ulozis si jej stav), nasledne vykonas iste mnozstvo krokov a stav hry si obnovis, tak sa dostanes do toho stavu, v ktorom si hru ukladal. takze nezacnu sa ulozene kroky vykonavat od momentu ulozenia, ale ano - treba hru resetnut a tak ich vykonavat.
So say we all!

domino3d

prosim, nechcem byt total lama, ale ako sa generuje diagram zo staruml, treba neako upravovat kod? alebo staci len iba dat reverse engeneering
ja som s tym zabil dva dni, vyskusal som spuuustu programov co ste poradili, daco nedobre musim robit, Ked to niekto bude robit a pojde mu to mohol by sa podelit o zazitky a skusenosti... diki
vivat academicus

Scorch

zdravim, mam taky cudny problem s CurrentRoom .. respektive s Execute() pre kazdy smer. Pre znazornenie:

if (game.CurrentRoom.West != null)
            {
                Console.WriteLine("descr. zapadnej room je: {0}", game.CurrentRoom.West.Description);
                game.CurrentRoom = game.CurrentRoom.West;
                game.CurrentRoom.Show();
            }
            else Console.WriteLine("Tadiaľ sa nedá ísť");


CurrentRoom sa z mne neznameho dovodu nenastavi na miestnost ktora je v .West Ten Writeline vypise spravnu zapadnu miestnost, no po "priradeni" sa.. nepriradi..  bu
kde moze byt problem? som zufaly..

andy

Quote from: Scorch on  10.05.2009, 02:38:05
zdravim, mam taky cudny problem s CurrentRoom .. respektive s Execute() pre kazdy smer. Pre znazornenie:

if (game.CurrentRoom.West != null)
            {
                Console.WriteLine("descr. zapadnej room je: {0}", game.CurrentRoom.West.Description);
                game.CurrentRoom = game.CurrentRoom.West;
                game.CurrentRoom.Show();
            }
            else Console.WriteLine("Tadiaľ sa nedá ísť");


CurrentRoom sa z mne neznameho dovodu nenastavi na miestnost ktora je v .West Ten Writeline vypise spravnu zapadnu miestnost, no po "priradeni" sa.. nepriradi..  bu
kde moze byt problem? som zufaly..

si to pokrokuj a pozeraj na premenne ake su v nich hodnoty..
ono by to malo ist... ja to mam tak isto..

andy

A teraz otazka na tych co to riadia.:)

Skuska bude na moodli?
Bude treba vediet daco aj z C++?
Budu aj zdrojove kody?
atd... dik

JCube

sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

andy

a v com sa lisi skuska z OP a .net

Scorch

andy: skusal som krokovanie aj vsetko ostatne co ma napadlo..
jedine na co som prisiel bolo ze sa z neznameho dovodu po:

game.CurrentRoom = game.CurrentRoom.West;


CurrentRoom nezmeni .. uz ma z toho boli hlava ze to nejde .. 4x som presiel kazdy jeho vyskyt a nenasiel som ziadnu chybu

Mao

minuly rok sa na skuske z .NETu programovalo, ale ucil to niekto iny, uz  nie je na skole.

Mao

Quote from: Scorch on  10.05.2009, 04:49:00
andy: skusal som krokovanie aj vsetko ostatne co ma napadlo..
jedine na co som prisiel bolo ze sa z neznameho dovodu po:

game.CurrentRoom = game.CurrentRoom.West;


CurrentRoom nezmeni .. uz ma z toho boli hlava ze to nejde .. 4x som presiel kazdy jeho vyskyt a nenasiel som ziadnu chybu
tak potom mas asi zly getter alebo setter
niekto tu uz tusim mal taku chybu ze:
public Room CurrentRoom
{
get{return currentRoom;}
set{CurrentRoom= value;}
}

Vsimni si velke C na zaciatku setteru :)

Scorch

aaa thx .. chyba bola sice inde, ale to ze si ma nasmeroval zas do class Game pomohlo
takze po 5 hodinach utrpenia mozem zas pokracovat :)

andy

K systemovej prirucke nestaci mat vygenerovanu dokumentaciu z doxygenu??? lebo dakde som pocul ze stacilo mat len to..hmm

Agamemnon

závisí od cvičiaceho, by som povedal...
All code is crap.

42