From c5a8c6d9000b7bf8994ce4495545754c196cc18f Mon Sep 17 00:00:00 2001 From: Coeuvre Date: Thu, 22 May 2014 00:02:52 +0800 Subject: [PATCH] Added board score --- src/board.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/board.rs b/src/board.rs index bf6793e..4377913 100644 --- a/src/board.rs +++ b/src/board.rs @@ -12,12 +12,16 @@ use tile::{ pub struct Board { tiles: Vec, + score: int, + highest_score: int, } impl Board { pub fn new() -> Board { Board { tiles: Vec::::new(), + score: 0, + highest_score: 0, } } @@ -44,6 +48,7 @@ impl Board { if self.is_locking() { return; } + let mut score_to_added = 0; let mut tiles_need_removed = HashSet::::new(); let mut tiles_need_added = Vec::::new(); for i in range(0, self.tiles.len()) { @@ -62,6 +67,7 @@ impl Board { tiles_need_removed.insert(i); tiles_need_removed.insert(j); 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; } } @@ -74,6 +80,7 @@ impl Board { } } 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); } } + + 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); + } }