Esercizio: una mano di poker
Si vuole scrivere un programma pescare una mano di poker.
Scrivere un programma che simuli il pescaggio di una mano di poker. Il programma deve pescare cinque carte casuali da un mazzo di 52 carte e stamparle a video.
Un’esecuzione del programma potrebbe essere la seguente:
$ ./poker
Le carte pescate sono:
7c 3d 9h 10s 2d
Opzionale:
- scrivere una funzione
draw_cardche restituisca una carta casuale. - implementare una funzione
discardche permetta di scartare un numero arbitrario di carte e di pescarne altrettante di nuove.
Per pescare una carta casuale si devono generare dei numeri casuali. In C si utilizza la funzione rand per generare numeri casuali. Prima di utilizzare rand è necessario inizializzare il generatore di numeri casuali con la funzione srand. Per fare questo si può utilizzare il valore restituito dalla funzione time della libreria time.h come seme per srand. Ad esempio:
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL)); // imposta il seed
int n = rand(); // genera un numero casuale
// se si vuole generare un numero tra 0 e 51 si può usare l'operatore modulo
int card = rand() % 52;
// ...
}Per avere maggiori dettagli su rand e srand si può consultare la documentazione disponibile digitando man rand e man srand da terminale.