Skip to main content

A high performance implementation of a perfect Connect Four solver, written in Rust.

Project description

Connect Four AI

Crates.io Version PyPI Version NPM Version License: MIT docs.rs

A high-performance, perfect Connect Four solver written in Rust, with bindings for Python and WebAssembly.

Connect Four GIF

This library can strongly solve any Connect Four position and determine the optimal move. For full details, performance benchmarks, and demos, please see the main GitHub Repository.

Key Features

  • Perfect Solver: Implements an optimised negamax search, which utilises alpha-beta pruning and a transposition table to quickly converge on exact game outcomes.

  • AI Player: Features an AI player with configurable difficulty. It can play perfectly by always choosing the optimal move, or can simulate a range of skill levels by probabilistically selecting moves based on their scores.

  • Bitboard Representation: Uses a compact and efficient bitboard representation for game positions, allowing for fast move generation and evaluation.

  • Embedded Opening Book: Includes a pre-generated opening book of depth 8, which is embedded directly into the binary for instant lookups of early-game solutions.

  • Parallel Book Generator: A tool built with rayon for generating new, deeper opening books.

  • Cross-Platform: Available as a Rust crate, Python package, and WebAssembly module for seamless integration into a wide range of projects.

Installation

To use the library, you can simply install it using pip:

pip install connect-four-ai

Example Usage

This is a basic example of how to use the Solver to find the score of a position:

from connect_four_ai import Solver, Position

# Creates a position from a sequence of 1-indexed moves
position = Position.from_moves("76461241141")

# Initialises and uses the Solver to calculate the exact score of the position
solver = Solver()
score = solver.solve(position)

print(score)    # Output: -1

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

connect_four_ai-1.0.0-cp313-cp313-win_amd64.whl (991.9 kB view details)

Uploaded CPython 3.13Windows x86-64

File details

Details for the file connect_four_ai-1.0.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for connect_four_ai-1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 71fead412672e4b83ca7bbdf76f57b0bb564dad0f5ecbd7f6a2eebba37755739
MD5 e32f48fb4aec538646ca93124e9b294e
BLAKE2b-256 03922283bd164532ecf72b429793aac8a84f451a499301928dbb690caf7c1618

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page