|
@ -7,8 +7,9 @@ struct Apr { |
|
|
col: i32, |
|
|
col: i32, |
|
|
board: Vec<Vec<u8>>, |
|
|
board: Vec<Vec<u8>>, |
|
|
grid: Mesh, |
|
|
grid: Mesh, |
|
|
|
|
|
should_update_grid: bool, |
|
|
// Your state here...
|
|
|
// Your state here...
|
|
|
__TEST_state : usize |
|
|
__TEST_state: usize |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
fn make_grid(ctx: &mut Context, r: i32, c: i32, board: &[Vec<u8>]) -> GameResult<Mesh> { |
|
|
fn make_grid(ctx: &mut Context, r: i32, c: i32, board: &[Vec<u8>]) -> GameResult<Mesh> { |
|
@ -65,13 +66,14 @@ impl Apr { |
|
|
col: c, |
|
|
col: c, |
|
|
grid: make_grid(_ctx, r, c, board.as_slice()).unwrap(), |
|
|
grid: make_grid(_ctx, r, c, board.as_slice()).unwrap(), |
|
|
board: board, |
|
|
board: board, |
|
|
__TEST_state : 0, |
|
|
should_update_grid: false, |
|
|
|
|
|
__TEST_state: 0, |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
fn set_colour(&mut self, ctx : &mut Context, r : usize, c : usize, col : u8) -> GameResult<()> { |
|
|
fn set_colour(&mut self, r : usize, c : usize, col : u8) -> GameResult<()> { |
|
|
self.board[r][c] = col; |
|
|
self.board[r][c] = col; |
|
|
self.grid = make_grid(ctx, self.row, self.col, self.board.as_slice())?; |
|
|
self.should_update_grid = true; |
|
|
Ok(()) |
|
|
Ok(()) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -83,7 +85,7 @@ impl EventHandler for Apr { |
|
|
for x in 0..self.row*self.col/5 { |
|
|
for x in 0..self.row*self.col/5 { |
|
|
let c = self.__TEST_state % self.col as usize; |
|
|
let c = self.__TEST_state % self.col as usize; |
|
|
let r = (self.__TEST_state / self.row as usize) % self.row as usize; |
|
|
let r = (self.__TEST_state / self.row as usize) % self.row as usize; |
|
|
self.set_colour(_ctx, r, c, (self.board[r][c] + 1) % 8)?; |
|
|
self.set_colour(r, c, (self.board[r][c] + 1) % 8)?; |
|
|
self.__TEST_state += 1; |
|
|
self.__TEST_state += 1; |
|
|
} |
|
|
} |
|
|
Ok(()) |
|
|
Ok(()) |
|
@ -93,6 +95,10 @@ impl EventHandler for Apr { |
|
|
graphics::clear(ctx, Color::new(0.5, 0.5, 0.5, 1.0)); |
|
|
graphics::clear(ctx, Color::new(0.5, 0.5, 0.5, 1.0)); |
|
|
let drawparams = graphics::DrawParam::new(); |
|
|
let drawparams = graphics::DrawParam::new(); |
|
|
|
|
|
|
|
|
|
|
|
if self.should_update_grid { |
|
|
|
|
|
self.grid = make_grid(ctx, self.row, self.col, self.board.as_slice())?; |
|
|
|
|
|
self.should_update_grid = false; |
|
|
|
|
|
} |
|
|
graphics::draw(ctx, &self.grid, drawparams)?; |
|
|
graphics::draw(ctx, &self.grid, drawparams)?; |
|
|
// Draw code here...
|
|
|
// Draw code here...
|
|
|
graphics::present(ctx) |
|
|
graphics::present(ctx) |
|
|