Search
Napište program, který bude simulovat hru Black Jack (Oko bere, Jednadvacet) podle následujících pravidel:
Následující body nejsou povinné, spíš doporučené.
1. Jednotlivé karty budou reprezentovány strukturou, která bude obsahovat název karty (2 - 9, J, Q, K, A), barvu (srdce, kára, kříže, piky) a její hodnotu.
typedef struct { // vase implementace } karta_t;
2. Karty jsou umístěny ve vhodné struktuře, která umožňuje destruktivní náhodný výběr karty z množiny. Jako jedno z možných řešení se nabízí kruhová fronta nebo použití dvou zásobníků: na začátku hry se vloží potřebný počet karet do prvního zásobníku, náhodný počet karet se z prvního zásobníku vyjme a vloží do druhého. Kartu, která je na vrcholu některého ze zásobníků se odebere a dostává ji hráč, který je na tahu.
Generátor náhodných čísel:
#include <time.h> #include <stdlib.h> srand(time(NULL)); // inicializace, staci zavolat jednou int r = rand(); // vrati pseudo-nahodne cislo typu integer v rozsahu 0 a RAND_MAX
3. Každý hráč je reprezentován datovou strukturou, která obsahuje informaci o jeho jméně, kartách, které dostal od krupiéra a celkovém součtu ve hře.
typedef struct { // vase implementace } hrac_t;
4. Jména hráčů jsou programu jsou vložena na začátku hry, např. všechna najednou, oddělena mezerou
$ game.exe > zadej hrace: Petr, Pavel, Jan > ve hre jsou Petr, Pavel a Jan > Petr ? [a/n/s] a < Piky 2 > Petr 2 Pavel 0 Jan 0 > Pavel ? [a/n/s] a < Kara A > Petr 2 Pavel 11 Jan 0 > Jan ? [a/n/s] n > Petr ? [a/n/s] s > Soucet: 2 > Piky 2 > Petr ? [a/n/s] a < Kriz K > Petr 12 Pavel 11 Jan 0
Hodnoceny jsou dílčí části programu: