vi posto questo programma dovrebbe generare dei semi e dei numeri casuale dato un certo numero di carte che decidiamo di dare a ogni mano..ma il metodo rand va oltre il range che gli do io..a me il massimo è 13 lui va anche a 100 ecc aiutatemi
codice:
#include<stdbool.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define NUM_SUITS 4
#define NUM_RANKS 13
int main(void){
bool in_hand[NUM_SUITS][NUM_RANKS]={false};
int num_cards,rank,suit;
const char rank_code[]={'2','3','4','5','6','7','8','9','t','j','q','k','a'};
const char suit_code[]={'c','d','h','a'};
srand((unsigned)time(NULL));//serve per non generare sempre gli stessi numeri casuali
printf("metti il numero di carte per mano");
scanf("%d",&num_cards);
printf("mano:\n");
while(num_cards>0){
suit=rand()%NUM_SUITS;//genera semi casuali da 1 a num_suits
rank=rand()%NUM_RANKS;//sceglie un valore casuale massimo uguale al valore num_ranks
if(!in_hand[suit][rank]){
in_hand[suit][rank]=true;
num_cards--;
printf("%d %d\n",rank_code[rank],suit_code[suit]);
}
}
printf("\n");
system("PAUSE");
return 0;
}