Durum Calismasi
Bu bolumumuzde siradan sayilari kullanarak iskambil kagitlarini karistiracagiz.Ozel kard oyununu gerceklestiren bu programi uygulamak icin karistirma methodu kullanarak yazdigmiz program kullanilabilir.
Yukardan assagi methodunu takip ederek, iskambil oyun kartlarini karistiracak bir program gelistirmemiz mumkun olacak.
Ve bu karistirma toplam olarak 52 kartan olusmaktadir.
Yukaridan assagiya methodu bu tur programlarda cok kuvvetli oldugu icin bizde bu method turunu kullanacagiz.
Programda nasil bir array kullanacagimizi assagida ki diagrama bakarak array buyuklugunu ve kacli array kullanacagimizi belirtmek hicde zor degil. Degil mi???
Zannedersem su an array hakkinda az da olsa bilginiz vardir. Burada kullanacagimiz array diagramdan da anlasildigi gibi
iskambil[sira][kolon]
seklinde tanimlanir. Sira 0 ila 3 arasi ve kolon ise 0 ila 12 arasi kadar buyukluktedir.
/*Kard Programi*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Karistir(int [][13]);
void Dagit(const int [][13], const char *[], const char *[]);
main()
{
char *deger[4] = {"Kalpler", "Elmas", "Kulup",
"Maca"};
char *yuz[13] = {"As", "Duses", "Uc",
"Dort", "Bes", "Alti", "Yedi", "Sekiz",
"Dokuz", "On", "Jack", "Kralice", "Kral"};
int iskambil[4][13] = {0};
srand(time(NULL));
Karistir(iskambil);
Dagit(iskambil, yuz, deger);
return(0);
}
void Karistir(int iskambil2[][13])
{
int kart, sira, kolon;
for(kart = 1; kart <=52; kart++)
{
sira = rand() % 4;
kolon = rand() % 13;
while(iskambil2[sira][kolon] != 0)
{ sira = rand() %4;
Kolon = rand() % 13;
}
iskambil2[sira][kolon] = kart;
}
}
void Dagit(const int iskambil2[][13], const char *yuz2[], const char
*deger2[])
{
int kart, sira, kolon;
for(kart = 1; kart <=52; kart++)
for(sira = 0; sora <=3; sira++)
for(kolon = 0; kolon <=12;
kolon++)
if(islambil2[sira][kolon] =
= kart)
printf("%5s
nin %-8s%c", yuz2[kolon], deger2[sira], kart % 2 = = 0 ? '\n' : '\t');
}
|