tb[8,8] AS TextBox
PUBLIC iAnz AS Integer 'Zahl der Züge
PUBLIC sSpieler AS String 'Wer ist am Zug O oder X
PUBLIC SUB Form_Open()
DIM n AS Integer
DIM m AS Integer
'Die TextBoxen erzeugen
FOR n = 0 TO 7
FOR m = 0 TO 7
tb[n,m] = NEW TextBox(ME) AS "tb"
tb[n,m].Tag = [n,m]
tb[n,m].Alignment = Align.Center
tb[n,m].Move( 20 + 40 * (n MOD 8), 20 + 40 * (m MOD 8), 40, 40 )
NEXT
NEXT
'Überflüssige TextBoxen wieder entfernen
FOR n = 2 TO 7
tb[n,0].Delete
tb[n,0] = NULL
tb[7,n].Delete
tb[7,n] = NULL
NEXT
FOR n = 0 TO 5
tb[0,n].Delete
tb[0,n] = NULL
tb[n,7].Delete
tb[n,7] = NULL
NEXT
Button1.Move( 370, 20, 200, 32 )
Button1.Text = "Spielregeln"
Button2.Move( 370, 80, 200, 32 )
Button2.Text = "Fragen zum Spiel"
Button3.Move( 370, 140, 200, 32 )
Button3.Text = "Neues Spiel"
Button4.Move( 370, 420, 200, 32 )
Button4.Text = "Schließen"
TextBox1.Move( 20, 370, 300, 32 )
TextBox2.Move( 20, 420, 300, 32 )
ME.TEXT = "Sprint, wer setzt den letzten Stein. Ein Spiel für 2"
ME.Border = Window.Resizable
ME.Width = 600
ME.Height = 480
ME.Border = Window.Fixed
ME.Center
Button3_Click
END
PUBLIC SUB tb_DblClick()
DIM a AS Integer
DIM n AS Integer
DIM m AS Integer
DIM o AS Integer
DIM p AS Integer
n = LAST.Tag[0]
m = LAST.Tag[1]
'Spiel bereits gewonnen
IF sSpieler = "G" THEN RETURN
'Feld schon belegt
IF tb[n,m].Text <> "" THEN
TextBox1.Text = "Schon belegt!"
RETURN
END IF
'Felder markieren
tb[n,m].Text = sSpieler
IF sSpieler = "X" THEN
tb[n,m].Background = &H00FF00&
ELSE
tb[n,m].Background = &HFF0000&
END IF
FOR o = Max( 0, n - 1) TO Min( n + 1, 7 )
FOR p = Max( 0, m - 1) TO Min( m + 1, 7 )
IF tb[o,p] <> NULL THEN
IF tb[o,p].Text = "" THEN
tb[o,p].Text = "B"
tb[o,p].Background = &HFFFF00&
IF sSpieler = "X" THEN
tb[o,p].Background = &HDDFF00&
ELSE
tb[o,p].Background = &HFFDD00&
END IF
END IF
END IF
NEXT
NEXT
'Jemand gewonnen?
a = 0
FOR o = 0 TO 7
FOR p = 0 TO 7
IF tb[o,p] <> NULL THEN
IF tb[o,p].Text <> "" THEN INC a
END IF
NEXT
NEXT
'Wenn jemand gewonnen hat
IF a = 40 THEN
TextBox1.Text = sSpieler & " hat gewonnen"
sSpieler = "G"
END IF
'Spieler wechseln
IF sSpieler = "X" THEN
sSpieler = "O"
TextBox1.Text = "Am Zug ist O"
ELSE IF sSpieler = "O" THEN
sSpieler = "X"
TextBox1.Text = "Am Zug ist X"
END IF
INC iAnz
IF iAnz = 1 THEN
TextBox2.Text = "1 Zug gespielt"
ELSE
TextBox2.Text = Str(iAnz) & " Züge gespielt"
END IF
END
PUBLIC SUB Button1_Click()
DIM msg AS String
msg = "Sprint: Spielregeln\n\n"
msg = msg & "Mit der Maus markiert der erste Spieler ein freies Feld.\n"
msg = msg & "Das Feld wird mit X gekennzeichnet.\n"
msg = msg & "Die benachbarten Felder werden automatisch mit B belegt.\n"
msg = msg & "Danach ist der Spielpartner dran.\n"
msg = msg & "Er bekommt O zugeordnet und klickt ein freies Feld an.\n"
msg = msg & "Gesetzt wird abwechselnd.\n"
msg = msg & "Sieger ist, wer das letzte Zeichen einsetzen kann."
Message(msg)
END
PUBLIC SUB Button2_Click()
DIM msg AS String
msg = "Fragen zum Spiel\n\n"
msg = msg & "Gibt es ein Spiel mit weniger als 8 Zügen?\n"
msg = msg & "Gibt es ein Spiel mit mehr als 13 Zügen?\n "
msg = msg & "Gibt es für den Spieler, der beginnen darf,\n"
msg = msg & "eine optimale Gewinnstrategie?\n"
msg = msg & "Wo wurde dieses Spiel das erste Mal gespielt?\n"
msg = msg & "Wo wurde dieses Spiel das erste Mal beschrieben?\n"
msg = msg & "Antworten per email an: rho54@gmx.de"
Message(msg)
END
PUBLIC SUB Button3_Click()
'neues Spiel, alle Textfelder werden gelöscht, Zahl der Spielzüge auf Null gesetzt
DIM o AS Integer
DIM p AS Integer
FOR o = 0 TO 7
FOR p = 0 TO 7
IF tb[o,p] <> NULL THEN
tb[o,p].Text = ""
tb[o,p].Background = &HFFFFFF&
END IF
NEXT
NEXT
iAnz = 0
sSpieler = "X"
TextBox1.Text = "Am Zug ist X"
TextBox2.Text = "0 Züge gespielt"
END
PUBLIC SUB Button4_Click()
ME.Close
END