Cześć, mam problem z pewnym elementem programu. Wyświetla on planszę do gry w a'la warcaby o wymiarach 10x10. Jest 20 pionków które poruszają się do przodu o jedno pole na skos i nie mogą się cofać. Jednak jeśli pionek dojdzie do przeciwnego końca planszy, zmienia kierunek ruchu - porusza się tylko w drugą stronę, jednak nadal o jedno pole na skos. Nie mam pojęcia jakie warunki zapisać w kodzie. Proszę o pomoc.
Jeżeli pytasz o warunki rozpoczęcia chodzenia w drugą stronę to tylko:
kierunek = 1;
while(gramy) {
//pozostałe zasady gry
if(doszedłeś do końca planszy) kierunek = 1 - kierunek;
}
i od wartości zmiennej kierunek zależy w którą stronę możesz się ruszać.
Tulio napisał(a):
Jeżeli pytasz o warunki rozpoczęcia chodzenia w drugą stronę to tylko:
kierunek = 1; while(gramy) { //pozostałe zasady gry if(doszedłeś do końca planszy) kierunek = 1 - kierunek; }
i
Jeśli dojdę do końca planszy i chcę wybrać pole w przeciwnym kierunku, to nadal wykonują się instrukcje dla pionka bez zmiany kierunku :/
Konsolowa gra?
Bo jak masz myszkę, to masz 4 kombinacje, ale przy krawędzi możesz tylko w przeciwnym kierunku, ale na środku masz wszystkie kombinacje czyli 4.
Tak, konsolowa
masz góra w lewo i góra w prawo po przekątnej.
A także dół w lewo i góra w prawo po przekątnej, oczywiście jak pionek dostanie awans na damkę.
Jak to implementujesz?
Damek akurat w tej grze nie ma, bo to nie są czyste warcaby, ale jeśli chodzi o warunki poruszania się pionków to podaję ich pola: najpierw pole, z którego chcę się ruszyć, potem pole, na które chcę się przenieść.
Warunki: v>x || v>9 || v<0 || G[v][z].pionek != spacja || z>9 || z<0 || v>x+1 || z>y+1 || z<y-1 || v<x-1 || x == v || y == z ,
gdzie x to nr wiersza, a y to nr kolumny przed przeniesieniem, a v i z analogicznie. Ostatnie dwa warunki są na to żeby pionek poruszał się tylko po skosie, no i G[v][z].pionek != spacja, czyli pionka nie można postawić na innym miejscu niż puste pole.