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
27
28
29
30
31
32
33
34
35
36
37
//! # Example
//! ## Get legals moves and plays some random.
//! ```
//!use crate::goban::rules::*;
//!use crate::goban::rules::game::*;
//!use rand::seq::IteratorRandom;
//! use goban::rules::game_builder::GameBuilder;
//!
//!let mut g = GameBuilder::default()
//!    .size((19,19))
//!    .rule(Rule::Chinese)
//!//  .komi(7.5)  Komi is hardcoded for each rule, but can be override like this.
//!    .build().unwrap();
//!let mut i = 35;
//!while !g.is_over() && i != 0 {
//!       g.play(
//!          // legals return an iterator of (x,y) points (lazy)
//!          g.legals()
//!                .choose(&mut rand::thread_rng())
//!                .map(|point| Move::Play(point.0,point.1))
//!                .unwrap());
//!        i -= 1;
//!        g.display_goban();
//!}
//!
//! ```

#[macro_use]
extern crate bitflags;

#[macro_use]
extern crate getset;
#[macro_use]
extern crate lazy_static;

pub mod pieces;
pub mod rules;