Tasowanie kart

0

Piszę program- grę w karty. Posiadam 24 karty od 9 do asów. Mam tablice która wygląda tak:

Talia karty[24];
for(USHORT i=0;i<24;i++)
    {
        karty[i]=(Talia) (i+1);
    }

Talia to typ wyliczeniowy (enum) rozpoczęty wartością 1 dla 9 trefl. Czy istnieje jakiś inny sposób niż tworzenie dodatkowej tablicy i co każde wylosowanie sprawdzanie czy ten element już był wylosowany? Ten sposób wydaje mi się kosztowny przy big tablicach a chciałbym na przyszłość wiedzieć jak poradzić sobie w takich problemach. Nie potrzebuje kodu tylko algorytmu (kod sam wklepie)

0

Znalezione w internecie:

#include <iostream>

#include <cstdlib>

#include <time.h>


using namespace std;

int main()
{
  int Z[] = {0,1,2,3,4,5,6,7,8,9};
  int i1,i2,i,x;

  srand((unsigned) time(NULL));
  for(i = 0; i < 10; i++) cout << Z[i] << " ";
  cout << endl;
  for(i = 1; i <= 30; i++)
  {
    i1 = rand() % 10;
    i2 = rand() % 10;
    x  = Z[i1]; Z[i1] = Z[i2]; Z[i2] = x;
  }
  for(i = 0; i < 10; i++) cout << Z[i] << " ";
  cout << endl;
  return 0;
} 
0

Dzięki za szybką odp;] kod działa;] teraz idę go przeanalizować

1 użytkowników online, w tym zalogowanych: 0, gości: 1