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.

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-0.1.2-cp313-cp313-win_amd64.whl (778.7 kB view details)

Uploaded CPython 3.13Windows x86-64

File details

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

File metadata

File hashes

Hashes for connect_four_ai-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3cf24ef99e90572d457f67fd895252712450b503c08ec4053502bc4fc2b06902
MD5 65d7be4aa63d040a3044b84f08882487
BLAKE2b-256 5d0786e1d4572ccc8f1a1cf39fd90f417c511b21f8a88bc2274092cf9c28654f

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