multiple goal ai
This commit is contained in:
+37
-5
@@ -1,8 +1,8 @@
|
||||
use antf::lib::screen::init_screen;
|
||||
use antf::lib::screen::{Screen, init_screen};
|
||||
use antf::lib::point::Point;
|
||||
use antf::lib::ai::AIGoal;
|
||||
use antf::lib::world::{World, simulate, render};
|
||||
use antf::lib::entity::{Entities, Ant};
|
||||
use antf::lib::entity::{Entities, Ant, Food, FoodGenerator};
|
||||
|
||||
use ncurses::*;
|
||||
use std::thread::sleep;
|
||||
@@ -12,7 +12,7 @@ use std::time;
|
||||
|
||||
#[test]
|
||||
fn test_reach_astar() {
|
||||
let mut board = init_screen();
|
||||
let mut board = init_screen();//Screen::new(40,40);
|
||||
let mut world = World::new();
|
||||
|
||||
let mut entities = Entities::new();
|
||||
@@ -22,9 +22,13 @@ fn test_reach_astar() {
|
||||
|
||||
let a = entities.data.get_mut(&id).unwrap();
|
||||
let ant: &mut Ant = a.downcast_mut::<Ant>().unwrap();
|
||||
ant.goal = AIGoal::Reach(Point(10,10));
|
||||
ant.plan.push(AIGoal::Reach(Point(10,10)));
|
||||
ant.plan.push(AIGoal::Reach(Point(-10,-10)));
|
||||
ant.plan.push(AIGoal::Reach(Point(10,-10)));
|
||||
ant.plan.push(AIGoal::Reach(Point(-10,10)));
|
||||
|
||||
for _ in 0..60 {
|
||||
// craps out... need to make sure unwrap() is safe
|
||||
for _ in 0..420 {
|
||||
// TODO: add way to break out of the loop by hitting a random key
|
||||
simulate(&mut entities, &mut world, &mut board);
|
||||
render(&entities, &world, &board);
|
||||
@@ -34,3 +38,31 @@ fn test_reach_astar() {
|
||||
clear();
|
||||
endwin();
|
||||
}
|
||||
|
||||
/*#[test]
|
||||
fn test_drag() {
|
||||
let mut board = init_screen();
|
||||
let mut world = World::new();
|
||||
|
||||
let mut entities = Entities::new();
|
||||
|
||||
let f = Food::new(10,10);
|
||||
let a = Ant::new(0,0);
|
||||
let fid = entities.add_entity(&f);
|
||||
let id = entities.add_entity(&a);
|
||||
|
||||
let a = entities.data.get_mut(&id).unwrap();
|
||||
let ant: &mut Ant = a.downcast_mut::<Ant>().unwrap();
|
||||
|
||||
//ant.goal =
|
||||
|
||||
for _ in 0..60 {
|
||||
// TODO: add way to break out of the loop by hitting a random key
|
||||
simulate(&mut entities, &mut world, &mut board);
|
||||
render(&entities, &world, &board);
|
||||
sleep(time::Duration::from_millis(100));
|
||||
refresh();
|
||||
}
|
||||
clear();
|
||||
endwin();
|
||||
}*/
|
||||
|
||||
Reference in New Issue
Block a user