Dama – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dama – Java – Fórum – Programujte.comDama – Java – Fórum – Programujte.com

 

arny
~ Anonymní uživatel
15 příspěvků
17. 12. 2012   #1
-
0
-

Cau,

potreboval bych trosku pomoct s navrhem kontroly tahu u damy dameo.

Pro predstavu jak vypada spustena hra:

8|*||*||*||*||*||*||*||*|
7| ||*||*||*||*||*||*|| |
6| || ||*||*||*||*|| || |
5| || || || || || || || |
4| || || || || || || || |
3| || ||+||+||+||+|| || |
2| ||+||+||+||+||+||+|| |
1|+||+||+||+||+||+||+||+|
  A  B  C  D  E  F  G  H
Chcete-li ukoncit hru zmacknete 1
chcete-li pokracovat zmacknete 2: 2

hraje bily

Odkud chcete hrat(napr.A1):a1
[[D, 4, A, 2], [], [], []]
Kam chcete hrat(napr.A1):
a2
8|*||*||*||*||*||*||*||*|
7| ||*||*||*||*||*||*|| |
6| || ||*||*||*||*|| || |
5| || || || || || || || |
4| || || || || || || || |
3| || ||+||+||+||+|| || |
2|+||+||+||+||+||+||+|| |
1| ||+||+||+||+||+||+||+|
  A  B  C  D  E  F  G  H
hraje cerny

Takze, hra zatim probiha tak, ze zadam souradnici kterou chci hrat pro ni si zjistim vsechny mozne tahy,skoky.

Muzete videt i u vypisu [[D, 4, A, 2], [], [], []], kde prvni seznam obsahuje obyc tahy,druhy obyc skoky,treti pohyb damou ,ctvrty skoky damou.

Mam ted problem s tim jak to kontrolovat.

delal sem to ted takto, ale hrozne jsem se do toho zamotal :-(

List skok = (List) seznamSouradnic.get(1);
        List pohyb = (List) seznamSouradnic.get(0);
        if (skok.size() > 0 && (c1 != skok.get(0) && i1 != skok.get(1))) {
            while (c1 != skok.get(0) && i1 != skok.get(1)) {
                System.out.print("Musis skakat");
                s1 = kam();
                c1 = s1.charAt(0);
                i1 = Character.digit(s1.charAt(1), 10);
                c1 = Character.toUpperCase(c1);
            }
        } else if (pohyb.size() > 0 && !najdi(c1, i1, pohyb)) {
            while (!najdi(c1, i1, pohyb)) {
                System.out.print("Zadal si nepovoleny tah,zkus znovu:");
                s1 = kam();
                c1 = s1.charAt(0);
                i1 = Character.digit(s1.charAt(1), 10);
                c1 = Character.toUpperCase(c1);
            }
        }

Skoky maji prednost pred obyc. tahama.

Takze potrebuji nejak poresit kdyz muzu skakat,abych mohl zadat jen skoky.

Kdyz pohyb tak jen pohyb ale jen na povony tah.

A jeste mensi problem ze u skoku damou mne vypise tah, ale nevymaze se mne preskocena figurka, ale to bych resil

napr. tak, ze zjistim smer a smazu o pozici mene nez kde se zrovna nachazi.

dekuji za jakouko-li pomoc s navrhem :-)

Nahlásit jako SPAM
IP: 46.33.117.–
arny
~ Anonymní uživatel
15 příspěvků
17. 12. 2012   #2
-
0
-

#1 arny
Pro větší představu přidám pravidla hry:

Průběh hry
Obyčejný kámen se může pohybovat o jedno
pole vpřed (ortogonálně i diagonálně), pohyb
do stran a dozadu (ortogonálně i diagonálně)
není běžným kamenům dovolen.
Obyčejný kámen smí také přeskočit
nepřerušenou řadu vlastních obyčejných
kamenů a postavit se na první volné pole
na jejím konci a to opět pouze směrem vpřed
(ortogonálně i diagonálně).
Pokud se obyčejný kámen dostane na konci svého tahu na poslední (resp. první) řadu hrací
desky, mění se na dámu.
Dáma se pohybuje všemi směry (ortogonálně i diagonálně) o libovolný volný polí.
Zajímání soupeřových kamenů (obyčejných i dam) se provádí skákáním jako v klasické
dámě, ale pouze v ortogonálních směrech (vpřed, vzad, do stran).
Obyčejný kámen smí přeskočit soupeřův kámen, který se nachází na sousedním poli,
a dopadnout na volné pole bezprostředně za přeskočeným kamenem. Přeskočený kámen je
odstraněn z desky.
Dáma smí při skoku přeskočit libovolný počet volných polí, zajímanou soupeřovu figurku
a dopadnout na pole bezprostředně za ní ve směru skoku.
Vícenásobné skoky jsou dovoleny.
Skákání je povinné, pokud kámen může po provedeném skoku dál skákat, musí tuto možnost
využít. Nezáleží na celkové délce skoku, ani druhu zajatých kamenů.

Nahlásit jako SPAM
IP: 46.33.117.–
arny
~ Anonymní uživatel
15 příspěvků
17. 12. 2012   #3
-
0
-

#2 arny
Kdyby nebylo neco jasny, jak mam treba naimplementovany, tak se ptejte. :-)

Nahlásit jako SPAM
IP: 46.33.117.–
Flowy
~ Anonymní uživatel
449 příspěvků
21. 12. 2012   #4
-
0
-

Nechapem v com mas problem ... Ked vies zistit mozne buduce tahy tak preco ich nevies porovnat? ... Navyse ich mas zoskupene

Nahlásit jako SPAM
IP: 178.41.234.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 28 hostů

Podobná vlákna

Dáma — založil Marek Hanuš

Hra Dáma — založil emigrate

AI u hry Dáma — založil Mutagen

Java Dama — založil Šulin Hrozný

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý