Browse Source

Colors are Freaky

master
iamsosmart19 3 years ago
parent
commit
e29879ce0b
  1. 2664
      Cargo.lock
  2. 42
      src/main.rs

2664
Cargo.lock

File diff suppressed because it is too large

42
src/main.rs

@ -3,23 +3,24 @@ use ggez::graphics::{self, Color, DrawMode, Mesh, MeshBuilder};
use ggez::{Context, ContextBuilder, GameResult};
struct Apr {
rows: i32,
col: i32,
board: Vec<Vec<u8>>,
grid: Mesh,
// Your state here...
}
fn make_grid(ctx: &mut Context, r: i32, c: i32) -> GameResult<Mesh> {
fn make_grid(ctx: &mut Context, r: i32, c: i32, board: &[Vec<u8>]) -> GameResult<Mesh> {
let start_x: f32 = 20.0;
let start_y: f32 = 20.0;
let size: f32 = 20.0; //compile time constants for now
let mut start_white: bool = true;
let mut builder = MeshBuilder::new();
for row in 0..r {
let mut colour = start_white;
for col in 0..c {
builder.rectangle(
if colour {
if board[row as usize][col as usize] == 0 {
DrawMode::stroke(1.0)
} else {
DrawMode::fill()
@ -30,21 +31,42 @@ fn make_grid(ctx: &mut Context, r: i32, c: i32) -> GameResult<Mesh> {
w: size,
h: size,
},
Color::BLACK,
match board[row as usize][col as usize] {
0 | 1 => Color::BLACK,
2 => Color::RED,
// 3 => Color::ORANGE,
4 => Color::YELLOW,
5 => Color::GREEN,
6 => Color::BLUE,
// 7 => Color::PURPLE,
_ => Color::BLACK,
}
)?;
colour = !colour;
}
start_white = !start_white;
}
builder.build(ctx)
}
fn make_board(r: i32, c: i32) -> Vec<Vec<u8>> {
let mut init : Vec<Vec<u8>> = vec![vec![0u8; r as usize]; c as usize];
for row in 0..r as usize {
for col in 0..c as usize {
init[row][col] = (row + col) as u8 % 8;
}
}
init
}
impl Apr {
pub fn new(_ctx: &mut Context) -> Apr {
pub fn new(_ctx: &mut Context, r: i32, c: i32) -> Apr {
// Load/create resources such as images here.
let board = make_board(r, c);
Apr {
grid: make_grid(_ctx, 8, 8).unwrap(),
rows: r,
col: c,
grid: make_grid(_ctx, r, c, board.as_slice()).unwrap(),
board: board,
}
}
}
@ -75,7 +97,7 @@ fn main() {
// Create an instance of your event handler.
// Usually, you should provide it with the Context object to
// use when setting your game up.
let apr = Apr::new(&mut ctx);
let apr = Apr::new(&mut ctx, 8, 8);
// Run!
event::run(ctx, event_loop, apr);

Loading…
Cancel
Save