Author Topic: Objektové programovanie  (Read 140200 times)

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #400 on: 05.01.2010, 04:29:28 »
netestuje sa .jar súbor ale celá zložka hry...teda napr pmd C.../Hra
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #401 on: 05.01.2010, 04:46:11 »
netestuje sa .jar súbor ale celá zložka hry...teda napr pmd C.../Hra

Uz rozumiem...Thanx

patt

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Objektové programovanie
« Reply #402 on: 05.01.2010, 05:05:27 »
babenky...testuje sa adresar src/ co mas v hlavnom adresari hry ... teda C:/Hra/src/ aspon tak som to nasiel v historii prikazoveho riadku,ked to Mirek spustal na mojom notebooku...ROUND 1 >> mal som len 37 chyb :D

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #403 on: 05.01.2010, 06:42:17 »
Luida, prosim Vas co znamenaju tieto chyby?

Avoid reassigning parameters such as 'cesta'
a
Avoid assignments in operands toto konkretne v tom while

v kode

Code: [Select]
public void load(String cesta) throws FileNotFoundException, IOException {
         if(cesta.equals("")){
            cesta = "save/data.dat";
         }
         BufferedReader vstup = new BufferedReader(new FileReader(cesta));
         
         list.clear();
         String line;
         while ((line = vstup.readLine()) != null) {
             list.add(line);
         }
         vstup.close();
      }

Diky

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #404 on: 05.01.2010, 06:57:40 »
public void load(String cesta) throws FileNotFoundException, IOException {
         String path = cesta;
         if(path.equals("")){
            path = "save/data.dat";
         }
         BufferedReader vstup = new BufferedReader(new FileReader(path));
        
         list.clear();
         while (vstup.readLine() != null) {
             list.add(vstup.readLine());
         }
         vstup.close();
      }

už by to malo byť ok...a pre budúcnosť krutá vec...http://lmgtfy.com/?q=Avoid+assignments+in+operands
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #405 on: 05.01.2010, 07:27:12 »
public void load(String cesta) throws FileNotFoundException, IOException {
         String path = cesta;
         if(path.equals("")){
            path = "save/data.dat";
         }
         BufferedReader vstup = new BufferedReader(new FileReader(path));
        
         list.clear();
         while (vstup.readLine() != null) {
             list.add(vstup.readLine());
         }
         vstup.close();
      }

už by to malo byť ok...a pre budúcnosť krutá vec...http://lmgtfy.com/?q=Avoid+assignments+in+operands

