Przekazywanie tablicy do funckji

0

Witam nie programuję jeszcze jakoś wybitnie ale w szkole jako tako wyróżniam się i postanowiłem napisać coś trudniejszego - Pokera ale to tak mało ważne.
zastanawiam się jak wysłać z funkcji głównej całą tablicę z danymi. Oto mój kod.

Funkcja sprawdz. :

int sprawdz(int karta, int kolor, int lista_kart[], int lista_kolorow[])
{
    for(int i=1;i<10;i++)
    {
            if(karta== lista_kart[i] && kolor ==lista_kolorow[i])
            {
                       return 1; 
            }
            else
            {
                       return 0;
            }
    }
}

fragment funkcji głównej :

int gracz1_karty[3];
int gracz1_kolor[3];
int karty[10];
int kolor_karty[10];
(...)
do
{
gracz1_karty[i]=losuj_karte();
gracz1_kolor[i]=losuj_kolor(); 
int sprawdzenie;                                   sprawdzenie=sprawdz(gracz1_karty[i],gracz1_kolor[i],karty,kolor_karty);
(...)
}while(sprawdzanie==0); 

teraz jak przekacać całą tablice "karty" i całą tablicy "kolor_karty" ?

0

Tablica do funkcji nie jest nigdy przekazywana przez wartość ,ponieważ nie było by to wydajne dlatego przesyła się adres jej początku. nazwa tablicy jest adresem jej początku więc twój kod jest prawidłowy. Nie wiem w czym problem.

0

Ma duży sens zakodować karty. Masz 13 kart w 4-ch kolorach razem 52 czyli właściwie karta może być zakodowana w jednym bajcie.

const char * const Nazwy[]={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
const char * const Kolory[]={"pik","trefli","karo","kier"};
unsigned NazwyRozmiar=sizeof(Nazwy)/sizeof(*Nazwy);
unsigned KoloryRozmiar=sizeof(Kolory)/sizeof(*Kolory);
unsigned TaliaRozmiar=NazwyRozmiar*KoloryRozmiar; // ewentualnie + 2 jokery

void co_to_jest(unsigned char karta) { cout<<Nazwy[karta>>2]<<Kolory[karta&3]; } // tak wypisujesz kartę.
co_to_jest(36);

void mieszanie(unsigned char talia[]) // tak mieszasz talie
  {
   for(unsigned i=0;i<TaliaRozmiar;++i) talia[i]=i;
   for(unsigned i=TaliaRozmiar;i>1;--i) swap(talia[i-1],talia[rand(i)]);
  }

unsigned char talia[52];
mieszanie(talia);

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