tidy up game implementation

This commit is contained in:
Max Bradbury 2020-04-13 18:01:42 +01:00
parent 280e7e9cd6
commit 85f6501b2c
1 changed files with 4 additions and 17 deletions

View File

@ -163,24 +163,14 @@ impl ToString for Game {
}
}
pub trait TileIds {
fn tile_ids(&self) -> Vec<u64>;
}
impl TileIds for Game {
impl Game {
fn tile_ids(&self) -> Vec<u64> {
self.tiles.iter().map(|tile| {tile.id}).collect()
}
}
/// first available tile ID.
/// e.g. if current tile IDs are [0, 2, 3] the result will be `1`
/// if current tile IDs are [0, 1, 2] the result will be `3`
pub trait NewTileId {
fn new_tile_id(&self) -> u64;
}
impl NewTileId for Game {
/// first available tile ID.
/// e.g. if current tile IDs are [0, 2, 3] the result will be `1`
/// if current tile IDs are [0, 1, 2] the result will be `3`
fn new_tile_id(&self) -> u64 {
let mut new_id = 0;
@ -197,9 +187,6 @@ impl NewTileId for Game {
new_id + 1
}
}
impl Game {
/// adds a tile safely and returns the new tile ID
fn add_tile(&mut self, mut tile: Tile) -> u64 {
let new_id = self.new_tile_id();