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

Java

Started by kOsTi, 23.02.2008, 02:17:18

« predchdzajce - alie »

puq

a co sa chvalis akoze???  :pusta: :pusta:

kOsTi

ani ne bo v 6. cviku som zalameril a neviem jak dalej :D
:trestac:

puq

bud pokojny ja som ani nezacal, ale mam v plane coskoro :)

buhehe

ja mam tiez toto generate() inak....hmmm tak to bude zaujimave kolko variacii min nakoniec bude

Ing.Veduci

skor bude zaujimave kolko krat sa budu urcite variacie opakovat :puf: .... ja som robil asi tak trom ludom minuly rok :P
Co bolo, to bolo. Terazky som Ing.Veduci
Predpokladám, že väčšina z vás má doma počítač. Buď to, alebo ste si túto stránku vycucali z vredu na nohe.

TradeMark

Nie je tu niekto taky co uz je trocha vpredu? By som potreboval vediet co ma byt vlastne v tej metode update() ... v tych materialoch je iba napisane ze ju treba implementovat ale velmi konkretne napisane to tam neni :/
Pičoch jest veľo, ale nalivačoch malo!

kOsTi

update() urobi presne to co je popisane nad tym... vykresli pole (tj. cisla/pismenka stlpcov/riadkov, - , X , M, Clue value atd)

cize toto:

:trestac:

TradeMark

Hmmm zaujimave...ten obrazok mi tam nevykreslilo na tej stranke ... hmm diky.
Pičoch jest veľo, ale nalivačoch malo!

Indian

caute, ak uz niekto z vas robil update(), tak ja mam problem s volanim metody getValue(). mam tam nieco take

...
Tile tile = field.getTiles(i, j);
if(tile.getState() == Tile.State.OPEN) {
  if(tile instanceof Mine) {
    System.out.printf("%3s", "X");
  }
  else if(tile instanceof Clue) {
    System.out.printf("%3d", /* getValue() */);
  }
}
...

ak niekoho nieco napadne budem vdacny :) btw tile.getValue() nefunguje.

puq

na zaciatku update si daj napr:

Clue napoveda;

a v tom mieste kde ides vzpisovat tu napovedu musis ju najprv zistit

napoveda = (Clue) field.getTiles()[i][j];

a potom mozes pouzit napoveda.getValue()

Indian

#60
thnx, no i tak mi to hadze chybu na riadku

Clue clue = (Clue) field.getTiles(i, j);


update:
podarilo sa mi to vyriesit takto:

...
else if(tile instanceof Clue) {
  System.out.printf("%3d", ((Clue) tile).getValue());
}
...

puq

lebo to ma byt takto:

napoveda = (Clue) field.getTiles()[i][j];


lebo ked si robil metodu getTiles použitím refaktorizácie Encapsulate Fields tak potom to musis mat ako som vysie napisal

Indian

no neviem ako ty, ale ja mam metodu getTiles definovanu takto:

public Tile getTiles(int row, int column) {
        return tiles[row][column];
}

puq

ja to mam takto


public Tile[][] getTiles() {
        return tiles;
    }

Indian

aha, no ono to je asi jedno ako, ked to ide ze :) ja to mam pre poriadok def. podla toho navodu k cviceniam.

puq

ja som robil len podla krokov jak tam bolo napisane :)

kornas

#66
Chcel by som sa opytat este na tu metodu update(). Mam to tak:
System.out.printf(" ");                          // 62. riadok
        for (int g=0; g < field.getColumnCount(); g++)
            System.out.printf("%d",g);
       
        for (int i = 0; i < field.getRowCount() ; i++){
            System.out.printf("\n");
            //System.out.printf("Som tu...");
            System.out.printf("%c",'A'+i);
            for (int j=0; j < field.getColumnCount(); j++){
                Tile tile = field.getTile(i, j);
                //adMi = (Clue) field.getTile(i, j);
                if ((tile.getState()) == (Tile.State.CLOSED)) {
                    System.out.printf("%c", '-');
                }
                else if (tile.getState() == Tile.State.MARKED) {
                    System.out.printf("%c", 'M');
                }
                else if (tile.getState() == Tile.State.OPEN) {
                    if (tile instanceof Mine){
                        System.out.printf("%c", 'X');
                    }
                    else if (tile instanceof Clue) {
                        System.out.printf("%d", ((Clue) tile).getValue());
                    }
                }
            }
        }


