mirror of
https://github.com/sortedcord/rust-poker.git
synced 2026-03-07 15:34:08 +05:30
feat: implement fold and bet
This commit is contained in:
35
src/main.rs
35
src/main.rs
@@ -1,5 +1,5 @@
|
||||
use rand::prelude::*;
|
||||
use std::{io, vec};
|
||||
use std::{io, thread::current, vec};
|
||||
|
||||
#[derive(PartialEq, Eq, Clone, Copy, Debug)]
|
||||
enum CardSuit {
|
||||
@@ -21,6 +21,14 @@ enum PlayerType {
|
||||
Cpu,
|
||||
}
|
||||
|
||||
enum PlayerActions {
|
||||
Fold,
|
||||
Bet,
|
||||
Call,
|
||||
Raise,
|
||||
Check,
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Eq)]
|
||||
struct Player {
|
||||
name: String,
|
||||
@@ -74,6 +82,28 @@ fn generate_card(seen_cards: &mut Vec<Card>) -> Card {
|
||||
}
|
||||
}
|
||||
|
||||
fn action_fold(mut player: &mut Player) {
|
||||
player.cards.clear();
|
||||
println!("{name} Folds their turn", name = player.name);
|
||||
}
|
||||
|
||||
fn action_bet(mut player: &mut Player, mut pool: &mut i32, mut current_bet: &mut i32) {
|
||||
let mut rng = rand::rng();
|
||||
let amount: i32 = match player.player_type {
|
||||
PlayerType::Human => {
|
||||
println!("Enter your bet amount: ");
|
||||
read_int()
|
||||
}
|
||||
PlayerType::Cpu => rng.random_range(1..=player.score),
|
||||
};
|
||||
|
||||
*pool += amount;
|
||||
player.score -= amount;
|
||||
*current_bet = amount;
|
||||
|
||||
println!("{name} bets {amount}", name = player.name);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut rng = rand::rng();
|
||||
let mut seen_cards: Vec<Card> = Vec::new();
|
||||
@@ -146,4 +176,7 @@ fn main() {
|
||||
for card in user.cards {
|
||||
println!("{} of {:#?}", convert_number(card.number), card.suit);
|
||||
}
|
||||
|
||||
// Start preflop betting round
|
||||
let mut current_bet = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user