Dikes za pomoc s tou cestou, ale while podla tvojho nefunguje :(

P.S. Jasne google :), ja som si to aj nasiel v dokumentacii PMD ale nechapal som tomu
P.S.2. Viem ze sa to tu riesilo, s tou dlhou metodou createRooms, mam ten isty problem, ale skusil som si hodit deklaraciu roomov von z tej metody a uz je to okej. Ale zas na druhej strane mi PMD hlasi chybu v GameImpl ze mam tam vela premennych :(

Uz len tieto chyby mi treba poopravovat a este musim zredukovat if-y :D
« Last Edit: 05.01.2010, 07:32:12 by Dakota »

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #406 on: 05.01.2010, 07:40:00 »
Mno mne funguje...takže ostatnú implemntíciu asi budeš mať inú...tak skús dať
 
String riadok = vstup.readLine();
while (riadok !=null) {
...
riadok = vstup.readLine()
}

ale overené to nemám...
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #407 on: 05.01.2010, 08:03:25 »
Mno mne funguje...takže ostatnú implemntíciu asi budeš mať inú...tak skús dať
 
String riadok = vstup.readLine();
while (riadok !=null) {
...
riadok = vstup.readLine()
}

ale overené to nemám...

No, takze uz mi to funguje, dikes za pomoc :thumbs-up:

Uz len tote if-y  :'(

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #408 on: 05.01.2010, 16:47:06 »
Neviete niekto poradit ako urobit to rozsirenie HELP???

Ja som si to sice urobil, ale mam tam vela podmienok IF a PMD mi to potom nechce zobrat:(

Ale ine riesenie nez cez podmienky IF ma aj tak nenapada :(

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: Objektové programovanie
« Reply #409 on: 05.01.2010, 16:56:05 »
switch (aj ked to su len ify zapisane inak), dictionary, niektore design patterny, cykly, metody pre opakujuce sa veci, etc.
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: Objektové programovanie
« Reply #410 on: 05.01.2010, 16:58:46 »
No tak neviem čo konkrétne na tom nechápeš...ale tak ok...metóda getRoom by mohla vyzerať nejako takto :

public Room getRoom(String roomName) {
    Room navrat = null;
    for (Room room : this.zoznamMiestnosti)
      if (room.getName().equalsIgnoreCase(roomName)) {
          navrat = room;
      }
    return navrat;
}

a potom príkaz ne zmenenie exitov nejako takto :

game.getCurrentRoom().setExits((gameimpl.getRoom("START")), (gameimpl.getRoom("START")), null, null);

samozrejme som predtým pretypoval vstupný game na typ GameImpl...pomocou GameImpl gameimpl = (GameImpl) game;

už chápeš? :D

existuju napr. take veci ako su dictionary alebo keyedcollection... mozno by sa tiez dali pouzit :)
All code is crap.

42

citro

  • Full Member
  • ***
  • Posts: 207
    • View Profile
Re: Objektové programovanie
« Reply #411 on: 05.01.2010, 16:59:02 »
z MOODLA:

Ahojte

Všetko dobré v novom roku prajem, aby ste mali chuť do učenia a podarilo sa vám urobiť všetky skúšky :)

Termíny pre hromadné termíny na odovzdanie zadaní z OOP zatiaľ nie sú, ale tí, ktorí mali cvičenia s Marekom Novákov môžete sa zastaviť tento týždeň:
=============================================
utorok 5.1. od 10.00 - 12.00
štvrtok 7.1. od 13.00 - 15.00
piatok 8.1. od 10.00 - 12.00

Miesto: B blok prízemie, prechodová chodba ku prednáškovým miestnostiam P24 P25 ...(na pravej strane), dvere sú označené logom strojníckej fakulty (meno tam nie je), dvere pred Ing. Stanom Krajňákom.

patt

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Objektové programovanie
« Reply #412 on: 05.01.2010, 17:58:44 »
citro,to je sice pekne...ale co robit,ked som mal cviko s Mirekom??

lielo

  • Newbie
  • *
  • Posts: 15
    • View Profile
Re: Objektové programovanie
« Reply #413 on: 05.01.2010, 18:08:08 »
ludia, ako maju vyzerat tie junit testy?

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #414 on: 05.01.2010, 18:13:05 »
switch (aj ked to su len ify zapisane inak), dictionary, niektore design patterny, cykly, metody pre opakujuce sa veci, etc.

Lenze tam sa nic neopakuje...Mam to riesene tak ze zistim meno aktualnej miestiosti a porovnam s menom ktore chcem dostat(cez if :( )
A ked podmienka vyhovuje, tak sa vypise pomoc, a ak nie (else) tak sa vypise ze nevie pomoct.
No a takych if-ov tak mam trosku viacej :)

asi takto:
if
if
if
if
if
if
else

funguje mi to dobre az na to ze pmd hlasi chybu, ze je vela podmienok

piton

  • Hero Member
  • *****
  • Posts: 715
    • View Profile
Re: Objektové programovanie
« Reply #415 on: 05.01.2010, 18:17:10 »
no a preco to nedas do switchu?
"Iba život, ktorý žijeme pre ostatných, stojí za to." - Albert Einstein

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #416 on: 05.01.2010, 18:22:09 »
no a preco to nedas do switchu?

Lebo vo switchu mozem porovnavat len int nie? Aj ja potrebujem boolean...
V kazdom if-e mam equals, ktory vyhodnocuje ci je to naozaj ta miestnost ktoru chcem, a ak sa vyhodnoti ako true, vypise sa pomoc a ak false tak skoci na else a ten vypise ze nevie pomoc.

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: Objektové programovanie
« Reply #417 on: 05.01.2010, 18:43:13 »
v c# sa to da dat do switchu... v jave netusim... c# povoluje vo switchi testovat aj stringy (ai.)...

oks... ak to chapem spravne, tak chces ku miestnosti vypisat jej help?
predpokladam, ze mas objekt Room alebo aky, kde je aj nazov a aj help? nedaju sa roomy ulozit do dictionary a potom pristupovat ku nim pomocou kluca v dict (ktorym bude napr. nazov)? alebo urobit keyedcollection, co je vlastne skoro to iste?
All code is crap.

42

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #418 on: 05.01.2010, 18:50:44 »
v c# sa to da dat do switchu... v jave netusim... c# povoluje vo switchi testovat aj stringy (ai.)...

oks... ak to chapem spravne, tak chces ku miestnosti vypisat jej help?
predpokladam, ze mas objekt Room alebo aky, kde je aj nazov a aj help? nedaju sa roomy ulozit do dictionary a potom pristupovat ku nim pomocou kluca v dict (ktorym bude napr. nazov)? alebo urobit keyedcollection, co je vlastne skoro to iste?


No help chcem vypisat len k nejakym miestnostam, ktore som si zistoval cez if a nasledne som k nim vypisal hlasku (pomoc) (a v niektorych if-och som mal aj ci je napriklad predmet uz v miestnosti/batohu a ak ano tak k tomu sa uz vypisala ina hlaska(pomoc)).

Momentalne to skusam urobit cez "List", do ktoreho ukladam booleany z vyhodnoteni o miestnostiach...Potom budem tento zoznam prechadzat forom a ked najde true, tak sa vypise pomoc...Moze by aj takto? Alebo to robim uplne zle? :)

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #419 on: 05.01.2010, 19:33:39 »
v c# sa to da dat do switchu... v jave netusim... c# povoluje vo switchi testovat aj stringy (ai.)...

