C 간단한 질문 좀 풀어 주세요..;;

익명 사용자의 이미지

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

void shuffle(int [][13]);

void deal(const int [][13], const char*[],const char*[]);

int main()
{
	const char *suit[4]={"Hearts","Diamonds","Clubs","spades"};
	const char *face[13]={"Ace","Deuce","three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King"};
	int deck[4][13]={0};
	srand(time(0));
	shuffle(deck);
	deal(deck,face,suit);
	return 0;
}

void shuffle(int wDeck[][13])
{
	int row, column,card;
	for(card=1;card<=52;card++)
	{
		do
		{
			row=rand()%4;
			column=rand()%13;
		} 
		while(wDeck[row][column]!=0);
		wDeck[row][column]=card;
	}
}

void deal(const int wDeck[][13],const char *wFace[], const char *wSuit[])
{
	int card, row, column;
	for(card=1;card<=52;card++)
		for(row=0;row<=3;row++)
			for(column=0;column<=12;column++)
				if(wDeck[row][column]==card)
					printf("%5s of %-8s%c",wFace[column], wSuit[row],card%2==0?'\n':'\t');
} 

이 소스에서..;;

shuffle 함수와 deal 함수, 그리고 main 함수의

목적과, parameter, 동작 원리 그리고 결과 를 정리좀 해 주셨으면 감사 하겠습니다.. ^^;;

hurryon의 이미지

ㅡ.ㅡ;;

xyhan의 이미지

카드 놀이 소스네요..
일단
void shuffle(int [][13]);
은 단순히 모든 4*13 개의 카드를
랜덤의로 석습미다..
자기가 들어갈 곳이 0이면 do while 루프를
빠져나와..
값을 집어 넣습미다..
그리고
void deal(const int [][13], const char*[],const char*[]);
함수는
단순히 순서대로 찍히는 결과가 나오는것 같은데..
이상하네..? 직접 돌려보세요..

============================================================

선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스-
의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-

============================================================