mirror of
https://codeberg.org/JasterV/gofish_bot.git
synced 2026-04-27 02:15:46 +00:00
player cannot ask for a card he dont have
This commit is contained in:
parent
97fc50c143
commit
43d49ff71f
2 changed files with 6 additions and 4 deletions
|
|
@ -105,7 +105,7 @@ impl Game {
|
|||
if !self.can_ask(index) {
|
||||
return Err(CannotAsk(player_id.clone()).into());
|
||||
}
|
||||
if !self.is_valid_question(to, card) {
|
||||
if !self.is_valid_question(index, to, card) {
|
||||
return Err(InvalidQuestion(to, card).into());
|
||||
}
|
||||
let cards = self.take_cards_from(to, card);
|
||||
|
|
@ -211,8 +211,10 @@ impl Game {
|
|||
self.state == GameState::Asking(index)
|
||||
}
|
||||
|
||||
fn is_valid_question(&self, to: usize, card: u8) -> bool {
|
||||
self.is_valid_player_index(to) && Deck::valid_card(card)
|
||||
fn is_valid_question(&self, from: usize, to: usize, card: u8) -> bool {
|
||||
self.is_valid_player_index(to)
|
||||
&& Deck::valid_card(card)
|
||||
&& self.players[from].cards.iter().any(|&c| c == card)
|
||||
}
|
||||
|
||||
fn is_valid_player_index(&self, to: usize) -> bool {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use thiserror::Error;
|
|||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum ActionError {
|
||||
#[error("Invalid question, check the option you chose or the card number. \n Option: {0}, Card: {1}")]
|
||||
#[error("Invalid question, check the option you chose or the card number.\n\nOption: {0}, Card: {1}\n\nRemember: You can't ask for a card that you don't have!🤥")]
|
||||
InvalidQuestion(usize, u8),
|
||||
#[error("There is no player with id {0}")]
|
||||
InvalidPlayerId(String),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue