Author Topic: OOP Binasove skupiny  (Read 31664 times)

nimrod

  • Newbie
  • *
  • Posts: 13
    • View Profile
OOP Binasove skupiny
« on: 16.11.2012, 23:23:49 »
Neviete mi niekto pomoct s krokom c.3 z tohto cvicenia: http://it4kt.cnl.sk/c/oopng/08.html ?
Treba nakodit funckiu " public boolean intersects(Actor actor){} " ktora zisti ci sa hrac (actor player) nachadza na lekranicke (actor energy).
Problem je v tom, ze neviem povedat funkcii ze x,y myslim poziciu hraca a a,b myslim poziciu lekarnicky.
               
   

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OOP Binasove skupiny
« Reply #1 on: 17.11.2012, 00:36:10 »
je jedno, či x-y je hráč a a-b je lekárnička... alebo naopak (x-y je lekárnička, a-b je hráč)...

nechápem inak úplne, čo sa vlastne pýtaš (aj keď to môže byť tým, že to zadanie som nevidel a prečítal som si len tú časť, ktorú si označil - krok 3... ale možno si to nakódujem zajtra :D)
All code is crap.

42

Tren

  • Moderator
  • Hero Member
  • *****
  • Posts: 1060
  • Fortes fortuna adiuvat
    • View Profile
Re: OOP Binasove skupiny
« Reply #2 on: 17.11.2012, 16:18:17 »
jedno bude len getX() getY() a druhe actor.getX() a actor.getY() alebo nejak tak asi?

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OOP Binasove skupiny
« Reply #3 on: 17.11.2012, 20:44:08 »
aha...
je jedno, či pár x, y je hráč, alebo lekárnička, pokiaľ je to konzistentné...
tj. ak x bude x-pozícia hráča, tak y musí byť y-pozícia hráča... a a,b potom pozície lekárničky...
ale môže to byť aj opačne - tj. x bude x-pozícia lekárničky, y y-pozícia lekárničky a a,b bude pozícia hráča...

samozrejme, musíš dodržať konzistenciu aj pre výšku a šírku
All code is crap.

42

robo22

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: OOP Binasove skupiny
« Reply #4 on: 18.11.2012, 10:41:52 »
ja mma zas problem s krokom 4 ... konkretne 4.3..... volanie metódy removeActor() nad objektom sveta... robi sa to pomocou metody getPlayer()..... ale nad objektom sveta sa tato metoda neda volat kedze neexistuje.

Don_Corleone

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: OOP Binasove skupiny
« Reply #5 on: 18.11.2012, 16:56:39 »
ja mma zas problem s krokom 4 ... konkretne 4.3..... volanie metódy removeActor() nad objektom sveta... robi sa to pomocou metody getPlayer()..... ale nad objektom sveta sa tato metoda neda volat kedze neexistuje.

stiahni najnovsi AlienLib
.................................................

U mna je skor problem ten ... ze akonahle chcem pouzit world.getPlayer ... napr dale .getX() ... getEnergy .. proste hocico ..tak mi hadze nullpointerexception .. ak to pretypujem na ((Player)(world.getPlayer())) .. robi to iste
« Last Edit: 18.11.2012, 17:00:16 by Don_Corleone »

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OOP Binasove skupiny
« Reply #6 on: 18.11.2012, 17:39:56 »
ten null pointer znamená to, že nemáš v premennej žiadnu inštanciu...
All code is crap.

42

Don_Corleone

  • Jr. Member
  • **
  • Posts: 66
    • View Profile
Re: OOP Binasove skupiny
« Reply #7 on: 18.11.2012, 21:11:15 »
no vsak prave toto ze ten getPlayer() na objekte world ...mi ma vracat instanciu playera nie ?

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OOP Binasove skupiny
« Reply #8 on: 18.11.2012, 22:40:23 »
nemám predstavu :) logicky áno, ale to ešte neznamená, že toho hráča netreba niekde nastaviť prv...
čo som pozeral dokumentáciu teraz, tak tam getplayer nie je, takže tá je asi neaktuálna... bez toho ti neporadím, keď disassembly tej knižnice sa mi fakt robiť nechce :)
All code is crap.

42

Sif

  • Newbie
  • *
  • Posts: 15
    • View Profile
Re: OOP Binasove skupiny
« Reply #9 on: 20.11.2012, 01:22:22 »
celkom ma potešila táto téma, už som sa chystala dnes zakladať niečo podobné.. stojím na tom istom probléme.. aj keď už som nenašla riešenie, zatiaľ.. aspoň viem, že nie je chyba vo mne  bp

robo22

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: OOP Binasove skupiny
« Reply #10 on: 20.11.2012, 02:47:41 »
ked chces pouzivat getPlayer() tak najprv musis v triede Main nastavit world.setPlayer(player)


Tren

  • Moderator
  • Hero Member
  • *****
  • Posts: 1060
  • Fortes fortuna adiuvat
    • View Profile
Re: OOP Binasove skupiny
« Reply #11 on: 20.11.2012, 04:12:55 »
celkom ma potešila táto téma, už som sa chystala dnes zakladať niečo podobné.. stojím na tom istom probléme.. aj keď už som nenašla riešenie, zatiaľ.. aspoň viem, že nie je chyba vo mne  bp
v kniznici chyba nie je ale mozno nieco zabudli napisat do scenara a tebe to robi chybu lebo si zabudla ak nahodou len spomenul cviciaci na cviku. tak napis co konkretne ti nejde  :)

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OOP Binasove skupiny
« Reply #12 on: 20.11.2012, 04:43:10 »
akože... kľudne píšte problémy s oop... snažil som sa pomáhať minulé roky, budem v tom pokračovať aj tento rok...
len tento rok mám miernu nevýhodu, lebo po minulé roky som poznal zadanie :D a dokonca som robil tú knižnicu... :) takže som vedel ľahšie odpovedať na otázky :D
All code is crap.

42

nimrod

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: OOP Binasove skupiny
« Reply #13 on: 20.11.2012, 17:00:21 »
jedno bude len getX() getY() a druhe actor.getX() a actor.getY() alebo nejak tak asi?

ano, tak to ma byt.

nimrod

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: OOP Binasove skupiny
« Reply #14 on: 20.11.2012, 17:10:27 »
Ako zapisem printf("%s",string);  v jave?

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OOP Binasove skupiny
« Reply #15 on: 20.11.2012, 19:23:54 »
All code is crap.

42

tino8

  • Hero Member
  • *****
  • Posts: 1093
    • View Profile
Re: OOP Binasove skupiny
« Reply #16 on: 22.11.2012, 03:12:39 »
ten Formatter je dobry ak chces este niejak dalej formatovat ten string, ale ak chces spravit jednoducho to co mas v kode, tak System.out.println(string);


karamel je cukr co se uz neuzdravi!

m@tej

  • Sr. Member
  • ****
  • Posts: 288
    • View Profile
Re: OOP Binasove skupiny
« Reply #17 on: 23.11.2012, 21:48:18 »
cawte priatelia, no dostal som sa na 9. cviko a trosku mam problemy s tymi listami  bu konkretne dosiel som na bod 1.3 a tam je implementovat metodu iterator.  Len mi prosim vysvetlite co to je ten iterator. co ma vratit alebo k comu to je??  :)
tu je dane cviko: http://it4kt.cnl.sk/c/oopng/09.html

diky

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: OOP Binasove skupiny
« Reply #18 on: 23.11.2012, 21:56:14 »
tam mas napisane, ze:
iterator() - získa z listu items iterátor

takze predpokladam, ze items je ArrayList(), takze mas ziskat z ArrayListu items jeden item, cize items.get(cislo) ked som dobre pochopil

