random - c++ progam to take card number -
i create test simple game c++ , it's follows .. " user come in number (n) , programme take random collection of cards declared @ top of main global array's , output random numbers of cards (n) time , problem number lets '3 hearts' appear more 1 time , create function right , not work , why dont know ? , here progam , hop help , thanks.
#include <iostream> #include <time.h> #include <string> using namespace std; string type[4] = {"hearts" , "diamonds" , "spades" , "clubs"}; string num[13] = {"1","2","3","4","5","6","7","8","9","10","j","q","k"}; int random(int x){ homecoming rand()%x; } bool isdrawn(int); void drawcard(); int card_remaining = 52; bool card_is_drawn[52] = {false}; int main(){ while(1){ cout<<"\n come in card number : "; int n; cin>>n; if(card_remaining <= 0){ card_remaining = 52; cout<<" no more cards , refreshing ...\n"; cout<<" refresh done ! seek 1 time again if want \n"; for(int i=0;i<52;i++) card_is_drawn[i] = false; } else{ for(int i=0;i<n;i++){ drawcard(); } } } cout<<endl; system("pause"); homecoming 0; } void drawcard(){ bool check_1 = false; int card; while(!check_1){ card = random(card_remaining); if(!isdrawn(card)) check_1 = true; } if(check_1) cout << num[card%13]<<" of " << type[card/13] << endl ; card_remaining--; } bool isdrawn(int x){ if(card_is_drawn[x] == false){ card_is_drawn[x] = true; homecoming true; } homecoming false; }
should be:
void drawcard(){ if (card_remaining <= 0) // no cards left? can't draw return; bool check_1 = false; int card; while(!check_1){ card = random(52); // here 52 if (isdrawn(card)) // here, if card has been drawn check_1 = true; } if(check_1) cout << num[card%13]<<" of " << type[card/13] << endl ; card_remaining--; } c++ random
No comments:
Post a Comment