An implementation of the Universal Chess Interface in Rust.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
//! UCI is a simple library to allow people to ignore the lower-level protocol needed to create chess engines.
|
|
|
|
|
|
|
|
mod commands;
|
|
|
|
|
|
|
|
|
|
|
|
pub struct Engine<'a> {
|
|
|
|
pub name: &'a str,
|
|
|
|
pub author: &'a str,
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Notes to delete later:
|
|
|
|
///
|
|
|
|
/// The user will have to provide code to run for the lifecycle. Moreover the user will have to overwrite a handful
|
|
|
|
/// of methods that need explicit contact with the underlying engine code to determine what to do before doing a
|
|
|
|
/// "run". There needs to be a "loop" that kicks off a thread to monitor stdin and also calculations, etc.
|
|
|
|
/// It will be worth taking the time to map out exactly how a user will be able to use this generic UCI interface
|
|
|
|
/// effectively without losing too much and/or making their lives hard.
|
|
|
|
|
|
|
|
impl<'a> Engine<'a> {
|
|
|
|
pub fn new(name: &'a str, author: &'a str) -> Engine<'a> {
|
|
|
|
Engine {
|
|
|
|
name: name,
|
|
|
|
author: author,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|