-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgame.c
162 lines (144 loc) · 2.61 KB
/
game.c
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include "game.h"
#include "util.h"
void gLoop(int mapCode) {
int playing = 1;
if (mapCode == 0) {
game1main();
}
else if (mapCode == 1) {
game2main();
}
else if (mapCode == 2) {
game3main();
}
while (playing) {
switch (keyControl()) {
case UP:
break;
case DOWN:
break;
case RIGHT:
break;
case LEFT:
break;
case QUIT:
playing = 0;
}
}
}
int keyControl() {
char temp = getch();
if (temp == 72)
return UP;
else if (temp == 75)
return LEFT;
else if (temp == 77)
return RIGHT;
else if (temp == 80)
return DOWN;
else if (temp == ' ')
return SUBMIT;
}
void titleDraw() {
printf("\n\n\n\n");
gotoxy(23, 5);
printf("Tetris start.");
}
int menuDraw() {
int x = 24;
int y = 12;
gotoxy(x - 2, y);
printf("> 게 임 시 작");
gotoxy(x, y + 1);
printf("게 임 정 보");
gotoxy(x, y + 2);
printf(" 종료 ");
while (1) {
int n = keyControl();
switch (n) {
case UP: {
if (y > 12) {
gotoxy(x - 2, y);
printf(" ");
gotoxy(x - 2, --y);
printf(">");
}
break;
}
case DOWN: {
if (y < 14) {
gotoxy(x - 2, y);
printf(" ");
gotoxy(x - 2, ++y);
printf(">");
}
break;
}
case SUBMIT: {
return y - 12;
}
}
}
}
int maplistDraw() {
int x = 20;
int y = 11;
system("cls");
printf("\n\n\n\n\n");
printf("\t\t [ 모 드 선 택 ]");
gotoxy(x - 2, y);
printf("> No 1. 구구단을 외우자! \n");
gotoxy(x, y + 1);
printf("No 2. 타임어택 모드 \n");
gotoxy(x, y + 2);
printf("No 3. 랜덤 아이템모드 \n");
gotoxy(x, y + 3);
printf("뒤로");
while (1) {
int n = keyControl();
switch (n) {
case UP: {
if (y > 11) {
gotoxy(x - 2, y);
printf(" ");
gotoxy(x - 2, --y);
printf(">");
}
break;
}
case DOWN: {
if (y < 14) {
gotoxy(x - 2, y);
printf(" ");
gotoxy(x - 2, ++y);
printf(">");
}
break;
}
case SUBMIT: {
return y - 11;
}
}
}
}
void infoDraw() {
system("cls");
printf("\n\n");
printf("\t\t [ 조 작 법]\n\n");
printf("\t\t △ : Hard Drop\n");
printf("\t\t ◁ ▷ : Left / Right\n");
printf("\t\t ▽ : Soft Drop\n");
printf("\t 화살표키를 제외한 모든 키: Shift\n\n");
printf(" ============ 총 3가지 모드 ============\n");
printf(" No 1. 구구단을 외우자! \n");
printf(" No 2. 타임어택 모드 \n");
printf(" No 3. 랜덤 아이템모드 \n");
printf(" =======================================\n\n");
printf("\t개발자: 8조 임지민 이주호 이승준 최정우\n\n");
printf("\t스페이스바를 누르면 메인화면으로 이동합니다.\n");
while (1) {
if (keyControl() == SUBMIT) {
break;
}
}
}