30 lines
903 B
Rust
30 lines
903 B
Rust
|
extern crate chess_uci;
|
||
|
|
||
|
use chess_uci::*;
|
||
|
|
||
|
use std::process::{Command, Stdio};
|
||
|
use std::io::BufReader;
|
||
|
|
||
|
pub fn main(){
|
||
|
env_logger::init();
|
||
|
|
||
|
println!("Launching hardcoded stockfish program (should be in PATH)");
|
||
|
|
||
|
// launch chess program
|
||
|
let process = match Command::new("stockfish")
|
||
|
.stdin(Stdio::piped())
|
||
|
.stdout(Stdio::piped())
|
||
|
.spawn() {
|
||
|
Err(why) => panic!("couldn't spawn stockfish: {}", why),
|
||
|
Ok(process) => process,
|
||
|
};
|
||
|
|
||
|
let (sf_in,sf_out) = (process.stdin.expect("Program stdin"), process.stdout.expect("Program stdout"));
|
||
|
let mut uci = UciEngine::new(BufReader::new(sf_out), sf_in);
|
||
|
uci.init();
|
||
|
|
||
|
println!("Engine: {} \nby: {}",
|
||
|
if let Some(name) = uci.name() {name} else {"Not defined".to_string()},
|
||
|
if let Some(author) = uci.author() {author} else {"Not defined".to_string()});
|
||
|
}
|