oks... ak to chapem spravne, tak chces ku miestnosti vypisat jej help?
predpokladam, ze mas objekt Room alebo aky, kde je aj nazov a aj help? nedaju sa roomy ulozit do dictionary a potom pristupovat ku nim pomocou kluca v dict (ktorym bude napr. nazov)? alebo urobit keyedcollection, co je vlastne skoro to iste?


No help chcem vypisat len k nejakym miestnostam, ktore som si zistoval cez if a nasledne som k nim vypisal hlasku (pomoc) (a v niektorych if-och som mal aj ci je napriklad predmet uz v miestnosti/batohu a ak ano tak k tomu sa uz vypisala ina hlaska(pomoc)).

Momentalne to skusam urobit cez "List", do ktoreho ukladam booleany z vyhodnoteni o miestnostiach...Potom budem tento zoznam prechadzat forom a ked najde true, tak sa vypise pomoc...Moze by aj takto? Alebo to robim uplne zle? :)

na jeden problem existuje niekolko rieseni. da sa napriklad aj tak, ze ked vytvaras miestnosti, tak mozes opat pretazit konstruktor o jeden parameter naviac, ktorym bude dotycny help. mozes pridat jednu metodu do triedy RoomImpl napr. getHelp() a v pripade potreby ju volat. bud ti vrati hlasku zadanu konstruktoru alebo null, ked help nie je.

ale tu ma napada nieco ine - co ked danu ulohu v miestnosti splnis? nemala by hlaska zmiznut? lebo zatial riesis iba to, ako ju dostat.
So say we all!

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #420 on: 05.01.2010, 19:39:05 »
v c# sa to da dat do switchu... v jave netusim... c# povoluje vo switchi testovat aj stringy (ai.)...

oks... ak to chapem spravne, tak chces ku miestnosti vypisat jej help?
predpokladam, ze mas objekt Room alebo aky, kde je aj nazov a aj help? nedaju sa roomy ulozit do dictionary a potom pristupovat ku nim pomocou kluca v dict (ktorym bude napr. nazov)? alebo urobit keyedcollection, co je vlastne skoro to iste?


No help chcem vypisat len k nejakym miestnostam, ktore som si zistoval cez if a nasledne som k nim vypisal hlasku (pomoc) (a v niektorych if-och som mal aj ci je napriklad predmet uz v miestnosti/batohu a ak ano tak k tomu sa uz vypisala ina hlaska(pomoc)).

Momentalne to skusam urobit cez "List", do ktoreho ukladam booleany z vyhodnoteni o miestnostiach...Potom budem tento zoznam prechadzat forom a ked najde true, tak sa vypise pomoc...Moze by aj takto? Alebo to robim uplne zle? :)

na jeden problem existuje niekolko rieseni. da sa napriklad aj tak, ze ked vytvaras miestnosti, tak mozes opat pretazit konstruktor o jeden parameter naviac, ktorym bude dotycny help. mozes pridat jednu metodu do triedy RoomImpl napr. getHelp() a v pripade potreby ju volat. bud ti vrati hlasku zadanu konstruktoru alebo null, ked help nie je.

