C’de kart karma ve dağıtma programı
Yazı Tarihi : 31 Mayıs 2008
Yüksek performanslı kart karma ve dağıtma programı kaynak kodları. C dilinde yazılmış olan Yüksek performanslı kart karma ve dağıtma programı kaynak kodları. Göstericiler, yapılar kullanılarak yüksek performans hedeflenmiştir.
//Boteki.com
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.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”, “iki”, “uc”,
“dort”, “bes”,
“alti”, “yedi”, “sekiz”,
“dokuz”, “on”,
“vale”, “kiz”, “papaz”};
const char *takim[] = { “kupa”, “karo”,
“sinek”, “maca”};
srand( time( NULL ) );
desteDoldur( deste, taraf, takim );
desteyiKar( deste );
dagit( deste );
getch();
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[ j ] = 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’ );
}






Bu soruyu görünce yorum yazmadan geçemedim…
Mantığı biraz karışık bir soru…