Hejsa
Jeg har lavet følgende kode som skal simulerer et kort spil.
Det skal simulerer at man vender et kort fra bunken, udskriver koordinaterne til dette kort og ændrer værdien til 1, sådan at den ikke udskriver de samme koordinater igen.
Pt. er det ikke vigtigt hvad den udskriver, men mere at den udskriver alle "kortene" i tilfældig rækkefølge.
Mit problem er dog at den (selvfølgelig) bliver langsommere og langsommere til at finde tallene. Kan jeg ændre koden på en måde så det ikke går langsommere, samtidig med at jeg beholder tilfældigheden intakt?
- //kort.cpp, Stefan Veis Pennerup
- //Description: Gives out all cards from 1 to 52, and makes sure they don't show up again
-
- #include <iostream>
- #include <cstdlib>
- #include <cstdio>
- using namespace std;
-
- int main(){
- int i,x,y;
- int cards[4][13]; //1=Clubs, 2=Diamonds, 3=Hearts, 4=Spades.
-
- for(x=0;x<4;x++){
- for(y=0;y<13;y++)
- cards[x][y]=0;
- }
-
- for(i=0;i<52;i++){
- do{
- srand((unsigned)time(0));
- x=(rand()%4);
- y=(rand()%13);
- }while(cards[x][y] !=0);
-
- cout << x << " y " << y << "nr. " << i << endl;
-
- cards[x][y]=1;
- }
-
- for(x=0;x<4;x++){
- for(y=0;y<13;y++)
- cout << "bla, " << cards[x][y] << endl;
- }
-
- return 0;
- }