Donnerstag, 23. Juni 2011

Excel VBA Schach Chess Schach Spiel programmieren SelMcKenzie Selzer-McKenzie

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.