use game_pathfinding::map::MapManager;
use std::time::Instant;
#[tokio::main]
async fn main() {
let map_info = vec![
vec![1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
vec![0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1],
vec![1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
vec![0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1],
vec![1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0],
vec![0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1],
vec![1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0],
vec![0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1],
vec![1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
vec![0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1],
vec![1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0],
vec![0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1],
vec![1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0],
vec![0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1],
vec![0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0],
vec![0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1],
];
let map = MapManager::get_instance();
let map_id = map.write().unwrap().new_astar().await;
if let Err(err) = map.write().unwrap().load(&map_id, map_info) {
println!("{}", err);
return;
}
let begin = Instant::now();
let result = map.read().unwrap().find_path(&map_id, (1, 0), (14, 15));
match result {
Ok(ref v) => {
let end = Instant::now();
println!("寻路结果: ");
for x in v.into_iter() {
println!("{}, {}", x.0, x.1);
}
println!("Use: {:?}", end - begin);
}
Err(e) => println!("{}", e),
}
}