Kóckapóker Továbbfejlesztése

Kóckapóker Továbbfejlesztése
2016-02-05T13:48:20+01:00
2016-02-08T11:14:53+01:00
2022-08-10T00:10:29+02:00
Vik80
Sziasztok!

Elkészítettem egy kóckapor  alkalmazást, ami Java Swing alapú, és gombnyomásra a dobott kombinációra kidobja, a találatot (vagyis, hogy One-Pair, Two-Pair, Drill , Fullhouse stb.)
A találatoknak megfelelően ki is írja, a dobott kombinációnak megfelelő szöveget, viszont , ha kellően többször ismétlem a dobások számát (n-szer), akkor pl. ha van Two-Pair találatom a JTextField-ben szemmel láthatóan, akkor nem ezt a találatot írja ki hozzá, hanem pl. "You've one pair"-ami az egypár találatához tartozik. Vagy ha pl. FullHouse találat van ,akkor akkor hozzá vagy a Two-Pair nek megfelelőt vagy a One Pair nek megfelelőt írja, de olyan is van ,hogy One-Pair találat esetén azt a szöveget írja ki ,hogy nincs találat, itt ez speciel ("You've unlucky day :(").

Tehát összefoglalva, többszöri dobást követően, nem a találatoknak megfelelő eredményt, kiértékelést adja.

Csatolom a kódot.....

Előre is köszi...:)
Mutasd a teljes hozzászólást!
Csatolt állomány
...csak sok dobás esetén nem mindig a megfelelő eredményt írja ki

Állíts be előre egy olyan fix dobás-állapotot, ahol biztosan hibás eredményt kapsz, és egyből láthatod, hogy ez bizony nem a dobások számától függ, hanem egyszerűen nem jó a kiértékelő algoritmusod.
Pl:

private void newCombination() { rolled[0] = 6; rolled[1] = 6; rolled[2] = 3; rolled[3] = 6; rolled[4] = 4; for (int i = 0; i < valueQt.length; i++) { diceFields[i].setText("" + rolled[i]); } evaluation(rolled); }



Mutasd a teljes hozzászólást!

  • Hát pár helyen nem igazán tudom milyen gondolat vezérelt téged, legalábbis vannak a kódban számomra furcsa részek.

    Pl.:

    private boolean stateOfCards(int one, int two, int three, int full) { if (one == 0 || two == 0 || three == 0 || full == 0) { isOnePair = false; isTwoPair = false; isDrill = false; isFullHouse = false; } return true; }
    Ezt a metódust az alábbi módokon hívod meg:

    stateOfCards(0, 1, 0, 0); stateOfCards(1, 0, 0, 0); stateOfCards(0, 0, 0, 1); stateOfCards(0, 0, 1, 0);
    Mindegyik hívás esetében a feltétel igaz lesz, és az összes flag-ed hamisra áll.
    Biztos vagy benne, hogy ez az általad elvárt működés?
    Más részek sem világosak számomra, de elsőre elég ennyi :)
    Mutasd a teljes hozzászólást!
  • Szia!

    Ez csak némi próbálkozás volt ez a néhány sor ,a korábban említett anomáliák kiküszöbölésére.
    Viszont ezen sorok nélkül is működik eqvivalensen , csak sok dobás esetén nem mindig a megfelelő eredményt írja ki.

    Kivettem az állományból ezt a "boolean" függvényt a hívásokkal . Ezek nélkül is a probléma továbbra is fennáll , hogy miért ír ki olykor nem megfelelő eredményt, pedig még a tömb  Reset-je is megtörténik.

    Kódot újra csatoltam....
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • ...csak sok dobás esetén nem mindig a megfelelő eredményt írja ki

    Állíts be előre egy olyan fix dobás-állapotot, ahol biztosan hibás eredményt kapsz, és egyből láthatod, hogy ez bizony nem a dobások számától függ, hanem egyszerűen nem jó a kiértékelő algoritmusod.
    Pl:

    private void newCombination() { rolled[0] = 6; rolled[1] = 6; rolled[2] = 3; rolled[3] = 6; rolled[4] = 4; for (int i = 0; i < valueQt.length; i++) { diceFields[i].setText("" + rolled[i]); } evaluation(rolled); }



    Mutasd a teljes hozzászólást!
abcd