aperechnev/ChessKit
Lightweight and fast chess framework written in Swift.
Installation
ChessKit framework is avalable for installation via Swift Package Manager.
Add a dependency to the Xcode project by linking to https://github.com/aperechnev/ChessKit, or directly in your Package.swift file:
import PackageDescription
let package = Package(
name: "MyPackage",
platforms: [
.macOS(.v10_12),
],
dependencies: [
.package(url: "https://github.com/aperechnev/ChessKit.git", from: "2.0.0"),
],
targets: [
.target(name: "MyPackage", dependencies: ["ChessKit"]),
]
)Getting Started
ChessKit is well covered by documentation. However, here you can find an example that describes how to start working with ChessKit.
import ChessKit
let fenSerializer = FenSerialization()
let italianGameFen = "r1bqk1nr/pppp1ppp/2n5/2b1p3/2B1P3/5N2/PPPP1PPP/RNBQK2R w KQkq - 4 4"
let italianGamePosition = fenSerializer.deserialize(fen: italianGameFen)
let game = Game(position: italianGamePosition)
print("Number of available moves: \(game.legalMoves.count)")
game.make(move: "b2b4")
let evansGambitFen = fenSerializer.serialize(position: game.position)
print("Evans gambit fen: \(evansGambitFen)")
game.make(move: Move(string: "c5b4"))
let evansGambitAcceptedFen = fenSerializer.serialize(position: game.position)
print("Evans gambit accepted fen: \(evansGambitAcceptedFen)")
print("List of moves in game: \(game.movesHistory)")
print("List of pieces on board: \(game.position.board.enumeratedPieces())")Versioning
We use semantic versioning.
License
ChessKit is released under the MIT license. See LICENSE for details.
Package Metadata
Repository: aperechnev/ChessKit
Stars: 23
Forks: 9
Open issues: 1
Default branch: master
Primary language: swift
License: MIT
Topics: chess, chess-board, chess-game, fen, pgn
README: README.md