ale tu ma napada nieco ine - co ked danu ulohu v miestnosti splnis? nemala by hlaska zmiznut? lebo zatial riesis iba to, ako ju dostat.

No skusim pretazit ten konstruktor:)

No ano ona zmizne (aspon pri mojich if-och), respektive sa nahradi inou hlaskou, ked uz vsetky ulohy by boli splnene tak sa zavola hlaska ze neni s cim pomoct.
« Last Edit: 05.01.2010, 19:42:31 by Dakota »

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #421 on: 05.01.2010, 19:42:09 »
JAVA stringy do switchu nepovoluje dať, čo je škoda :/...ale zas niekde som čítal, že sa to dá pomocu hashCode() previesť na číslo a tak to porovnávať, no mne sa to nikdy rozbehnúť nepodarilo...

Hej tie dictionary by sa tiež dali použiť, len vtedy som o nich ešte nevedel :D Na ten help by som to teraz asi tiež použil

Čiže ako písal Agamemnon, a potom v execute Helpu overíš či pre danú miestnosť / KLUC / existuje help / HODNOTA /...

if ( zoznamHelpov.TryGetValue("START",out help) == false)
           System.Console.WriteLine(" Tato miestnosti nepodporuje help");
     else System.Console.WriteLine("Pomoc k tejto miestnosti : {0}",help);

Tak by to bolo v C#...v JAVE to bude určite podobne...

EDIT: Otázka na mireka ešte raz, ako to bude s pomerom príklady/ teória na skúške?a typy otázok? :D

« Last Edit: 05.01.2010, 19:45:18 by dEVIANT »
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Dakota

  • Newbie
  • *
  • Posts: 31
    • View Profile
Re: Objektové programovanie
« Reply #422 on: 05.01.2010, 19:56:53 »
JAVA stringy do switchu nepovoluje dať, čo je škoda :/...ale zas niekde som čítal, že sa to dá pomocu hashCode() previesť na číslo a tak to porovnávať, no mne sa to nikdy rozbehnúť nepodarilo...

Hej tie dictionary by sa tiež dali použiť, len vtedy som o nich ešte nevedel :D Na ten help by som to teraz asi tiež použil

Čiže ako písal Agamemnon, a potom v execute Helpu overíš či pre danú miestnosť / KLUC / existuje help / HODNOTA /...

if ( zoznamHelpov.TryGetValue("START",out help) == false)
           System.Console.WriteLine(" Tato miestnosti nepodporuje help");
     else System.Console.WriteLine("Pomoc k tejto miestnosti : {0}",help);

Tak by to bolo v C#...v JAVE to bude určite podobne...

EDIT: Otázka na mireka ešte raz, ako to bude s pomerom príklady/ teória na skúške?a typy otázok? :D



A ako deklarujem to Dictionary? :(

LEbo zapis
Code: [Select]
Dictionary<String, String>pomoc = new Dictionary<String, String>(); nechce zobrat, pretoze pise chybu za Dictionary je abstract a chce implementovat vsetky jeho metody...Tie metody musim teraz implementovat? Alebo ako? Nie je to jak pri Liste, ze vsetky metody (add, remove..) mozem pouzivat...?

EDIT: Ok myslim ze uz som na to prisiel, pouzil som ale miesto Dictionary HashTable, cital som ze to je podobne
Ale ako tak rozmyslam, nepridem k tomu ze tam opat budem mat kopu if?

"if ( zoznamHelpov.TryGetValue("START",out help) == false)"
dalej  "if ( zoznamHelpov.TryGetValue("DALSIA MIEStNOST",out help) == false)"

uz mi je z toho zle :(:)
« Last Edit: 05.01.2010, 20:32:51 by Dakota »

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #423 on: 05.01.2010, 21:03:24 »
Jj dobre si použil...

ale veď...

String roomName = game.getCurrentRoom().getName();
"if ( zoznamHelpov.TryGetValue(roomName,out help) == false)
  {   System.out.println("Porad si sam!!!:P"); }
 else System.out.println(help);
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: Objektové programovanie
« Reply #424 on: 05.01.2010, 21:13:03 »
pokial vm, tak java nema out/ref...

takze nejak takto asi skor (zase je ten kod tak napoly v c#, napoly v PL... ale snad je jasne, ako to prepisat do javy):
if (zoznamHelpov.ContainsKey(roomName)) {println(zoznamHelpov[roomName]);} else {println("pomoz si sam");}

All code is crap.

42