Batch 4 Gewinnt.
Hallo liebes Administrator-Forum.
Ich bin gerade dabei das Spiel "4 Gewinnt" in Batch zu programmieren.
Soweit so gut, bin auch schon recht weit, nur beisse ich mir die Zähne an den Diagonalen aus, der Rest steht.
Sprich ich möchte mein Feld auswerten, ob 4 gleiche Steine in einer Diagonale liegen.
Das Feld sieht so aus:
Und die "Funktionen" zum auswerten der Horizontalen und Vertikalen sehen so aus:
Habt ihr spontan eine Idee, wie ich das am besten realisieren kann?
Würde mich über jeden Gedankenanstoß freuen.
Hier ist der komplette Code, wollte nicht alles in den Thread posten.
http://pastebin.com/Lx7Hr38m
Mit freundlichsten Grüßen,
Budders/Gerrit
Ich bin gerade dabei das Spiel "4 Gewinnt" in Batch zu programmieren.
Soweit so gut, bin auch schon recht weit, nur beisse ich mir die Zähne an den Diagonalen aus, der Rest steht.
Sprich ich möchte mein Feld auswerten, ob 4 gleiche Steine in einer Diagonale liegen.
Das Feld sieht so aus:
A B C D E F G
1 %a1% %b1% %c1% %d1% %e1% %f1% %g1%
2 %a2% %b2% %c2% %d2% %e2% %f2% %g2%
3 %a3% %b3% %c3% %d3% %e3% %f3% %g3%
4 %a4% %b4% %c4% %d4% %e4% %f4% %g4%
5 %a5% %b5% %c5% %d5% %e5% %f5% %g5%
6 %a6% %b6% %c6% %d6% %e6% %f6% %g6%
Und die "Funktionen" zum auswerten der Horizontalen und Vertikalen sehen so aus:
::Horizontal
for /l %%e in (1,1,6) do (
for %%d in (A,B,C,D,E,F,G) do (
if !%%d%%e!==X set /a X%%e+=1 && set /a O%%e=0
if !%%d%%e!==O set /a O%%e+=1 && set /a X%%e=0
if "!%%d%%e!"==" " set /a O%%e=0 && set /a X%%e=0
if !X%%e!==4 (
cls
call :board
echo Spieler 2 hat GEWONNEN!
pause>nul
exit
)
if !O%%e!==4 (
cls
call :board
echo Spieler 1 hat GEWONNEN!
pause>nul
exit
)
)
)
::Vertikal
for %%f in (A,B,C,D,E,F,G) do (
for /l %%g in (1,1,6) do (
if !%%f%%g!==X set /a X%%f+=1 && set /a O%%f=0
if !%%f%%g!==O set /a O%%f+=1 && set /a X%%g=0
if "!%%f%%g!"==" " set /a O%%f=0 && set /a X%%g=0
if !X%%g!==4 (
cls
call :board
echo Spieler 2 hat GEWONNEN!
pause>nul
exit
)
if !O%%f!==4 (
cls
call :board
echo Spieler 1 hat GEWONNEN!
pause>nul
exit
)
)
)
exit/b
Habt ihr spontan eine Idee, wie ich das am besten realisieren kann?
Würde mich über jeden Gedankenanstoß freuen.
Hier ist der komplette Code, wollte nicht alles in den Thread posten.
http://pastebin.com/Lx7Hr38m
Mit freundlichsten Grüßen,
Budders/Gerrit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 237136
Url: https://administrator.de/contentid/237136
Ausgedruckt am: 08.11.2024 um 13:11 Uhr
1 Kommentar