skompiluje v pohode, ked spustim, tak vypise toto:
init:
deps-jar:
Compiling 1 source file to .........cesta.......
compile:
run:
012345678
Exception in thread "main" java.lang.NullPointerException
        at minesweeper.consoleui.ConsoleUI.update(ConsoleUI.java:73)
        at minesweeper.consoleui.ConsoleUI.newGameStarted(ConsoleUI.java:40)
        at minesweeper.Minesweeper.<init>(Minesweeper.java:21)
        at minesweeper.Minesweeper.main(Minesweeper.java:29)
A
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

vie mi s tym niekto pomoct ? neviem s tym pohnut uz 3.den. Vdaka.

Indian

#67
ja to mam takto:

    public void update() {
        //throw new UnsupportedOperationException("Method update not yet implemented");
        char[] alfa = {' ','A','B','C','D','E','F','G','H','I'};
        for(int i=-1;i<field.getRowCount();i++) {
            for(int j=0;j<field.getColumnCount();j++) {
                if(j==0) {
                    // vypise prazdny znak az I
                    System.out.printf("%s",alfa[i+1]);
                }
                if(i==-1) {
                    // vypise 0 az 9
                    System.out.printf("%3d", j);
                }
                else {
                    // vypise hracie pole
                    Tile tile = field.getTile(i, j);
                    if(tile.getState() == Tile.State.OPEN) {
                        if(tile instanceof Mine) {
                            System.out.printf("%3s", "X");
                        }
                        else if(tile instanceof Clue) {
                            // potreba pretypovania Tile na Clue,
                            // aby som mohol pouzit metodu getValue()
                            System.out.printf("%3d", ((Clue) tile).getValue());
                        }
                    }
                    else if(tile.getState() == Tile.State.MARKED) {
                        System.out.printf("%3s", "M");
                    }
                    else {
                        System.out.printf("%3s", "-");
                    }
                }
            }
            System.out.print("\n");
        }
    }

puq

to kornas

System.out.printf("%c", '-');

toto je co???? naco tam mas to %c???????

System.out.printf(" -"); tak by to malo byt

kornas

to je na vypis znaku - som mal predtym tam premennu typu char, tak preto som to tak nechal. Ale tam nie je chyba podla mna... lebo som to zmenil a aj tak to iste... kod je dobre ? hlavne tie IFy a podmienky...

Indian

kornas: ktory je ten 73 riadok ?

puq

jj pripojim sa, ja som pozrel len odoka ktory je ten riadok?????????

kornas

#72
Quote from: Indian on  26.03.2008, 22:26:33
kornas: ktory je ten 73 riadok ?
mam tam oznaceny 62., aby ste si mohli odpocitat aj ine ked treba, je to ten :

//adMi = (Clue) field.getTile(i, j);
         if ((tile.getState()) == (Tile.State.CLOSED)) {         // 73. riadok
              System.out.printf("%c",'-');


prave tam je ta podmienka, uz som to obmienal 2-krat a stale nic. neviem preco to...
v tom riadku:

System.out.printf("%c",'A'+i);

to je v poriadku ?? Malo by byt, len pre istotu sa pytam... vdaka.

Indian

a ked to das bez tych dvojitych zatvoriek ?
if (tile.getState() == Tile.State.CLOSED)
ale to by nemalo robit problemy, skor mam pocit ze tam nieco nie je inicializovane, ked to hadze null
skus este popripade prehodit poradie tych podmienok, ci to stale bude robit pri CLOSED alebo len na tom riadku

kornas

Quote from: Indian on  26.03.2008, 22:33:59
a ked to das bez tych dvojitych zatvoriek ?
if (tile.getState() == Tile.State.CLOSED)
ale to by nemalo robit problemy, skor mam pocit ze tam nieco nie je inicializovane, ked to hadze null
skus este popripade prehodit poradie tych podmienok, ci to stale bude robit pri CLOSED alebo len na tom riadku

ked som to poprehadzoval a dal ako prve OPEN podmienku, tak uz vypisovalo chybu na riadku s OPEN, cize zase na prvom, na ktorom bola podmienka...