simple ant colony program written in rust i originally started with C but then started to miss data structures so I re-wrote it in rust
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
antf/tests/ai_test.rs

37 lines
979 B

use antf::lib::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 ncurses::*;
use std::thread::sleep;
use std::time;
// make sure to run with --test-threads 1! otherwise output will be bugged
#[test]
fn test_reach_astar() {
let mut board = init_screen();
let mut world = World::new();
let mut entities = Entities::new();
let a = Ant::new(0,0);
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 = AIGoal::Reach(Point(10,10));
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();
}