Folgendes: Ich programmiere zurzeit an einem einfachem Schach. Soweit lief eigentlich alles gut. Allerdings habe ich eine eigene Klasse Field:
Und speichere das Schachbrett in einem Dreidimensionalen Array der Klasse Field:
Initialisiere das Ganze in einem Loop:
Wenn ich dann mit einer anderen Schleife und MsgBoxen die Werte ausgebe passt auch alles, aber wenn ich dann manuell einen Wert setze
oder mit
Und das dann damit (oder MsgBoxen prüfe):
Sind sofort alle Felder anstatt einem Weiße Bauern. Wäre nett wenn mir jemand helfen könnte.
Tnx im Voraus, 5830
Code:
Public Class Field
Private color As Enums.Colors = Enums.Colors.noColor
Private figure As Enums.Figures = Enums.Figures.NoFigure
Private xCoord As Short
Private yCoord As Short
Public Function figureExists() As Boolean
If Not figure = Nothing And Not figure = Enums.Figures.NoFigure Then
Return True
Else
Return False
End If
End Function
Public Function setColor(ByVal _color As Enums.Colors)
color = _color
End Function
Public Function setFigure(ByVal _figure As Enums.Figures)
figure = _figure
End Function
Public Function getColor() As Enums.Colors
Return color
End Function
Public Function getFigure() As Enums.Figures
Return figure
End Function
End Class
Und speichere das Schachbrett in einem Dreidimensionalen Array der Klasse Field:
Code:
Dim field(7, 7) As Field
Code:
Dim x As New Field
x.setColor(Enums.Colors.noColor)
x.setFigure(Enums.Figures.NoFigure)
For i As Integer = 0 To 7
For j As Integer = 0 To 7
field(i, j) = x
Next
Next
Code:
field(0,0).setColor(Enums.colors.White)
field(0,0).setFigure(Enums.figures.Bauer)
Code:
Dim x as New field
x.setColor(Enums.colors.White)
x.setFigure(Enums.figures.Bauer)
field(0,0) = x
Code:
Sub printField()
Console.WriteLine()
MsgBox("FieldColor:" & field(0, 0).getColor & "FieldFigure:" & field(0, 0).getFigure & "Exists:" & field(0, 0).figureExists())
MsgBox("FieldColor:" & field(7, 7).getColor & "FieldFigure:" & field(7, 7).getFigure & "Exists:" & field(7, 7).figureExists())
For i As Integer = 0 To 7
For j As Integer = 0 To 7
Select Case field(i, j).getColor
Case Enums.Colors.White
Console.ForegroundColor = ConsoleColor.White
printFigure(field(i, j))
Exit Select
Case Enums.Colors.Black
Console.ForegroundColor = ConsoleColor.Black
printFigure(field(i, j))
Exit Select
Case Else
Exit Select
End Select
Next
Console.WriteLine()
Next
End Sub
Function printFigure(ByVal _field As Field)
Select Case _field.getFigure
Case Enums.Figures.Bauer
Console.Write("B ")
Exit Select
Case Enums.Figures.Laeufer
Console.Write("L ")
Exit Select
Case Enums.Figures.Springer
Console.Write("S ")
Exit Select
Case Enums.Figures.Turm
Console.Write("T ")
Exit Select
Case Enums.Figures.Dame
Console.Write("D ")
Case Enums.Figures.Koenig
Console.Write("+ ")
Exit Select
Case Else
Console.Write(" ")
End Select
End Function
Tnx im Voraus, 5830