26 lines
529 B
Swift
26 lines
529 B
Swift
public struct Square: Equatable {
|
|
|
|
public struct Position: Equatable {
|
|
public let file: UInt8
|
|
public let rank: UInt8
|
|
|
|
public var index: Int {
|
|
let r = (8 - rank) % 8
|
|
return Int(8*r+file-1)
|
|
}
|
|
|
|
public static func == (lhs: Position, rhs: Position) -> Bool {
|
|
return lhs.index == rhs.index
|
|
}
|
|
}
|
|
|
|
public let position: Position
|
|
public let index: UInt8
|
|
public var piece: Piece? = nil
|
|
public let color: Color
|
|
|
|
public static func == (lhs: Square, rhs: Square) -> Bool {
|
|
return lhs.position == rhs.position
|
|
}
|
|
}
|