1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#![doc(html_root_url = "https://revsic.github.io/AlphaZero-Connect6/")]
//! [Rust](https://www.rust-lang.org) implementation of connect6 and self-playing policies
//! for training [AlphaZero](https://arxiv.org/abs/1712.01815) with several language interfaces.
//!
//! Connect6 provides game environment and policy based self-playing agent with some pre-defined policies.
//! It also provides multi-threading async agent and combined MCTS
//! [AlphaZero](https://arxiv.org/abs/1712.01815) with some hyperparameters control.
//!
extern crate futures;
extern crate rand;
extern crate tokio;

#[macro_use]
mod macro_def;

pub mod agent;
pub mod game;
pub mod policy;

/// Length of one side
pub const BOARD_SIZE: usize = 15;
/// Square of BOARD_SIZE
pub const BOARD_CAPACITY: usize = BOARD_SIZE * BOARD_SIZE;

/// Type alias of [[Player; BOARD_SIZE]; BOARD_SIZE];
pub type Board = [[game::Player; BOARD_SIZE]; BOARD_SIZE];