I am stopdid with indexes
This commit is contained in:
@@ -3,16 +3,16 @@ use crate::gamedata::{Board, Disk};
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests;
|
mod tests;
|
||||||
pub struct GameState {
|
pub struct GameState {
|
||||||
circles: Vec<(i32, i32, Disk)>,
|
pub circles: Vec<(i32, i32, Disk)>,
|
||||||
empty: Vec<i32>,
|
pub bottom: Vec<i32>,
|
||||||
player_turn: bool,
|
pub player_turn: bool,
|
||||||
board: Board,
|
pub board: Board,
|
||||||
}
|
}
|
||||||
impl Default for GameState {
|
impl Default for GameState {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
circles: vec![],
|
circles: vec![],
|
||||||
empty: vec![],
|
bottom: vec![],
|
||||||
player_turn: false,
|
player_turn: false,
|
||||||
board: Board::default(),
|
board: Board::default(),
|
||||||
}
|
}
|
||||||
|
|||||||
40
src/main.rs
40
src/main.rs
@@ -1,4 +1,4 @@
|
|||||||
use oxidised4::bored::GameState;
|
use oxidised4::{bored::GameState, gamedata::Disk};
|
||||||
use raylib::prelude::*;
|
use raylib::prelude::*;
|
||||||
const NROW: i32 = 6;
|
const NROW: i32 = 6;
|
||||||
const NCOL: i32 = 7;
|
const NCOL: i32 = 7;
|
||||||
@@ -33,14 +33,24 @@ fn main() {
|
|||||||
let _square_wewant = (square_widf * NROW / 2, square_heif * 3 / 2);
|
let _square_wewant = (square_widf * NROW / 2, square_heif * 3 / 2);
|
||||||
let _square_center = square_widf / 2;
|
let _square_center = square_widf / 2;
|
||||||
//7,9 are the values to center the circle
|
//7,9 are the values to center the circle
|
||||||
let state: GameState = GameState::default();
|
let mut state: GameState = GameState::default();
|
||||||
|
|
||||||
rl.set_target_fps(60);
|
rl.set_target_fps(60);
|
||||||
while !rl.window_should_close() {
|
while !rl.window_should_close() {
|
||||||
let mut d = rl.begin_drawing(&thread);
|
let mut d = rl.begin_drawing(&thread);
|
||||||
if d.is_mouse_button_pressed(MouseButton::MOUSE_LEFT_BUTTON) {
|
if d.is_mouse_button_pressed(MouseButton::MOUSE_LEFT_BUTTON) {
|
||||||
let column = get_mouse_column(&d, square_widf);
|
let column = get_mouse_column(&d, square_widf);
|
||||||
d.draw_texture(&circle_texture, column, STARTY, Color::VIOLET);
|
let coords = get_circle_coords(1, column);
|
||||||
|
state.circles.push((coords.1, coords.0, Disk::RED));
|
||||||
|
}
|
||||||
|
for circle in &state.circles {
|
||||||
|
let (x, y, disk) = circle;
|
||||||
|
let color = match disk {
|
||||||
|
Disk::RED => Color::RED,
|
||||||
|
Disk::BLU => Color::BLUE,
|
||||||
|
Disk::EMPTY => Color::WHITE,
|
||||||
|
};
|
||||||
|
d.draw_texture(&circle_texture, *x, *y, color);
|
||||||
}
|
}
|
||||||
d.clear_background(Color::WHITE);
|
d.clear_background(Color::WHITE);
|
||||||
d.draw_texture(&board_texture, BOARDSTART.0, BOARDSTART.1, Color::VIOLET);
|
d.draw_texture(&board_texture, BOARDSTART.0, BOARDSTART.1, Color::VIOLET);
|
||||||
@@ -48,22 +58,23 @@ fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//TODO move this to a struct
|
//TODO move this to a struct
|
||||||
const STARTX: i32 = 7;
|
const STARTX: i32 = 9;
|
||||||
const STARTY: i32 = 9;
|
const STARTY: i32 = 7;
|
||||||
const WX: i32 = 15;
|
const WX: i32 = 14;
|
||||||
const CIRCLEWIDTH: i32 = 55;
|
const WY: i32 = 14;
|
||||||
fn get_circle_coords(row: i32, column: i32) -> (i32, i32) {
|
const CIRCLEWIDTH: i32 = 56;
|
||||||
|
fn get_circle_coords(x: i32, y: i32) -> (i32, i32) {
|
||||||
let mut returned: (i32, i32) = (STARTX, STARTY);
|
let mut returned: (i32, i32) = (STARTX, STARTY);
|
||||||
match row {
|
match x {
|
||||||
1 => {}
|
1 => {}
|
||||||
_ => {
|
_ => {
|
||||||
returned.0 = STARTX + (CIRCLEWIDTH * (row - 1)) + (WX * (row - 1));
|
returned.0 = STARTX + (CIRCLEWIDTH * (x - 1)) + (WX * (x - 1));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
match column {
|
match y {
|
||||||
1 => {}
|
1 => {}
|
||||||
_ => {
|
_ => {
|
||||||
returned.1 = STARTY + (CIRCLEWIDTH * (column - 1)) + (WX * (column - 1));
|
returned.1 = STARTY + (CIRCLEWIDTH * (y - 1)) + (WY * (y - 1));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
returned
|
returned
|
||||||
@@ -72,11 +83,12 @@ fn get_mouse_column(rl: &RaylibHandle, sw: i32) -> i32 {
|
|||||||
//row,col return
|
//row,col return
|
||||||
let mouse_pos = rl.get_mouse_x();
|
let mouse_pos = rl.get_mouse_x();
|
||||||
dbg!(mouse_pos);
|
dbg!(mouse_pos);
|
||||||
for num in 1..NCOL {
|
for num in 1..NCOL + 1 {
|
||||||
dbg!(mouse_pos < sw * (num) - STARTX);
|
dbg!(mouse_pos < sw * (num) - STARTX);
|
||||||
if (mouse_pos > sw * (num - 1) + STARTX) && (mouse_pos < sw * (num) - STARTX) {
|
if (mouse_pos > sw * (num - 1) + STARTX) && (mouse_pos < sw * (num) - STARTX) {
|
||||||
|
dbg!(num);
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
10
|
-100
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user