Author Topic: OP - Objektove programovanie  (Read 188889 times)

include

  • Newbie
  • *
  • Posts: 7
  • Som Sa-Lee
    • View Profile
Re: OP - Objektove programovanie
« Reply #400 on: 14.04.2008, 03:47:49 »
ak máš dobre implementovanú akciu "použi vec", tak to potom presne vieš použiť aj na aktualizáciu celého prostredia na základe času (a aj pri automatickom plynutí času)...
plus stroj času máš pravdepodobne ako item... takže pri akcii "použi stroj_času" vieš adaptovať prostredie na zmenu...


Stroj casu nemam ako item, ale ma nejake jeho funkcie, pricom je to riesene ako miestnost, ano miestnosti su generovane algoritmom, kto by to pisal rucne, ale o to nejde. Nestaci pouzit metodu "pouzi vec", ta sice funguje o tom to nie je, ale ako urobim to, aby veci, ktore maju v buducnosit iste funkcie naviac od veci z minulosti, vedeli ovplyvnit technologie minulosti a na zaklade toho celu buducnost... aha, uz ma nieco napada... skusim daco zriesit.

PS: miestnosti sa menia dynamicky, avsak neviem urobit to, aby sa menila aj miestnost s casostrojom, no to zatial neriesim, to moze ostat aj tak, lebo potom by toho bolo uz vela na take zadanie.

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #401 on: 14.04.2008, 04:02:01 »
btw... netreba brať item strikne ako item (item môže byť aj niečo, čo nie je vidno, len vykonáva nejakú akciu - napr. nejaký timer, prípadne nejaký medzistupeň pre nejaké akcie a pod... zle sa mi to popisuje slovami, žiaľ kresliť tu nvm)... a netreba sa za každú cenu snažiť o kontinuitu bytia...

tj.:
máš lampu, tá je vypnutá... a teraz ju chceš zapnúť... tak máš 2 možnosti:
- urobíš jej nejaký vnútorný stav, a ten zmeníš
- urobíš 2 objekty - "vypnutá lampa" a "zapnutá lampa"... pri zapnutí ten prvý zrušíš a ten druhý zobrazíš...
to druhé ponúka oveľa väčšiu voľnosť pri rovnakej obtiažnosti implementácie...

All code is crap.

42

include

  • Newbie
  • *
  • Posts: 7
  • Som Sa-Lee
    • View Profile
Re: OP - Objektove programovanie
« Reply #402 on: 14.04.2008, 04:33:27 »
Do skoly chodim, lebo mam ISIC zlavy a mam rad masove hamburgery s tatarkou. A tak nejak ako pisal Agamemnon tak som tu item aj pochopil, kedze casostroj je nieco ako item v miestnosti, no neda sa s nim hybat pocas celej hry, za ziadnych okolnosti. Ale ked tak robim tu implementaciu prisposobovania veci na zaklade novych technologii, tak mi to prijde tymto mojim sposobom dost banalne, prosim napiste nejaky napad. Radsej tu neuvediem svoje myslienky, aby Vas neovplyvnili, prosim skuste pouvazovat, velmi by ste mi pomohli, vdaka.

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #403 on: 14.04.2008, 05:10:38 »
najlepšie nápady sú také, ktoré robia to, čo majú, a sú jednoducho realizovateľné...

ak problém vyzerá zložito, to ešte neznamená, že nemá jednoduché/elegantné riešenie :)
All code is crap.

42

include

  • Newbie
  • *
  • Posts: 7
  • Som Sa-Lee
    • View Profile
Re: OP - Objektove programovanie
« Reply #404 on: 14.04.2008, 05:44:29 »
Neverim, ze nikto nema ziaden napad. Nieco uz mam zmaknute, no prispejte s napadom, prosim.

Havran

  • Hero Member
  • *****
  • Posts: 2003
  • Here comes the fuzz
    • View Profile
Re: OP - Objektove programovanie
« Reply #405 on: 15.04.2008, 00:50:12 »
ta ked ja nechapem co vlastne chces :(
Achievement of your happiness is the only moral purpose of your life.

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #406 on: 15.04.2008, 01:14:22 »
a to, čo si dal k dispozícií je málo na nejaký nápad... hlavne ak nvm, s čím mám operovať - ako máš čo implementované, ako čo u teba funguje atď
All code is crap.

42

include

  • Newbie
  • *
  • Posts: 7
  • Som Sa-Lee
    • View Profile
Re: OP - Objektove programovanie
« Reply #407 on: 15.04.2008, 04:59:55 »
O nedlho vydam "demo". Uz som to ciastocne nakodil. Dufam, ze potom budete mat viac napadov.

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #408 on: 15.04.2008, 05:32:06 »
pokiaľ nebude open source, tak asi skôr nie :)
All code is crap.

42

Payne

  • Sr. Member
  • ****
  • Posts: 408
    • View Profile
Re: OP - Objektove programovanie
« Reply #409 on: 15.04.2008, 14:38:08 »
Pocuvaj ma include, ty co vlastne chces?
« Last Edit: 15.04.2008, 17:43:58 by JCube »

include

  • Newbie
  • *
  • Posts: 7
  • Som Sa-Lee
    • View Profile
Re: OP - Objektove programovanie
« Reply #410 on: 15.04.2008, 18:13:50 »
Pocuvaj ma include, ty co vlastne chces?

No potreboval som pomoct so zadanim, ale uz som to nejak zriesil. Je to popisane v predoslych postoch. Pracujem na verzii zadania, ktoru budem moct dat do obehu a dufam, ze prispejete napadmi, ktore potom budem moct implementovat. Ma to nejak chytilo, ta hra.

Alzak

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: OP - Objektove programovanie
« Reply #411 on: 16.04.2008, 23:57:42 »
Mam abstraktnu triedu ITEM, ktora ma konkretne aj abstraktne metody. Dalej mam 3 triedy (napr. stolicka,stol,kniha), ktore su odvodene (implementuju) abstraktnu triedu ITEM. Chcem vytvorit instancie vsetkych 3 tried a ulozit ich do pola ITEM[].
Ako by som to mal urobit, aby som potom mohol pouzivat metody v danych 3 triedach a sucasne aj konkretne metody v triede ITEM.

public abstract class ITEM
{
    public void konkretnaMetoda()
    {
        ...
    }
    public abstract void abstractnaMetoda(int i);
}

public class stol : ITEM
{
    public void konkretnaMetoda2()
    {
        ...
    }
     public override void abstractnaMetoda(int i)
    {
        ...
    }
}

public class program
{
    public Program()
    {
        ITEM instancia = new stol();
        instancia.konkretnaMetoda();             //Toto by malo ist v pohode
        instancia.konkretnaMetoda2();           //Toto nejde, ale chcel by som, aby to islo
        instancia.abstractnaMetoda(5);         //Tu by sa mala volat prepisana metoda v triede stol?
    }
    public static void Main()
    {
        new Program();
    }
}

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #412 on: 17.04.2008, 05:00:51 »
instancia.konkretnaMetoda2();           //Toto nejde, ale chcel by som, aby to islo

pretypuj a pôjde:
((stol) instancia).konkretnaMetoda2();
All code is crap.

42

ApokalypS

  • Hero Member
  • *****
  • Posts: 5801
  • apokalyps(a) sa mení..
    • View Profile
    • projekt k mojej diplomovke..
Re: OP - Objektove programovanie
« Reply #413 on: 18.04.2008, 18:26:18 »
ach jaj eminka, ty sa asi zase nudis, ze tie stare videjka vytahujes..
80% mozgu človeka tvorí kvapalina, v mojom prípade brzdová..

CHCEM S5 :zuzka: STARY IS :zuzka: !!!!
http://www.tu-ke.com/forum/o-nicom/otvoreny-list-vedeniu-firmy-dupress-(dodavatel-mais)/

puq

  • Hero Member
  • *****
  • Posts: 4065
    • View Profile
Re: OP - Objektove programovanie
« Reply #414 on: 26.04.2008, 17:47:37 »
taka otazka Item ma povinne name a description..... a dalej je pri prikazoch ze: preskumaj VEC, ono to ma hodit len to description? alebo nieco nove?

kOsTi

  • Hero Member
  • *****
  • Posts: 12765
    • View Profile
    • pretaktovanie.sk
Re: OP - Objektove programovanie
« Reply #415 on: 26.04.2008, 17:50:09 »
no tak podla mna napr este mozes mat nieco take ak napr ked das preskumat skatulku tak ti tam moze najst novy Item v nej... a tak :)
:trestac:

puq

  • Hero Member
  • *****
  • Posts: 4065
    • View Profile
Re: OP - Objektove programovanie
« Reply #416 on: 26.04.2008, 17:53:18 »
no hej ale take nemam :P okey pri verzii 1.0 to necham tak :)

Final_Destructer

  • Full Member
  • ***
  • Posts: 200
  • Beat The Machine That Works In Your Head.
    • View Profile
Re: OP - Objektove programovanie
« Reply #417 on: 26.04.2008, 23:50:41 »
Aky je rozdiel medzi "dž" a "ô"?

