···11+use go_engine::{Color, Coord, Game};
22+33+fn print_board<const W: usize, const H: usize>(game: &Game<W, H>) {
44+ for y in (0..H).rev() {
55+ for x in 0..W {
66+ let coord: Coord<W, H> = (x as u8, y as u8).try_into().unwrap();
77+ match game.board().get(coord) {
88+ Some(Color::Black) => print!("X "),
99+ Some(Color::White) => print!("O "),
1010+ None => print!(". "),
1111+ }
1212+ }
1313+ println!();
1414+ }
1515+}
1616+1717+fn main() {
1818+ let mut game = Game::<9, 9>::new();
1919+2020+ println!("Hello from go-engine!");
2121+ println!("Initial board:");
2222+ print_board(&game);
2323+2424+ game.play((4, 4).try_into().unwrap()).unwrap();
2525+ println!("\nAfter White plays E5:");
2626+ print_board(&game);
2727+2828+ // Surround the white stone at E5 to capture it
2929+ game.play((4, 3).try_into().unwrap()).unwrap(); // Black E4
3030+ println!("\nAfter Black plays E4:");
3131+ print_board(&game);
3232+3333+ game.play((0, 0).try_into().unwrap()).unwrap(); // White A1 (pass-like move elsewhere)
3434+ println!("\nAfter White plays A1:");
3535+ print_board(&game);
3636+3737+ game.play((4, 5).try_into().unwrap()).unwrap(); // Black E6
3838+ println!("\nAfter Black plays E6:");
3939+ print_board(&game);
4040+4141+ game.play((0, 1).try_into().unwrap()).unwrap(); // White A2
4242+ println!("\nAfter White plays A2:");
4343+ print_board(&game);
4444+4545+ game.play((3, 4).try_into().unwrap()).unwrap(); // Black D5
4646+ println!("\nAfter Black plays D5:");
4747+ print_board(&game);
4848+4949+ game.play((0, 2).try_into().unwrap()).unwrap(); // White A3
5050+ println!("\nAfter White plays A3:");
5151+ print_board(&game);
5252+5353+ // Final move to capture the white stone at E5
5454+ game.play((5, 4).try_into().unwrap()).unwrap(); // Black F5 captures!
5555+ println!("\nAfter Black plays F5 (captures E5!):");
5656+ print_board(&game);
5757+5858+ println!("\nFinal state:");
5959+ println!("Current player: {:?}", game.to_move());
6060+ println!(
6161+ "Captures: Black={}, White={}",
6262+ game.captures().0,
6363+ game.captures().1
6464+ );
6565+}