Make illegal moves
This commit is contained in:
parent
0175f2d933
commit
2c3b3510c3
14
src/main.rs
14
src/main.rs
|
@ -61,7 +61,7 @@ impl GameId {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, serde::Deserialize, serde::Serialize)]
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
struct Piece {
|
||||
kind: PieceKind,
|
||||
color: Color,
|
||||
|
@ -284,7 +284,7 @@ impl File {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Default)]
|
||||
#[derive(Clone, Debug, Default)]
|
||||
struct BoardState {
|
||||
inner: HashMap<Coordinates, Piece>,
|
||||
}
|
||||
|
@ -361,9 +361,10 @@ async fn start(start: Json<Start>, game_state: Data<GameState>) -> HttpResponse
|
|||
|
||||
let (tx, mut rx) = tokio::sync::mpsc::channel(1);
|
||||
|
||||
let initial_board_state = BoardState::starting_positions();
|
||||
let mut board_state = BoardState::starting_positions();
|
||||
|
||||
let serializable = board_state.to_serializable();
|
||||
|
||||
let board_state = initial_board_state.clone();
|
||||
let game_dropper = GameDropper((**game_state).clone(), game_id.clone());
|
||||
|
||||
let game_data = GameData { sender: tx };
|
||||
|
@ -379,6 +380,9 @@ async fn start(start: Json<Start>, game_state: Data<GameState>) -> HttpResponse
|
|||
actix_web::rt::time::timeout(Duration::from_secs(60 * 5), rx.recv()).await
|
||||
{
|
||||
/* do stuff */
|
||||
if let Some(piece) = board_state.inner.remove(&msg.action.from) {
|
||||
board_state.inner.insert(msg.action.to, piece);
|
||||
}
|
||||
|
||||
let _ = msg.reply.send(Reply {
|
||||
board_state: board_state.clone(),
|
||||
|
@ -389,7 +393,7 @@ async fn start(start: Json<Start>, game_state: Data<GameState>) -> HttpResponse
|
|||
});
|
||||
|
||||
HttpResponse::Ok().json(GameStart {
|
||||
board: initial_board_state.to_serializable(),
|
||||
board: serializable,
|
||||
game_id,
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue