main.rs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. pub mod interface;
  2. pub mod bitboard;
  3. pub mod movegen;
  4. pub mod engine;
  5. pub mod game;
  6. pub mod evaluate;
  7. pub mod search;
  8. pub mod zobrist;
  9. pub mod hash;
  10. extern crate log;
  11. extern crate simplelog;
  12. extern crate rand;
  13. use std::sync::mpsc;
  14. use std::{thread, fs::File};
  15. use log::*;
  16. use simplelog::*;
  17. use engine::Engine;
  18. fn main() {
  19. /*let mut builder = Builder::from_default_env();
  20. builder
  21. .filter(None, LevelFilter::Info)
  22. .target(Target::Pipe(Box::new(File::create("debug.log").unwrap())))
  23. //.target(Target::Stderr)
  24. .init();
  25. */
  26. //assert_eq!(std::mem::size_of::<crate::movegen::Move>(), 6);
  27. /*let mit = mate_in_p1(4);
  28. let mis = mate_in_p1(-7);
  29. if mit < mis {
  30. println!("ohno");
  31. }
  32. println!("mit: {}", mit);
  33. if let Some(t) = is_mate_in_p1(-mit) {
  34. println!("t: {}", t);
  35. }*/
  36. let logfile = File::create("/home/nicolas/debug.log").unwrap();
  37. simplelog::WriteLogger::init(LevelFilter::Info, Config::default(), logfile).unwrap();
  38. let (esend, erecv) = mpsc::channel();
  39. let (isend, irecv) = mpsc::channel();
  40. // spawn engine thread
  41. thread::spawn(move || {
  42. let mut engine = Engine::new(erecv, isend);
  43. engine.run();
  44. });
  45. interface::run(irecv, esend);
  46. }