m@tej

  • Sr. Member
  • ****
  • Posts: 288
    • View Profile
Re: OOP Binasove skupiny
« Reply #19 on: 23.11.2012, 22:05:36 »
no asi si dobre pochopil, ale co to vlastne ten iterator je?? znameto to ze kazdy item je reprezentovany cislom a ja mam ziskat cislo jedneho item-u??

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: OOP Binasove skupiny
« Reply #20 on: 23.11.2012, 22:22:34 »
hm, asi to nebude tak ... lebo ta funkcia nema mat ziadny argument, cize to nemoze vracat jeden konkretny item z items ... mozno to ma vracat cele items, neviem ... neviem co znamena iterator .. pockaj si na niekoho mudrejsieho, mna to napadlo ako prve ale asi to nebude ono :D

pozri si toto, mozno ti to pomoze: http://www.kiv.zcu.cz/~ledvina/vyuka/poruban/cv8/cv8.html
« Last Edit: 23.11.2012, 22:24:36 by xxx3 »

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OOP Binasove skupiny
« Reply #21 on: 23.11.2012, 22:59:38 »
nedobre si to pochopil...

iterator je design pattern, ktorý umožňuje prechádzať cez prvky kolekcie (zoznamu, poľa, etc)...
všeobecne ten design pattern funguje tak, že má metódy movenext a getcurrent... kde potom pomocou while vieš prejsť cez všetky prvky nejak takto:
Code: [Select]
while (list.movenext() != null) {
  process(list.getcurrent());
}

v prípade javy a .netu (a ďalších) sa iterovanie robí cez konštrukciu foreach...
v jave je zápis pre foreach konštrukciu nasledovný:
Code: [Select]
for (Type item : list) {
  ...
}
v .net to funguje cez kľúčové slovo foreach

v tomto konkrétnom prípade vy máte triedu, ktorá má jednu z privátnych premenných list (ArrayList)... tento list už má implementovaný pattern iterator (ak pozriete v dokumentáciu ku jave, tak zistíte, že jedna z metód, ktorú ArrayList má je iterator(), ktorý vráti objekt type Iterator<E>)... tento iterator umožňuje iterovanie cez prvky arraylistu pomocou foreach konštrukcie (samozrejme, ide to aj cez while, ako som to popísal vyššie, ale kto by to robil? keď cez foreach je to jednoduchšie... zvyčajne...)

takže to, čo vy potrebujete urobiť je, že zverejníte tento iterator arraylistu predmetov v Backpacku aj pre Backpack samotný...

kompletné riešenie by som vám tu asi napísať nemal... ale aspoň náznak urobím... v triede Backpack urobíte metódu, ktorá bude vyzerať takto:
Code: [Select]
public Iterator<Item> iterator() {
  ...
}

telo si doplňte sami... malo by to byť pochopiteľné z toho, čo som napísal... :) snáď :)
a hlavne tá návratová hodnota by mohla byť slušná pomôcka k tomu, čo máte urobiť...
:)
All code is crap.

42

m@tej

  • Sr. Member
  • ****
  • Posts: 288
    • View Profile
Re: OOP Binasove skupiny
« Reply #22 on: 24.11.2012, 00:38:01 »
vdaka za vycerpavajucu odpoved, ale asi som nejak moc blby :D
nemozes napisat tu metodu?? sak jedna funckia neni cely kod  :)
kazdopadne vdaka za vysvetlenie, aspon viem co je iterator :)

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: OOP Binasove skupiny
« Reply #23 on: 24.11.2012, 03:08:45 »
Code: [Select]
public Iterator<Item> iterator() {
  return items.iterator();
}
All code is crap.

42

m@tej

  • Sr. Member
  • ****
  • Posts: 288
    • View Profile
Re: OOP Binasove skupiny
« Reply #24 on: 24.11.2012, 03:42:49 »
dakujem :)
som zvedavy kedy sa opat zaseknem :)