use game_pathfinding::map::MapManager;
use std::time::Instant;
use tokio::fs::File;
use tokio::io::AsyncReadExt;
#[tokio::main]
async fn main(){
let mut file = File::open("./World.json").await.unwrap();
let mut buffer = String::new();
file.read_to_string(&mut buffer).await.unwrap();
let map = MapManager::get_instance();
let map_id = map.write().unwrap().new_astar().await;
if let Err(err) = map
.write()
.unwrap()
.load_from_string(&map_id, buffer)
.await
{
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),
}
}