Hej!
Jeg begyndte at kede mig forleden og startede på en idé jeg har tænkt på et stykke tid nu - og nu sidder jeg så fast...
Meningen er at programmet skal trække et tilfældigt spillekort (ud af 52), kalde en funktion, og så ellers starte forfra til alle 52 har været igennem.
Problemet er bare, at hvis dette skal fungere, må der ikke være tilbagelægning (det samme kort må ikke trækkes 2 gange), så jeg skal kunne gemme alle de
tilfældige tal, som mit program tildeler int kortNummer og hver gang der trækkes et nyt kort, skal kortets nummer (det tilfældige tal) sammenlignes med alle de andre, allerede brugte, tal. Hvis tallet er brugt før, skal der genereres et nyt tal (som selvf. også tjekkes...)
Dette gav sikkert ingen mening, så jeg vedlægger også lidt uoverskuelig kode
#include "Kort.h"
using namespace std;
int main(int argc, char *argv[])
{
int kortNummer;
srand(time(0));
for (int i = 0; i < 2; ++i)
{
kortNummer = rand() % 52+1;
}
Spar Spar;
Ruder Ruder;
Klor Klor;
Hjerter Hjerter;
cout << kortNummer << endl;
switch (kortNummer)
{
case 1:
Spar.sparEs();
break;
// fortsætter 52 gange :S
}
cout << endl;
cin.get();
return EXIT_SUCCESS;
}
Jeg tænkte på at implementere en array til tildele tal fra 1-52 og så bruge en random_shuffle, men for det første har jeg ingen anelse om hvordan jeg senere skulle tjekke for allerede brugte tal, og for det andet kunne de eksempler jeg fandt på google kun shuffle en gang og rækkefølgen vil således blive den samme hver gang.
Nogen forslag til hvad jeg kan gøre?
[Redigeret d. 13/08-05 23:52:30 af Mikkel Kjeldsen]