summaryrefslogtreecommitdiff
path: root/src/character.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/character.rs')
-rw-r--r--src/character.rs33
1 files changed, 7 insertions, 26 deletions
diff --git a/src/character.rs b/src/character.rs
index 7d5e951..2f2289f 100644
--- a/src/character.rs
+++ b/src/character.rs
@@ -1,14 +1,11 @@
-extern crate pancurses;
-use pancurses::ColorPair;
-
extern crate rand;
use character::rand::Rng;
use location::Location;
pub struct Character{
- symbol : char,
- color : u8,
+ pub symbol : char,
+ pub color : u8,
pub location : Location,
}
@@ -28,28 +25,12 @@ impl Character {
}
}
- pub fn draw(self, window : &pancurses::Window) {
- window.attron(ColorPair(self.color));
- window.mvaddch(self.location.x, self.location.y, self.symbol);
- }
-
- pub fn action(self, men : Vec<Character>, impassable : Vec<Location>){
- self.wander(men, impassable);
- }
-
- fn wander(mut self, men : Vec<Character>, impassable : Vec<Location>){
- let direction = rand::thread_rng().gen_range(0,9);
- let mut desired_location = self.location;
- if direction == 0 {
- desired_location.x = desired_location.x+1;
- }
-
- if self.free_space(desired_location, men, impassable) {
- self.location = desired_location;
- }
+ pub fn action(&mut self, free_spaces : Vec<Location>){
+ self.wander(free_spaces);
}
- fn free_space(self, location : Location, men : Vec<Character>, impassable : Vec<Location>) -> bool {
- true
+ fn wander(&mut self, free_spaces : Vec<Location>){
+ let direction = rand::thread_rng().gen_range(0,free_spaces.len());
+ self.location = free_spaces[direction];
}
}