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

Objektové programovanie

Started by tino8, 28.09.2009, 05:12:18

« predchdzajce - alie »

dEVIANT

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

Quote from: dEVIANT on  05.01.2010, 04:29:28
netestuje sa .jar súbor ale celá zložka hry...teda napr pmd C.../Hra

Uz rozumiem...Thanx

patt

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

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

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

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

#405
Quote from: dEVIANT 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

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

dEVIANT

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

Quote from: dEVIANT 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...

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

Uz len tote if-y  :'(

Dakota

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

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

Quote from: dEVIANT on  05.01.2010, 04:08:28
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

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

citro,to je sice pekne...ale co robit,ked som mal cviko s Mirekom??

lielo

ludia, ako maju vyzerat tie junit testy?

Dakota

Quote from: Agamemnon 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.

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

no a preco to nedas do switchu?
"Iba život, ktorý žijeme pre ostatných, stojí za to." - Albert Einstein

Dakota

Quote from: piton on  05.01.2010, 18:17:10
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

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

Quote from: Agamemnon 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?


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

Quote from: Dakota on  05.01.2010, 18:50:44
Quote from: Agamemnon 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?


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

#420
Quote from: mirek on  05.01.2010, 19:33:39
Quote from: Dakota on  05.01.2010, 18:50:44
Quote from: Agamemnon 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?


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.

dEVIANT

#421
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

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

Dakota

#422
Quote from: dEVIANT 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



A ako deklarujem to Dictionary? :(

LEbo zapis 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 :(:)

dEVIANT

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

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