C ile Kart Karma ve Dağıtma Uygulaması


Selamlar… C dili ile struct yapısı konusunda alıştırmalar yapıyordum. Şöyle bir uygulama oluşturdum. Uygulama şu işe yarıyor. Kartları karıyor ve dağıtıyor. Yüksek performanslı bir şekilde hemde. İsterseniz kodları vereyim

// kart.c dosyamız
// yapıları kullanarak kartları karıcaz ve dağıtacağız
// CWSuskun

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

struct kart {
const char *taraf;
const char *takim;
};

typedef struct kart Kart;

void desteDoldur(Kart * const, const char *[],
const char *[] );
void desteyiKar (Kart * const );
void dagit (const Kart * const );

int main()
{
Kart deste[ 52 ];
const char *taraf [] = { "As", "İki", "Üç",
"Dört", "Beş",
"Altı", "Yedi", "Sekiz",
"Dokuz", "On",
"Vale", "Kız", "Papaz"};
const char *takim [] = { "Kupa", "Karo",
"Sinek", "Maça"};

srand(time(NULL));

desteDoldur(deste, taraf, takim );
desteyiKar(deste );
dagit(deste );
return 0;
}

void desteDoldur( Kart * const wDeste, const char * wTaraf[],
const char * wTakim[])
{
int i;

for (i = 0; i <= 51; i++){
wDeste[ i ].taraf = wTaraf[ i % 13];
wDeste[ i ].takim = wTakim[ i / 13];
}
}

void desteyiKar(Kart * const wDeste )
{
int i, j;
Kart gecici;

for (i = 0; i <= 51; i++){
j = rand() % 52;
gecici = wDeste[ i ];
wDeste[ i ] = wDeste[ j ];
wDeste[ i ] = gecici;
}
}

void dagit(const Kart * const wDeste )
{
int i;

for ( i = 0; i <= 51; i++)
printf("%5s %-8s%c", wDeste[ i ].takim,
wDeste[ i ].taraf,
(i + 1)% 2 ? '\t' : '\n' );
}

Not: Parazitler çıkacak (: Kodlar benim degil ogreniyorum paylasiyorum kendim yaziyorum. Kimse de benim diye sahiplenmiyor (:.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s