Mühlespiel
Projektzusammenfassung | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Mühlebrett:
Mühle
Spielsteine
#INCLUDE ONCE "WINDOWS.BI"
#INCLUDE ONCE "win\COMMDLG.BI"
#INCLUDE "file.bi"
DECLARE SUB SPIELFELD
DECLARE SUB SETZEN
DECLARE SUB PRUEFEMUEHLE
DECLARE SUB PRUEFESTEINE
DECLARE SUB COMPUTER
DECLARE SUB SCHLAGEN
DECLARE SUB STELLUNG
DECLARE SUB ENDE
DECLARE SUB GUELTIGEZUEGE
DECLARE SUB SPIELER
DECLARE SUB ANZAHLGUELTIGERZUEGE
DECLARE SUB NOTATION
DIM SHARED AS ANY PTR Spielfeldpuffer, Steinpuffer, Steinpuffer2
DIM SHARED AS STRING filename, tasten, Wort, Zugnotation(1000, 2)
DIM SHARED AS INTEGER A = 24, S = 2, i, E, k, L, T, XXX, whandle, Won, Dran
DIM SHARED AS INTEGER X(A) , Y(A), XX(A), YY(A), SX(A), SY(A), Feld(A), AnzahlSteine(S), M(S), _
gesperrteMuehle(A, S), gueltige(A), ZweiMuehlen, ZugHilfeX(A), ZugHilfeY(A)
DIM SHARED AS INTEGER Anfaenger, PC, MENSCH, Muehle, PcZug, Taste, angeklickt, FeldAlt, FeldNeu
DIM SHARED AS INTEGER Setzphase(S), Ziehen(S), geschlagene(S), Steine(S), gesetzteSteine(S)
DIM SHARED AS INTEGER AnzahlZuege, Halbzuege, Remiszaehler
DIM SHARED AS INTEGER Tastensperre(5), NurMuehlen(S), Anzahlgueltige(A)
DIM SHARED AS INTEGER mausx, mausy, mausk
DIM f AS INTEGER = FREEFILE
RANDOMIZE TIMER
' Definitionen von Werten
Won = 0 ' Kein Gewinner
Remiszaehler = 0 'Zähler für 50-Züge-Regel
Dran = 1 ' Weißspieler beginnt
AnzahlZuege = 0 ' Zügezähler beginnt bei 0
Halbzuege = 0 ' ********************
AnzahlSteine(1) = 9 ' Anzahl der Steine - Spieler 1
AnzahlSteine(2) = 9 ' Anzahl der Steine - Spieler 2
geschlagene(1) = 0 ' geschlagene Steine - Spieler 1
geschlagene(2) = 0 ' geschlagene Steine - Spieler 2
PC = -10 ' Computer vorerst ausgeschaltet bei -10
Mensch = TRUE ' Mensch vorerst aktiviert
Anfaenger = INT(2 * RND + 1) ' Anfaenger ermitteln
IF PC = 0 THEN
IF Anfaenger = 1 AND PC = 0 THEN Mensch = TRUE: PC = FALSE ELSE Mensch = FALSE: PC = TRUE ' Anfaenger ermitteln
END IF
Setzphase(1) = TRUE
Setzphase(2) = TRUE
Ziehen(1) = FALSE
Ziehen(2) = FALSE
NurMuehlen(1) = TRUE
NurMuehlen(2) = TRUE
Tastensperre(1) = FALSE
Tastensperre(1) = FALSE
' ***************************************************************************************************
filename = "Button.txt"
IF FILEEXISTS(filename) THEN
OPEN "Button.txt" FOR INPUT AS #f
A = 1
DO UNTIL EOF(f)
INPUT #f, X(A), XX(A), Y(A), YY(A), SX(A), SY(A), ZugHilfeX(A), ZugHilfeY(A)
A += 1
LOOP
CLOSE #f
ELSE
END
END IF
SCREENRES 700, 640, 32
'------ Icon in der Titelleiste ------
SCREENCONTROL 2, whandle '2 = fb.GET_WINDOW_HANDLE
SendMessage (CAST (HWND, whandle), WM_SETICON, ICON_SMALL, _
CAST( INTEGER, LoadImage ( GetModuleHandle (NULL), _
"MY_ICON", IMAGE_ICON, 0, 0, LR_COPYFROMRESOURCE ) ) )
WINDOWTITLE "Mühle"
SPIELFELD
A = 0
DO
GETMOUSE mausx, mausy,, mausk
IF Mensch = 1 THEN
SELECT CASE mausk
CASE 1
IF Tastensperre(1) = 0 THEN A += 1
IF A > 24 THEN A = 1
SELECT CASE mausx
CASE X(A) TO XX(A)
SELECT CASE mausy
CASE Y(A) TO YY(A)
' Bei Muehle einen Spielstein schlagen, sofern möglich!
IF Dran = 2 THEN
IF gesperrteMuehle(A, 1) = 0 OR NurMuehlen(1) THEN
IF Muehle THEN SCHLAGEN: ANZAHLGUELTIGERZUEGE
ELSE
IF Muehle THEN MessageBox(0, "Dieser Stein kann nicht genommen werden!", "Mühle", MB_ICONINFORMATION OR MB_SYSTEMMODAL OR MB_OK)
END IF
END IF
IF Dran = 1 THEN
IF gesperrteMuehle(A, 2) = 0 OR NurMuehlen(2) THEN
IF Muehle THEN SCHLAGEN: ANZAHLGUELTIGERZUEGE
ELSE
IF Muehle THEN MessageBox(0, "Dieser Stein kann nicht genommen werden!", "Mühle", MB_ICONINFORMATION OR MB_SYSTEMMODAL OR MB_OK)
END IF
END IF
' Spielstein setzen!
IF Tastensperre(1) = 0 THEN
IF Mensch AND Setzphase(Dran) AND Feld(A) = 0 AND AnzahlSteine(Dran) > 0 AND Muehle = 0 THEN SETZEN: NOTATION: ANZAHLGUELTIGERZUEGE: EXIT SELECT
' IF Muehle AND Dran = 1 THEN AnzahlZuege += 1: NOTATION
END IF
' Startfeld - Figur auswählen
IF Feld(A) > 0 AND angeklickt = 0 AND Ziehen(Dran) THEN
IF Ziehen(Dran) THEN PRUEFESTEINE
IF Mensch AND Ziehen(Dran) AND Feld(A) = Dran AND Tastensperre(1) = 0 THEN
angeklickt = 1
FeldAlt = A
GUELTIGEZUEGE
' mögliche Züge anzeigen
FOR i = 1 TO 24
IF gueltige(i) = 1 AND Feld(i) = 0 THEN CIRCLE (ZugHilfeX(i), ZugHilfeY(i)), 12, &hFFFFAA,,,, F
NEXT
END IF
END IF
' Zielfeld - Figur auf das Zielfeld ziehen
IF Feld(A) = 0 AND angeklickt = 1 THEN
IF Ziehen(Dran) THEN PRUEFESTEINE
GUELTIGEZUEGE
IF Mensch AND Ziehen(Dran) AND Feld(A) = 0 AND Tastensperre(1) = 0 THEN
IF gueltige(A) = 1 THEN
FeldNeu = A
NOTATION
angeklickt = 0
Feld(FeldAlt) = 0
IF Dran = 1 THEN Feld(A) = 1
IF Dran = 2 THEN Feld(A) = 2
PRUEFEMUEHLE ' Prüfung, ob eine Mühle vorliegt
STELLUNG
SPIELER
ANZAHLGUELTIGERZUEGE
FeldNeu = 0
ELSE
FeldNeu = 0
angeklickt = 0
END IF
END IF
END IF
END SELECT
END SELECT
' Stein abwählen, damit man anderen Stein auswählen kann
CASE 2
A += 1
IF A > 24 THEN A = 1
SELECT CASE mausx
CASE X(A) TO XX(A)
SELECT CASE mausy
CASE Y(A) TO YY(A)
IF Feld(A) = dran AND Tastensperre(1) = 0 AND A = FeldAlt THEN
Tastensperre(1) = 1
angeklickt = 0
FeldAlt = 0
FeldNeu = 0
STELLUNG
END IF
END SELECT
END SELECT
CASE 0
Tastensperre(1) = 0
Tastensperre(2) = 0
END SELECT
END IF
LOCATE 72, 65: PRINT "Zuege: "; AnzahlZuege
LOCATE 74, 65: PRINT "Remis: "; Remiszaehler
' Anzeige der verfügbaren Steine!
SCREENLOCK
LINE (6, 520)-(487, 569), &h000000, BF
LINE (6, 580)-(487, 629), &h000000, BF
IF AnzahlSteine(Dran) > 0 THEN
Steinpuffer2 = IMAGECREATE(50,50)
BLOAD (EXEPATH & "\Weiß.bmp", Steinpuffer2)
FOR i = 1 TO (AnzahlSteine(1)*9) STEP 9
PUT (i*6,520), Steinpuffer2, TRANS
NEXT
IMAGEDESTROY (Steinpuffer2)
Steinpuffer2 = IMAGECREATE(50,50)
BLOAD (EXEPATH & "\Schwarz.bmp", Steinpuffer2)
FOR i = 1 TO (AnzahlSteine(2)*9) STEP 9
PUT (i*6,580), Steinpuffer2, TRANS
NEXT
IMAGEDESTROY (Steinpuffer2)
END IF
SCREENUNLOCK
' Remis durch 50-Züge-Regel
IF Remiszaehler > 49 THEN Won = 50: ENDE
' Spielende bei weniger als 3 Steinen
IF Ziehen(Dran) THEN
PRUEFESTEINE ' Anzahl der Steine ermitteln
IF gesetzteSteine(Dran) < 3 OR Won > 0 THEN Won = Dran: ENDE
END IF
IF mausk = 0 THEN SLEEP 1, 1: Taste = 0
' Computer aktivieren!
IF PC = 1 AND Muehle = 0 THEN COMPUTER
tasten = INKEY
LOOP UNTIL tasten = CHR(27) OR tasten = CHR(255, 107) ' Programmende durch Mausklick auf X oder ESC - Taste
END
SUB SPIELFELD
Spielfeldpuffer = IMAGECREATE(510,510)
BLOAD (EXEPATH & "\Muehlebrett.bmp", Spielfeldpuffer)
PUT (1,1), Spielfeldpuffer, PSET
IMAGEDESTROY (Spielfeldpuffer)
END SUB
SUB SETZEN
' gewähltes Feld muss leer sein!
IF Feld(A) = 0 THEN
' Steine nur anzeigen, wenn keine Mühle vorliegt
IF Muehle = 0 THEN
Steinpuffer2 = IMAGECREATE(50,50)
IF Dran = 1 THEN BLOAD (EXEPATH & "\Weiß.bmp", Steinpuffer2)
IF Dran = 2 THEN BLOAD (EXEPATH & "\Schwarz.bmp", Steinpuffer2)
PUT (SX(A),SY(A)), Steinpuffer2, TRANS
IMAGEDESTROY (Steinpuffer2)
IF Dran = 1 THEN Feld(A) = 1
IF Dran = 2 THEN Feld(A) = 2
END IF
' Anzahl der Steine - Spieler 1
Steine(1) = 9
FOR i = 1 TO 24
IF Feld(i) = 1 THEN Steine(1) -= 1
NEXT
AnzahlSteine(1) = Steine(1) - geschlagene(1)
' Anzahl der Steine - Spieler 2
Steine(2) = 9
FOR i = 1 TO 24
IF Feld(i) = 2 THEN Steine(2) -= 1
NEXT
AnzahlSteine(2) = Steine(2) - geschlagene(2)
' sind alle Steine gesetzt, darf man ziehen!
IF AnzahlSteine(1) < 1 THEN Setzphase(1) = FALSE: ziehen(1) = TRUE
IF AnzahlSteine(2) < 1 THEN Setzphase(2) = FALSE: ziehen(2) = TRUE
END IF
' Prüfung, ob eine Mühle vorliegt
PRUEFEMUEHLE
'nächster Spieler ist dran, wenn keine Mühle vorliegt!
SPIELER
END SUB
SUB PRUEFESTEINE
' Anzahl der Steine - Spieler 1
Steine(1) = 0
gesetzteSteine(1) = 0
FOR i = 1 TO 24
IF Feld(i) = 1 THEN Steine(1) += 1: gesetzteSteine(1) +=1
NEXT
' Anzahl der Steine - Spieler 2
Steine(2) = 0
gesetzteSteine(2) = 0
FOR i = 1 TO 24
IF Feld(i) = 2 THEN Steine(2) += 1: gesetzteSteine(2) +=1
NEXT
END SUB
SUB SPIELER
'nächster Spieler ist dran, wenn keine Mühle vorliegt!
IF Muehle = 0 THEN
' IF AnzahlZuege = 9 AND Dran = 1 THEN NOTATION
IF Dran = 1 THEN AnzahlZuege += 1: Remiszaehler += 1
Dran += 1
IF Mensch AND PC = 0 THEN Mensch = FALSE: PC = TRUE
END IF
IF Dran > 2 THEN Dran = 1
END SUB
SUB COMPUTER
END SUB
SUB SCHLAGEN
' Bei Mühle - schwarzen Spielstein entfernen
IF Muehle AND Dran = 1 AND Feld(A) = 2 THEN
Feld(A) = 0: STELLUNG
M(1) -= 1
geschlagene(2) += 1
IF M(dran) = 0 THEN Muehle = 0: SPIELER
IF mausk = 1 THEN Tastensperre(1) = TRUE
END IF
' Bei Mühle - weißen Spielstein entfernen
IF Muehle AND Dran = 2 AND Feld(A) = 1 THEN
Feld(A) = 0: STELLUNG
M(2) -= 1
geschlagene(1) += 1
IF M(dran) = 0 THEN Muehle = 0: SPIELER
IF mausk = 1 THEN Tastensperre(1) = TRUE
END IF
' Anzahl der Steine beim setzen - Spieler 1
Steine(1) = 9
FOR i = 1 TO 24
IF Feld(i) = 1 THEN Steine(1) -= 1
NEXT
AnzahlSteine(1) = Steine(1) - geschlagene(1)
' Anzahl der Steine beim setzen - Spieler 2
Steine(2) = 9
FOR i = 1 TO 24
IF Feld(i) = 2 THEN Steine(2) -= 1
NEXT
AnzahlSteine(2) = Steine(2) - geschlagene(2)
' Remiszähler auf 0 setzen
Remiszaehler = 0
END SUB
SUB STELLUNG
' Spielsteine auf dem Bildschirm neu zeichnen
SCREENLOCK
SPIELFELD
FOR i = 1 TO 24
Steinpuffer2 = IMAGECREATE(50,50)
IF Feld(i) = 1 THEN BLOAD (EXEPATH & "\Weiß.bmp", Steinpuffer2)
IF Feld(i) = 2 THEN BLOAD (EXEPATH & "\Schwarz.bmp", Steinpuffer2)
IF Feld(i) > 0 THEN PUT (SX(i),SY(i)), Steinpuffer2, TRANS
IMAGEDESTROY (Steinpuffer2)
NEXT
SCREENUNLOCK
END SUB
SUB PRUEFEMUEHLE
' Mühlezähler auf 0 setzen
m(1) = 0
m(2) = 0
' Zähler auf 0 setzen
FOR i = 1 TO 24
gesperrteMuehle(i, dran) = 0
NEXT
' Mühleprüfung Senkrecht - Mensch
FOR i = 1 TO 22 STEP 3
IF Feld(i) = dran AND Feld(i+1) = dran AND Feld(i+2) = dran THEN
gesperrteMuehle(i, dran) = 1
gesperrteMuehle(i+1, dran) = 1
gesperrteMuehle(i+2, dran) = 1
IF A = i OR A = i+1 OR A = i+2 THEN
IF A > 0 THEN
m(dran) += 1
Muehle = TRUE
END IF
END IF
END IF
NEXT
' Mühleprüfung Waagrecht - Mensch
IF Feld(1) = dran AND Feld(10) = dran AND Feld(22) = dran THEN
gesperrteMuehle(1, dran) = 1
gesperrteMuehle(10, dran) = 1
gesperrteMuehle(22, dran) = 1
IF A = 1 OR A = 10 OR A = 22 THEN
IF A > 0 THEN
m(dran) += 1
Muehle = TRUE
END IF
END IF
END IF
IF Feld(4) = dran AND Feld(11) = dran AND Feld(19) = dran THEN
gesperrteMuehle(4, dran) = 1
gesperrteMuehle(11, dran) = 1
gesperrteMuehle(19, dran) = 1
IF A = 4 OR A = 11 OR A = 19 THEN
IF A > 0 THEN
m(dran) += 1
Muehle = TRUE
END IF
END IF
END IF
IF Feld(7) = dran AND Feld(12) = dran AND Feld(16) = dran THEN
gesperrteMuehle(7, dran) = 1
gesperrteMuehle(12, dran) = 1
gesperrteMuehle(16, dran) = 1
IF A = 7 OR A = 12 OR A = 16 THEN
IF A > 0 THEN
m(dran) += 1
Muehle = TRUE
END IF
END IF
END IF
IF Feld(2) = dran AND Feld(5) = dran AND Feld(8) = dran THEN
gesperrteMuehle(2, dran) = 1
gesperrteMuehle(5, dran) = 1
gesperrteMuehle(8, dran) = 1
IF A = 2 OR A = 5 OR A = 8 THEN
IF A > 0 THEN
m(dran) += 1
Muehle = TRUE
END IF
END IF
END IF
IF Feld(17) = dran AND Feld(20) = dran AND Feld(23) = dran THEN
gesperrteMuehle(17, dran) = 1
gesperrteMuehle(20, dran) = 1
gesperrteMuehle(23, dran) = 1
IF A = 17 OR A = 20 OR A = 23 THEN
IF A > 0 THEN
m(dran) += 1
Muehle = TRUE
END IF
END IF
END IF
IF Feld(9) = dran AND Feld(13) = dran AND Feld(18) = dran THEN
gesperrteMuehle(9, dran) = 1
gesperrteMuehle(13, dran) = 1
gesperrteMuehle(18, dran) = 1
IF A = 9 OR A = 13 OR A = 18 THEN
IF A > 0 THEN
m(dran) += 1
Muehle = TRUE
END IF
END IF
END IF
IF Feld(6) = dran AND Feld(14) = dran AND Feld(21) = dran THEN
gesperrteMuehle(6, dran) = 1
gesperrteMuehle(14, dran) = 1
gesperrteMuehle(21, dran) = 1
IF A = 6 OR A = 14 OR A = 21 THEN
IF A > 0 THEN
m(dran) += 1
Muehle = TRUE
END IF
END IF
END IF
IF Feld(3) = dran AND Feld(15) = dran AND Feld(24) = dran THEN
gesperrteMuehle(3, dran) = 1
gesperrteMuehle(15, dran) = 1
gesperrteMuehle(24, dran) = 1
IF A = 3 OR A = 15 OR A = 24 THEN
IF A > 0 THEN
m(dran) += 1
Muehle = TRUE
END IF
END IF
END IF
IF Muehle AND Dran = 1 THEN AnzahlZuege += 1: NOTATION
' Anzeige - Mühle
IF Muehle AND M(dran) = 1 THEN MessageBox(0, "Mühle zu! Nimm einen Stein weg!", "Mühle", MB_ICONINFORMATION OR MB_SYSTEMMODAL OR MB_OK)
IF Muehle AND M(dran) = 2 THEN MessageBox(0, "Mühle zu! Nimm zwei Steine weg!", "Mühle", MB_ICONINFORMATION OR MB_SYSTEMMODAL OR MB_OK)
' Prüfung ob ausgewählter Stein genommen werden darf - könnte ein Stein aus einer Mühle sein!
IF Dran = 1 THEN
i = 1
DO
IF gesperrteMuehle(i, 1) = 0 AND Feld(i) = 1 THEN
NurMuehlen(1) = FALSE
EXIT DO
END IF
NurMuehlen(Dran) = TRUE
SLEEP 50
i += 1
LOOP WHILE i < 24
END IF
' Prüfung ob ausgewählter Stein genommen werden darf - könnte ein Stein aus einer Mühle sein!
IF Dran = 2 THEN
i = 1
DO
IF gesperrteMuehle(i, 2) = 0 AND Feld(i) = 2 THEN
NurMuehlen(2) = FALSE
EXIT DO
END IF
NurMuehlen(2) = TRUE
SLEEP 50
i += 1
LOOP WHILE i < 24
END IF
END SUB
SUB GUELTIGEZUEGE
' Speicher leeren
FOR i = 1 TO 24
gueltige(i) = 0
NEXT
' gültige Züge beim ziehen
IF Ziehen(Dran) AND Steine(Dran) > 3 THEN
IF FeldAlt = 1 THEN gueltige(2) = 1: gueltige(10) = 1
IF FeldAlt = 2 THEN gueltige(1) = 1: gueltige(3) = 1: gueltige(5) = 1
IF FeldAlt = 3 THEN gueltige(2) = 1: gueltige(15) = 1
IF FeldAlt = 4 THEN gueltige(5) = 1: gueltige(11) = 1
IF FeldAlt = 5 THEN gueltige(2) = 1: gueltige(4) = 1: gueltige(6) = 1: gueltige(8) = 1
IF FeldAlt = 6 THEN gueltige(5) = 1: gueltige(14) = 1
IF FeldAlt = 7 THEN gueltige(8) = 1: gueltige(12) = 1
IF FeldAlt = 8 THEN gueltige(5) = 1: gueltige(7) = 1: gueltige(9) = 1
IF FeldAlt = 9 THEN gueltige(8) = 1: gueltige(13) = 1
IF FeldAlt = 10 THEN gueltige(1) = 1: gueltige(11) = 1: gueltige(22) = 1
IF FeldAlt = 11 THEN gueltige(4) = 1: gueltige(10) = 1: gueltige(12) = 1: gueltige(19) = 1
IF FeldAlt = 12 THEN gueltige(7) = 1: gueltige(11) = 1: gueltige(16) = 1
IF FeldAlt = 13 THEN gueltige(9) = 1: gueltige(14) = 1: gueltige(18) = 1
IF FeldAlt = 14 THEN gueltige(6) = 1: gueltige(13) = 1: gueltige(15) = 1: gueltige(21) = 1
IF FeldAlt = 15 THEN gueltige(3) = 1: gueltige(14) = 1: gueltige(24) = 1
IF FeldAlt = 16 THEN gueltige(12) = 1: gueltige(17) = 1
IF FeldAlt = 17 THEN gueltige(16) = 1: gueltige(18) = 1: gueltige(20) = 1
IF FeldAlt = 18 THEN gueltige(13) = 1: gueltige(17) = 1
IF FeldAlt = 19 THEN gueltige(11) = 1: gueltige(20) = 1
IF FeldAlt = 20 THEN gueltige(17) = 1: gueltige(19) = 1: gueltige(21) = 1: gueltige(23) = 1
IF FeldAlt = 21 THEN gueltige(14) = 1: gueltige(20) = 1
IF FeldAlt = 22 THEN gueltige(10) = 1: gueltige(23) = 1
IF FeldAlt = 23 THEN gueltige(20) = 1: gueltige(22) = 1: gueltige(24) = 1
IF FeldAlt = 24 THEN gueltige(15) = 1: gueltige(23) = 1
END IF
' Felder zum springen auswählen, wenn Anzahl der Steine 3 ist
IF gesetzteSteine(Dran) < 4 AND Ziehen(Dran) THEN
FOR i = 1 TO 24
IF Feld(i) = 0 THEN gueltige(i) = 1
NEXT
EXIT SUB
END IF
END SUB
SUB ANZAHLGUELTIGERZUEGE
FOR i = 1 TO 24
Anzahlgueltige(i) = 0
NEXT
FOR i = 1 TO 24
IF i = 1 AND FELD(i) = Dran THEN Anzahlgueltige(2) = 1: Anzahlgueltige(10) = 1
IF i = 2 AND FELD(i) = Dran THEN Anzahlgueltige(1) = 1: Anzahlgueltige(3) = 1: Anzahlgueltige(5) = 1
IF i = 3 AND FELD(i) = Dran THEN Anzahlgueltige(2) = 1: Anzahlgueltige(15) = 1
IF i = 4 AND FELD(i) = Dran THEN Anzahlgueltige(5) = 1: Anzahlgueltige(11) = 1
IF i = 5 AND FELD(i) = Dran THEN Anzahlgueltige(2) = 1: Anzahlgueltige(4) = 1: Anzahlgueltige(6) = 1: Anzahlgueltige(8) = 1
IF i = 6 AND FELD(i) = Dran THEN Anzahlgueltige(5) = 1: Anzahlgueltige(14) = 1
IF i = 7 AND FELD(i) = Dran THEN Anzahlgueltige(8) = 1: Anzahlgueltige(12) = 1
IF i = 8 AND FELD(i) = Dran THEN Anzahlgueltige(5) = 1: Anzahlgueltige(7) = 1: Anzahlgueltige(9) = 1
IF i = 9 AND FELD(i) = Dran THEN Anzahlgueltige(8) = 1: Anzahlgueltige(13) = 1
IF i = 10 AND FELD(i) = Dran THEN Anzahlgueltige(1) = 1: Anzahlgueltige(11) = 1: Anzahlgueltige(22) = 1
IF i = 11 AND FELD(i) = Dran THEN Anzahlgueltige(4) = 1: Anzahlgueltige(10) = 1: Anzahlgueltige(12) = 1: Anzahlgueltige(19) = 1
IF i = 12 AND FELD(i) = Dran THEN Anzahlgueltige(7) = 1: Anzahlgueltige(11) = 1: Anzahlgueltige(16) = 1
IF i = 13 AND FELD(i) = Dran THEN Anzahlgueltige(9) = 1: Anzahlgueltige(14) = 1: Anzahlgueltige(18) = 1
IF i = 14 AND FELD(i) = Dran THEN Anzahlgueltige(6) = 1: Anzahlgueltige(13) = 1: Anzahlgueltige(15) = 1: Anzahlgueltige(21) = 1
IF i = 15 AND FELD(i) = Dran THEN Anzahlgueltige(3) = 1: Anzahlgueltige(14) = 1: Anzahlgueltige(24) = 1
IF i = 16 AND FELD(i) = Dran THEN Anzahlgueltige(12) = 1: Anzahlgueltige(17) = 1
IF i = 17 AND FELD(i) = Dran THEN Anzahlgueltige(16) = 1: Anzahlgueltige(18) = 1: Anzahlgueltige(20) = 1
IF i = 18 AND FELD(i) = Dran THEN Anzahlgueltige(13) = 1: Anzahlgueltige(17) = 1
IF i = 19 AND FELD(i) = Dran THEN Anzahlgueltige(11) = 1: Anzahlgueltige(20) = 1
IF i = 20 AND FELD(i) = Dran THEN Anzahlgueltige(17) = 1: Anzahlgueltige(19) = 1: Anzahlgueltige(21) = 1: Anzahlgueltige(23) = 1
IF i = 21 AND FELD(i) = Dran THEN Anzahlgueltige(14) = 1: Anzahlgueltige(20) = 1
IF i = 22 AND FELD(i) = Dran THEN Anzahlgueltige(10) = 1: Anzahlgueltige(23) = 1
IF i = 23 AND FELD(i) = Dran THEN Anzahlgueltige(20) = 1: Anzahlgueltige(22) = 1: Anzahlgueltige(24) = 1
IF i = 24 AND FELD(i) = Dran THEN Anzahlgueltige(15) = 1: Anzahlgueltige(23) = 1
NEXT
' Sind alle Spielsteine eingesperrt -> dann Ende
IF Muehle = 0 AND Steine(Dran) > 3 THEN
PRUEFESTEINE
FOR i = 1 TO 24
IF FELD(i) = 0 AND Anzahlgueltige(i) = 1 THEN Won = 0: EXIT SUB ELSE Won = Dran
NEXT
END IF
END SUB
SUB NOTATION
END SUB
SUB ENDE
' Gewinnanzeige
IF Won = 2 THEN MessageBox(0, "Weiß hat gewonnen!", "Mühle", MB_ICONINFORMATION OR MB_SYSTEMMODAL OR MB_OK)
IF Won = 1 THEN MessageBox(0, "Schwarz hat gewonnen!", "Mühle", MB_ICONINFORMATION OR MB_SYSTEMMODAL OR MB_OK)
IF Won = 50 THEN MessageBox(0, "Remis durch 50-Züge-Regel!", "Mühle", MB_ICONINFORMATION OR MB_SYSTEMMODAL OR MB_OK)
END
END SUB
Button.txt
36, 56, 448, 468, 23, 435, 46, 458
36, 56, 242, 262, 23, 229, 46, 252
36, 56, 34, 54, 23, 21, 46, 44
102, 122, 382, 402, 89, 369, 112, 392
102, 122, 242, 262, 89, 229, 112, 252
102, 122, 100, 120, 89, 87, 112, 110
167, 187, 316, 336, 154, 303, 177, 326
167, 187, 242, 262, 154, 229, 177, 252
167, 187, 169, 189, 154, 156, 177, 179
243, 263, 448, 468, 230, 435, 253, 458
243, 263, 382, 402, 230, 369, 253, 392
243, 263, 316, 336, 230, 303, 253, 326
243, 263, 167, 187, 230, 154, 253, 177
243, 263, 100, 120, 230, 87, 253, 110
243, 263, 34, 54, 230, 21, 253, 44
319, 339, 316, 336, 306, 303, 329, 326
319, 339, 242, 262, 306, 229, 329, 252
319, 339, 169, 189, 306, 156, 329, 179
387, 407, 382, 402, 374, 369, 397, 392
387, 407, 242, 262, 374, 229, 397, 252
387, 407, 100, 120, 374, 87, 397, 110
454, 474, 448, 468, 441, 435, 464, 458
454, 474, 242, 262, 441, 229, 464, 252
454, 474, 34, 54, 441, 21, 464, 44
Brett:
Dateimanager |
---|
Es wurden bisher keine Sources abgelegt. |