Excel VBA Schach Chess Schach Spiel programmieren SelMcKenzie Selzer-McKenzie
Author D.Selzer-McKenzie
Heute zeige ich Ihnen, wie Sie mit Excel ganz einfach ein Schachspiel programmieren können.
Sehen Sie sich dazu den obigen Videofilm an und ich habe den Code bereits vorgeschrieben und Sie sollten das Video notfalls anhalten, um den Code abschreiben zu können.
Und Sie sehen, es funktioniert wunderbar, mit Excel, der Tabellenkalkulation.
Selzer-McKenzie
Der Code hier nochmals:
Sub BezugErmitteln()
Dim sp As Object, mtext$, mc As Range
Dim Sp_A, zeile, spalte, SP_AdA1, SP_AdZ1S1, Rel_Z1S1, Rel_A1
Set sp = ActiveSheet.Shapes("Springer")
zeile = sp.Top / 37.5 + 1
spalte = sp.Left / 45 + 1
Set mc = ActiveSheet.Cells(zeile, spalte)
If zeile > 8 Or spalte > 8 Then
Exit Sub
End If
SP_AdA1 = mc.AddressLocal
SP_AdZ1S1 = mc.AddressLocal(ReferenceStyle:=xlR1C1)
Rel_A1 = ActiveCell.Address
Rel_Z1S1 = ActiveCell.AddressLocal(ReferenceStyle:=xlR1C1, _
RowAbsolute:=False, _
ColumnAbsolute:=False, _
RelativeTo:=Cells(zeile, spalte))
mtext = "Springerposition (A1): " & vbTab & SP_AdA1 _
& vbCr & "Springerposition (Z1S1): " & vbTab & SP_AdZ1S1 _
& vbCr & "Zellzeigerposition absolut: " & vbTab & Rel_A1 _
& vbCr & "Zellzeigerposition " _
& vbCr & "relativ zum Springer: " & vbTab & Rel_Z1S1
MsgBox mtext, vbInformation, "Chess Game by SelMcKenzie®"
End Sub
Sub SpringerZiehen()
Dim sp As Object, mtext$, mc As Range
Dim Sp_A, zeile, spalte, SP_AdA1, SP_AdZ1S1, Rel_Z1S1, Rel_A1
Set sp = ActiveSheet.Shapes("Springer")
zeile = sp.Top / 37.5 + 1
spalte = sp.Left / 45 + 1
Set mc = ActiveSheet.Cells(zeile, spalte)
If zeile > 8 Or spalte > 8 Then
Exit Sub
End If
SP_AdA1 = mc.AddressLocal
SP_AdZ1S1 = mc.AddressLocal(ReferenceStyle:=xlR1C1)
Rel_A1 = ActiveCell.Address
Rel_Z1S1 = ActiveCell.AddressLocal(ReferenceStyle:=xlR1C1, _
RowAbsolute:=False, _
ColumnAbsolute:=False, _
RelativeTo:=Cells(zeile, spalte))
If Rel_Z1S1 = "Z(-2)S(-1)" _
Or Rel_Z1S1 = "Z(-1)S(-2)" _
Or Rel_Z1S1 = "Z(2)S(-1)" _
Or Rel_Z1S1 = "Z(1)S(-2)" _
Or Rel_Z1S1 = "Z(-2)S(1)" _
Or Rel_Z1S1 = "Z(-1)S(2)" _
Or Rel_Z1S1 = "Z(2)S(1)" _
Or Rel_Z1S1 = "Z(1)S(2)" Then
sp.Top = ActiveCell.Row * 37.5 - 37.5
sp.Left = ActiveCell.Column * 45 - 45
Else
MsgBox "Rösselsprung nach " & Rel_Z1S1 _
& vbCr & "Chess-Rules nicht erlaubt!", vbCritical, "Chess Game by SelMcKenzie®"
End If
End Sub
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.