dž:
 Item RoomItems = new ArrayList();

ô:
 IItem RoomItems = new ArrayList();

EDIT:

Ešte jedna otazka:

chcel by som smery do ktor(i/y)ch sa da z miestnosti ist reprezentovat enumeracnym typom ...napr. private enum Directions... trapi ma vsak taka vec ze ked budem vytvarat napr. miestnost ako konstruktoru zadam tie pripustne smery. Resp. ako to riesite vy
« Last Edit: 27.04.2008, 00:03:38 by Final_Destructer »
Wanna get destructed?

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #418 on: 27.04.2008, 00:05:55 »
predpokladám, že IItem je rozhranie z tej sady, čo je dodaná ku zadaniu?

ak hej, tak minimálne to s IItem nebude fungovať... to s Item len za istých podmienok, ale skôr tiež nie...

inak... rozdiel je taký, že ako inštanciu rozhrania môžeš vytvoriť objekty rôznych typov - ak máš viac tried, ktoré implementujú dané rozhranie:
Code: [Select]
interface IRozhranie { ... }

class Trieda : IRozhranie { ... }
class Classa : IRozhranie { ... }
a potom niekde v kóde môžeš použiť takéto veci:
Code: [Select]
IRozhranie a = new Trieda();
ale aj
IRozhranie b = new Classa();

výhodné použiť napr. pri predávaní parametrov metóde... (aj viacero ďalších použití):
Code: [Select]
int Method(IRozhranie r) { ... }

použitie:
Method(a);
ale aj:
Method(b);
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #419 on: 27.04.2008, 00:08:24 »
pre edit:

hodnoty enum vieš normálne použiť ako akúkoľvek inú hodnotu (napr. ako číslo 12)

Code: [Select]
public enum Direction {Hore, Dole}

class Trieda {
  public Trieda(Direction d) { ... }
}

použitie:
Trieda t = new Trieda(Direction.Dole);
resp.
Trieda t = new Trieda(Direction.Hore);
All code is crap.

42

Mao

  • Sr. Member
  • ****
  • Posts: 392
    • View Profile
Re: OP - Objektove programovanie
« Reply #420 on: 27.04.2008, 00:10:11 »
Mozes to riesit tak ze kazda miestnost bude obsahovat referencie susednych miestnosti, nejaky arraylist do ktoreho nahadzes ten enumeracny typ, a na zaklade jeho obbsahu budes vediet ci existuje prechod v danom smere, potom mozes mat nejake 4 boolovske premenne, ktore ak existuje cesta v danom smere budu true, potom mozes mat maticu incidencie. Moznosti je vela´.

A co sa tyka toho rozdielu, tak to ti prelozi kompilatotr? Ved napravo mas typ arraylist a nalavo je typ Item, resp Rozhranie IItem.

Final_Destructer

  • Full Member
  • ***
  • Posts: 200
  • Beat The Machine That Works In Your Head.
    • View Profile
Re: OP - Objektove programovanie
« Reply #421 on: 27.04.2008, 00:16:46 »
Ja som to myslel tak ze ked mam rozhranie IItem a urobil som si aj triedu Item (ktora to rozhranie implementuje) ci mam pouzivat ako typ Item alebo IItem? Napr. ked robim novy BackPack ..tak to bude:

IItem Inventory = new ArrayList() alebbo Item Inventory = new Ar...

Lebo v tej triede Step (ktora mimochodon neviem na co je :D) je backpack urobeny ako IBackPAck...

EDIT: Ked som implementoval rozhranie IBackPack tak v metode Push to ako parameter prebera nieco typu IItem... to tam tak nechat alebo to prepisat na Item

« Last Edit: 27.04.2008, 00:18:44 by Final_Destructer »
Wanna get destructed?

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OP - Objektove programovanie
« Reply #422 on: 27.04.2008, 00:17:47 »
to s arraylistom ti nepôjde

používaj inštancovanie rozhrania
IItem i = new Item();
All code is crap.

42

JCube

  • Hero Member
  • *****
  • Posts: 9008
    • View Profile
Re: OP - Objektove programovanie
« Reply #423 on: 27.04.2008, 00:19:57 »
ked chces mat zoznam Itemov tak to sprav ako

List<Item> itemList = new List<Item>();
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

Final_Destructer

  • Full Member
  • ***
  • Posts: 200
  • Beat The Machine That Works In Your Head.
    • View Profile
Re: OP - Objektove programovanie
« Reply #424 on: 27.04.2008, 00:20:50 »
Nieco ako ArrayList Itemov neexistuje?
Wanna get destructed?