-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path문서.txt
76 lines (53 loc) · 1.84 KB
/
문서.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
각 파일 별 설명 (돋움체나 굴림체로 보시길)
makefile
한꺼번에 컴파일하기 편하게 하려고 잘 만들어놨음.
파일 추가할 때마다 makefile 안에 형식 맞게 추가할 것.
< HCard.h & HCard.c >
화투 카드 클래스. 48장의 카드를 표현하는 구조체로 이루어져있다.
뒤에서 쓸 HDeck에서 사용하는 구조체이며, 직접 이걸 건드는 건 비추천.
enum은 형변환 문제 때문에 쓰지 않았고, #define으로 상수를 설정했다.
화투 카드들은 각 월 별로 4개의 패를 가지고 있으며 그 구성은 아래와 같다.
P : 피 (*는 쌍피)
A : 동물 (^ : 고도리)
R : 홍단, B : 청단, C : 초단, X : 소속없는 비 띠
G : 광
1 2 3 4 5 6 7 8 9 10 11 12
G A^ G A^ A A A G A* A G G'
R R R C C B C A^ B B P* A
P P P P P P P P P P P X
P P P P P P P P P P P P
게임을 시작하면 패의 원형(본체)을 만들어 배열에 넣는 함수를 실행시켜야 한다.
실제 게임에서는 카드들이 복사되는 것이 아닌, 카드들의 주소만 간접적으로 오고간다.
이는 구조체 복사로 포인터가 꼬이는 것을 방지하기 위함이다.
gkgkgkgkgkgkgkgkgkgk
~ 멤버 변수
int month
월을 저장한다. 헷갈리지 않게 1부터 시작하도록 설정했다.
int type
패의 종류를 저장한다. 아래에 있는 리터럴 상수로 써라.
H_NORM : 일반 피
H_ANIM : 동물(열끗)
H_LINE : 띠(다섯끗)
H_GWAN : 광
int five_type
띠의 종류를 저장한다. 아래에 있는 리터럴 상수 사용 바람.
HF_RED : 홍단
HF_BLU : 청단
HF_CHO : 초단
HF_ETC : 비에 띠 달린거
bool isDouble
쌍피인지 저장한다. 참고로 오리지널 고스톱에 쌍피는 2개 뿐이다.
true 혹은 false를 가진다.
~ 정적 함수
HCard *halloc(void);
void hfree(HCard *);
게임이 시작되면 화투에서 쓰이는 48장의 패를 만들어준다.
부팅 후 한 번만 사용해야하고, 프로그램이 종료되기 전 할당해제되어야 한다.
사용법은 아래와 같다.
HCard *CARD_SET = halloc();
CARD_SET[0].~~~
hfree(CARD_SET);
void hprint(HCard *);
디버깅용. 임의의 화투 패를 화면에 출력한다. 문자로 출력된다.
ex)
hprint(&CARD_SET[0]); // 콘솔에 Month : 1 Type : Gwang 이 출력