Set up API for AI choice of slot on board
This commit is contained in:
parent
614aae9f54
commit
2e58bc1288
3 changed files with 27 additions and 1 deletions
23
front_end/src/ai/mod.rs
Normal file
23
front_end/src/ai/mod.rs
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
use crate::state::BoardType;
|
||||||
|
|
||||||
|
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
|
||||||
|
pub enum AIDifficulty {
|
||||||
|
Easy,
|
||||||
|
Normal,
|
||||||
|
Hard,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
|
||||||
|
pub enum SlotChoice {
|
||||||
|
Slot0,
|
||||||
|
Slot1,
|
||||||
|
Slot2,
|
||||||
|
Slot3,
|
||||||
|
Slot4,
|
||||||
|
Slot5,
|
||||||
|
Slot6,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_ai_choice(difficulty: AIDifficulty, board: &BoardType) -> Result<SlotChoice, String> {
|
||||||
|
Err("Unimplemented".into())
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
mod constants;
|
mod constants;
|
||||||
mod state;
|
mod state;
|
||||||
mod yew_components;
|
mod yew_components;
|
||||||
|
mod ai;
|
||||||
|
|
||||||
use state::SharedState;
|
use state::SharedState;
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
|
|
|
@ -95,9 +95,11 @@ impl Turn {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub type BoardType = [Rc<Cell<BoardState>>; 56];
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq)]
|
||||||
pub struct SharedState {
|
pub struct SharedState {
|
||||||
pub board: [Rc<Cell<BoardState>>; 56],
|
pub board: BoardType,
|
||||||
pub game_state: Rc<Cell<GameState>>,
|
pub game_state: Rc<Cell<GameState>>,
|
||||||
pub turn: Rc<Cell<Turn>>,
|
pub turn: Rc<Cell<Turn>>,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue