tb[9] 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
'Die neun TextBoxen erzeugen
FOR n = 0 TO 8
tb[n] = NEW TextBox(ME) AS "tb"
tb[n].Tag = n
tb[n].Alignment = Align.Center
tb[n].Move( 20 + 40 * (n MOD 3), 20 + 40 * ((n - n MOD 3)/3), 40, 40 )
NEXT
Button1.Move( 250, 20, 200, 32 )
Button1.Text = "Neues Spiel"
Button2.Move( 250, 80, 200, 32 )
Button2.Text = "Spielregeln"
Button3.Move( 250, 140, 200, 32 )
Button3.Text = "Fragen zum Spiel"
Button4.Move( 250, 220, 200, 32 )
Button4.Text = "Schließen"
TextBox1.Move( 20, 160, 200, 32 )
TextBox2.Move( 20, 220, 200, 32 )
ME.Text = "Tic Tac Toe V 2.0"
ME.Border = Window.Resizable
ME.Width = 470
ME.Height = 280
ME.Border = Window.Fixed
ME.Center
Button1_Click
END
PUBLIC SUB tb_DblClick()
DIM a AS Integer[]
DIM n AS Integer
n = LAST.Tag
'Spiel bereits gewonnen
IF sSpieler = "G" THEN RETURN
'Feld schon belegt
IF tb[n].Text <> "" THEN
TextBox1.Text = "Schon belegt!"
RETURN
END IF
tb[n].Text = sSpieler
'Jemand gewonnen?
FOR EACH a IN [ [0,1,2], [3,4,5], [6,7,8], [0,3,6], [1,4,7], [2,5,8], [0,4,8], [2,4,6] ]
IF ( tb[a[0]].Text = sSpieler AND tb[a[1]].Text = sSpieler AND tb[a[2]].Text = sSpieler ) THEN
TextBox1.Text = sSpieler & " hat gewonnen"
tb[a[0]].Background = &H00FF00&
tb[a[1]].Background = &H00FF00&
tb[a[2]].Background = &H00FF00&
sSpieler = "G"
END IF
NEXT
'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
TextBox2.Text = "Zug " & Str(iAnz)
END
PUBLIC SUB Button1_Click()
'neues Spiel, alle Textfelder werden gelöscht, Zahl der Spielzüge auf Null gesetzt
DIM n AS Integer
FOR n = 0 TO 8
tb[n].Text = ""
tb[n].Background = &HFFFFFF&
NEXT
iAnz = 0
sSpieler = "X"
TextBox1.Text = "Am Zug ist X"
TextBox2.Text = "Zug 0"
tb[4].SetFocus
END
PUBLIC SUB Button2_Click()
DIM msg AS String
msg = "Sprint: Spielregeln\n"
msg = msg & "Mit der Maus (Doppelklick!) markiert der erste Spieler ein freies Feld.\n"
msg = msg & "Das Feld wird mit X gekennzeichnet.\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 drei gleiche Zeichen in einer Reihe setzen kann."
Message(msg)
END
PUBLIC SUB Button3_Click()
DIM msg AS String
msg = "Fragen zum Spiel\n"
msg = msg & "Gibt es ein Spiel mit weniger als 5 Zügen?\n"
msg = msg & "Gibt es ein Spiel mit mehr als 9 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"
Message(msg)
END
PUBLIC SUB Button4_Click()
ME.Close
END