Gambas: Spiele: Sprint2 Form1.class
Erscheinungsbild
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