다른 사람과 비교하니 구조가 너무 다르군... 나만 링크드 리스트로 짰나...
? : 문이 이렇게 좋은줄 이제서야 알다니.
아무튼 미완성. 생각도 안하고 소스 짜고...
컴파일러도 없어서 메모장에서 작업하고...
조금만 더 짜면 될테지만 미완성 부분 완성시켜도 메모장에서 소스 짜버려 제대로 돌아갈지도 의문이고...
그래서 나온 버그 잡을바에 새로 코딩하는게 나을테고 !@#!$$@#^%!^$!%
아무튼... 밥이나 먹자. 사랑스러운 나의 밥.
~cpp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int check(int array[]);
void print_card();
typedef struct _home {
struct _home *next;
struct _home *prev;
int num;
char name[20];
} HOME;
HOME *head;
head = (HOME *)malloc(sizeof(HOME));
main(int argc, char *argv[]){
FILE *fp;
int i, j;
HOME *buf = head;
int array[52]; // 다음 체크할 배열.
int count; // 총 몇 번 체크해야하는가?
char itoa_buf[3];
if(argc != 2)
fprintf(stderr, "Usage: %s input_file", argv[0]), exit(1);
if((fp=fopen(argv[1], "ra") == NULL)
fprintf(stderr, "fopen error(%s)", argv[1]), exit(1);
strcpy(head->name, "2 of Clubs");
for(j=1; j<=4; j++){
for(i=1; i<=13; i++){
if(i==1 && j ==1) continue;
buf->next = (HOME *)malloc(sizeof(HOME));
buf->next->prev = buf;
buf = buf->next;
itoa(itoa_buf, i+1, 10);
// 카드 초기화.
sprintf(buf->name, "%s of %s",
i==10?"Jack":i==11?"Queen":i==12?"King":i==13?"Ace":itoa_buf,
j==1?"Clubs":j==2?"Diamonds":j==3?"Hearts":"Spades");
}
}
// 52개의 순서 초기화. (따로 밖으로 내는게 편하다는 생각이 든다.)
buf = head;
for(i=0; i<52; i++){
buf.num = array[i];
buf = buf->next;
}
############################################
// (count - 1) 번 체크 (미완성)
// File에서 array로 바뀐 것을 읽어와 함수를 수행 하는 것을 count-1번 반복한다.
for(i=1; i<count; i++)
{
for(j=0; j<52; j++)
array[j] = ;
check(array);
}
############################################
exit(0); // 우아한 종료!
}
############################################
// buf와 array를 비교한다. (미완성)
// 달라진곳은 save 포인터에 주소를 저장하고 다시 체크를 시작해 달라진곳이 나오면 자리를 교체한다.
// 링크만 교체 시킨다.
int check(int array[])
{
HOME *buf = head;
HOME *save = head;
}
############################################
// 간단한 출력.
void print_card()
{
int i;
HOME *buf = head;
for(i=0; i<52; i++){
printf("%s\n", buf->name);
buf=buf->next;
}
}