-
Notifications
You must be signed in to change notification settings - Fork 1
/
output.c
144 lines (126 loc) · 3.05 KB
/
output.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
#include "types.h"
void reset_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
void red_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
}
void green_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
}
void yellow_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
}
void blue_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE);
}
void purple_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 5);
}
void cyan_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 3);
}
void bright_white_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
}
void pink_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 13);
}
void bright_red_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
}
void bright_cyan_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
}
void bright_green_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 10);
}
void bright_blue_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9);
}
void dark_yellow_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 6);
}
void grey_color()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 8);
}
void print_connect_four()
{
blue_color();
printf("\t\t C O N N E C T");
red_color();
printf(" F O U R\n\n");
reset_color();
}
void underscore(unsigned long long width)
{
for (unsigned long long i = 0; i < width; i++)
{
printf("----");
}
printf("-\n");
}
void printArray(configurations config, char board[][config.width], player p1, player p2)
{
print_connect_four(); // game title
printf("\n\t\t");
yellow_color();
for (int i = 1; i < config.width + 1; i++)
{
printf(" %d ", i);
}
printf("\n");
printf("\t\t");
underscore(config.width);
reset_color();
SetConsoleOutputCP(CP_UTF8); // for the │ symbol
for (unsigned long long i = 0; i < config.height; i++) // for each row
{
printf("\t\t");
yellow_color();
printf("│");
reset_color();
for (unsigned long long j = 0; j < config.width; j++) // for each column
{
if (board[i][j] == 'X')
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), p1.color);
printf(" ● ");
reset_color();
}
else if (board[i][j] == 'O')
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), p2.color);
printf(" ● ");
reset_color();
}
else
{
printf(" ");
}
yellow_color();
printf("│");
reset_color();
}
printf("\n");
printf("\t\t");
yellow_color();
underscore(config.width);
reset_color();
}
}