Hallo , bin gerade dabei ein kleines Tic Tac Toe Spiel zu machen , welches auf Rechtecken , Bitmaps und einem X-Y-Koordinatensystem basiert.
Bis jetzt lief alles wie ich es wollte:
>Rechtecke werden gezeichnet
> X und O werden abwechselnd ins jeweilig angeklickte Kästchen gezeichnet.
Mein Problem ist jetzt die Umsetzung das man nicht mehr in ein bereits gefülltes Kästchen klicken kann.
Also ich stelle mir das so vor
das sind die 9 rechtecke samt Koordinaten , die 0 representiert den Wert der eingetragen ist , also gar nichts , zumindest am Anfang später soll für X 1 , und für O 2 eingetragen werden.
Das zeichnen erfolgt durch ein Mausklick Event:
WriteStatusofRectangle ist eine Funktion die aus "Dim OLiCo(1, 1, 0) As Integer" , Dim OLiCo(1, 1, 1) As Integer machen soll.
Was ich noch machen muss ist das wenn dieser Wert nicht 0 entspricht , der Sub beendet wird , also nichts reingezeichnet wird.
Mein Problem ist jetzt den Status in den 3-dimensionalen Integer (ist doch einer?) zu schreiben , also an die letzte Stelle.
Und der muss später auch ausgelesen zu werden , um den Sub zu beenden wenn das Rechteck schon X oder O hat.
Also nochmal so wie ich mir den Code vorstelle , an dem ich nach mehreren Array Tuts von Youtube scheitere:
Ja ich weiß ne Funktion muss mit Return gemacht werden
Also nochmal kurz: So ne Art Speicher der die Zustände der Rechtecke speichert.
THX im Voraus
Bis jetzt lief alles wie ich es wollte:
>Rechtecke werden gezeichnet
> X und O werden abwechselnd ins jeweilig angeklickte Kästchen gezeichnet.
Mein Problem ist jetzt die Umsetzung das man nicht mehr in ein bereits gefülltes Kästchen klicken kann.
Also ich stelle mir das so vor
VB.NET-Quellcode
- 'Koordinaten der Rechtecke und ihr Zustand
- 'Erste Zahl = X-Wert , Zweite Zahl = Y-Wert , Dritte Zustand des Rechtecks
- 'Die Dim's müssen eventuell umbenannt werden um mit Arrays zu arbeiten der das Problem vielleicht löst?
- Dim OLiCo(1, 1, 0) As Integer
- Dim OMitCo(2, 1, 0) As Integer
- Dim OReCo(3, 1, 0) As Integer
- Dim MLiCo(1, 2, 0) As Integer
- Dim MMitCo(2, 2, 0) As Integer
- Dim MReCo(3, 2, 0) As Integer
- Dim ULiCo(1, 3, 0) As Integer
- Dim UMitCo(2, 3, 0) As Integer
- Dim UReCo(3, 3, 0) As Integer
das sind die 9 rechtecke samt Koordinaten , die 0 representiert den Wert der eingetragen ist , also gar nichts , zumindest am Anfang später soll für X 1 , und für O 2 eingetragen werden.
Das zeichnen erfolgt durch ein Mausklick Event:
VB.NET-Quellcode
- Private Sub Main_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
- SpielerNOW = SpielerNOW + 1
- ' Von dem hängt die Farbe ab. bzw in dem Fall obs X oder O ist
- If SpielerCurrent = 1 Then
- PaintBrush = 1
- End If
- If SpielerCurrent = 2 Then
- PaintBrush = 2
- End If
- Select Case PaintBrush
- Case 0 'Leer
- Überprüfe ob Rechteck schon X oder O enthält 'in dem Fall bricht es ab. Wie ich das mache weiß ich , aber ich muss zuerst so ne Art Speicher die deren 'Zustände speichert machen
- Map(mMapX, mMapY, 0) = 0
- WriteStatusofRectangle()
- Case 1 'X
- Map(mMapX, mMapY, 0) = 1 '<-- malt in das Rechteck ein X
- WriteStatusofRectangle()
- Case 2 'O
- Map(mMapX, mMapY, 0) = 2
- WriteStatusofRectangle()
- End Select
- End Sub
WriteStatusofRectangle ist eine Funktion die aus "Dim OLiCo(1, 1, 0) As Integer" , Dim OLiCo(1, 1, 1) As Integer machen soll.
Was ich noch machen muss ist das wenn dieser Wert nicht 0 entspricht , der Sub beendet wird , also nichts reingezeichnet wird.
Mein Problem ist jetzt den Status in den 3-dimensionalen Integer (ist doch einer?) zu schreiben , also an die letzte Stelle.
Und der muss später auch ausgelesen zu werden , um den Sub zu beenden wenn das Rechteck schon X oder O hat.
Also nochmal so wie ich mir den Code vorstelle , an dem ich nach mehreren Array Tuts von Youtube scheitere:
Ja ich weiß ne Funktion muss mit Return gemacht werden
Also nochmal kurz: So ne Art Speicher der die Zustände der Rechtecke speichert.
THX im Voraus