aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2021-02-02 02:20:02 +0100
committerCharles Cabergs <me@cacharle.xyz>2021-02-02 02:20:02 +0100
commit5aa6abf0166868f13f9ab64c91f3f4b62e05ed58 (patch)
treecae2f20a5690a97ff579435b7b31c001fc47efc3 /src/main.rs
parente77d75ea02abd2c8fd7e04af9f82063eb54d9eca (diff)
downloadconnect4-5aa6abf0166868f13f9ab64c91f3f4b62e05ed58.tar.gz
connect4-5aa6abf0166868f13f9ab64c91f3f4b62e05ed58.tar.bz2
connect4-5aa6abf0166868f13f9ab64c91f3f4b62e05ed58.zip
Added move order (solve from center to edges)
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/main.rs b/src/main.rs
index f7b6a6e..e77ce2b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,6 +1,6 @@
use std::io;
use std::io::prelude::*;
-use std::collections::HashMap;
+use std::time::{Instant,Duration};
pub mod position;
pub mod solve;
@@ -10,6 +10,9 @@ use solve::solve;
fn main() {
+ let mut total_time = Duration::new(0, 0);
+ let mut total_solve = 0;
+
for result in io::stdin().lock().lines() {
let line = result.unwrap();
let fields: Vec<&str> = line.split_ascii_whitespace().collect();
@@ -26,20 +29,17 @@ fn main() {
};
match fields[0].parse::<Position>() {
Ok(pos) => {
- // println!("{:?}", pos);
- let mut cache = HashMap::with_capacity(30000);
- println!("score: {:3} {:3}", solve(pos, -10000, 10000, &mut cache), expected_score);
+ print!("{:?}", pos);
+ let begin = Instant::now();
+ let score = solve(pos);
+ let elapsed = begin.elapsed();
+ total_time += elapsed;
+ total_solve += 1;
+ println!("score: {:3} {:3}, time: {:?}\n", score, expected_score, elapsed);
}
Err(msg) =>
eprintln!("wrong score format {:?}: {}", fields[1], msg),
}
}
-
- // let mut p = "7422341735647741166133573473242566".parse::<Position>().unwrap();
- // p = p.play(2);
- // p = p.play(2);
- // p = p.play(1);
- // p = p.play(5);
- // println!("{:?}", p);
- // println!("{}", solve(p.clone(), -10000, 100000));
+ println!("mean time {:?}", total_time / total_solve);
}