Added board score

This commit is contained in:
Coeuvre 2014-05-22 00:02:52 +08:00
parent 6ffa97d37a
commit c5a8c6d900

View file

@ -12,12 +12,16 @@ use tile::{
pub struct Board { pub struct Board {
tiles: Vec<Tile>, tiles: Vec<Tile>,
score: int,
highest_score: int,
} }
impl Board { impl Board {
pub fn new() -> Board { pub fn new() -> Board {
Board { Board {
tiles: Vec::<Tile>::new(), tiles: Vec::<Tile>::new(),
score: 0,
highest_score: 0,
} }
} }
@ -44,6 +48,7 @@ impl Board {
if self.is_locking() { if self.is_locking() {
return; return;
} }
let mut score_to_added = 0;
let mut tiles_need_removed = HashSet::<uint>::new(); let mut tiles_need_removed = HashSet::<uint>::new();
let mut tiles_need_added = Vec::<Tile>::new(); let mut tiles_need_added = Vec::<Tile>::new();
for i in range(0, self.tiles.len()) { for i in range(0, self.tiles.len()) {
@ -62,6 +67,7 @@ impl Board {
tiles_need_removed.insert(i); tiles_need_removed.insert(i);
tiles_need_removed.insert(j); tiles_need_removed.insert(j);
tiles_need_added.push(Tile::new_combined(tile1.score + tile2.score, tile1.tile_x, tile1.tile_y)); tiles_need_added.push(Tile::new_combined(tile1.score + tile2.score, tile1.tile_x, tile1.tile_y));
score_to_added += tile1.score + tile2.score;
break; break;
} }
} }
@ -74,6 +80,7 @@ impl Board {
} }
} }
self.tiles = tiles.append(tiles_need_added.as_slice()); self.tiles = tiles.append(tiles_need_added.as_slice());
self.add_score(score_to_added);
} }
} }
@ -360,5 +367,13 @@ impl Board {
tile.render(c, gl); tile.render(c, gl);
} }
} }
fn add_score(&mut self, score: int) {
self.score += score;
if self.score > self.highest_score {
self.highest_score = self.score;
}
println!("Score: {}, Highest Score: {}", self.score, self.highest_score);
}
} }