7 int width
; /* column alignment */
8 int height
; /* height of a card */
9 int overlap
; /* no of lines to draw when cards overlapp */
10 char** card
[_NUM_CARDS_internal
];
13 char** halfstack
; /* left half of stack (for spider) */
14 int* halfcard
; /* byte offset of right half of cards (for spider) */
15 int halfwidth
[3]; /* printed width of halfstack([0]) and halfcard([1]),
16 byte width of halfcard([2]) */
19 #define ULCARD(s, r) (char*[]) \
24 #define RULCARD(s, r) \
25 ULCARD("\033[91m" s "\033[39m", r)
26 #define BULCARD(s, r) \
27 ULCARD("\017\033[2m" s "\033[22m", r)//WARN: requires hack in print_hi()
28 #define USCARD(c) (char*[]){c}
29 #define RUSCARD(c) (char*[]){"\033[91m" c "\033[39m "}
30 #define BUSCARD(c) (char*[]){"\017\017\017\017\017" c "\017\017\017\017\017 "}
32 const struct scheme unicode_large_mono
= {
37 [NO_CARD
] = (char*[]){" "," "," "," "},
38 [CLU_A
] = ULCARD("♣","A"), [DIA_A
] = ULCARD("♦","A"),
39 [HEA_A
] = ULCARD("♥","A"), [SPA_A
] = ULCARD("♠","A"),
40 [CLU_2
] = ULCARD("♣","2"), [DIA_2
] = ULCARD("♦","2"),
41 [HEA_2
] = ULCARD("♥","2"), [SPA_2
] = ULCARD("♠","2"),
42 [CLU_3
] = ULCARD("♣","3"), [DIA_3
] = ULCARD("♦","3"),
43 [HEA_3
] = ULCARD("♥","3"), [SPA_3
] = ULCARD("♠","3"),
44 [CLU_4
] = ULCARD("♣","4"), [DIA_4
] = ULCARD("♦","4"),
45 [HEA_4
] = ULCARD("♥","4"), [SPA_4
] = ULCARD("♠","4"),
46 [CLU_5
] = ULCARD("♣","5"), [DIA_5
] = ULCARD("♦","5"),
47 [HEA_5
] = ULCARD("♥","5"), [SPA_5
] = ULCARD("♠","5"),
48 [CLU_6
] = ULCARD("♣","6"), [DIA_6
] = ULCARD("♦","6"),
49 [HEA_6
] = ULCARD("♥","6"), [SPA_6
] = ULCARD("♠","6"),
50 [CLU_7
] = ULCARD("♣","7"), [DIA_7
] = ULCARD("♦","7"),
51 [HEA_7
] = ULCARD("♥","7"), [SPA_7
] = ULCARD("♠","7"),
52 [CLU_8
] = ULCARD("♣","8"), [DIA_8
] = ULCARD("♦","8"),
53 [HEA_8
] = ULCARD("♥","8"), [SPA_8
] = ULCARD("♠","8"),
54 [CLU_9
] = ULCARD("♣","9"), [DIA_9
] = ULCARD("♦","9"),
55 [HEA_9
] = ULCARD("♥","9"), [SPA_9
] = ULCARD("♠","9"),
57 [CLU_X
] = ULCARD("♣","\b10"), [DIA_X
] = ULCARD("♦","\b10"),
58 [HEA_X
] = ULCARD("♥","\b10"), [SPA_X
] = ULCARD("♠","\b10"),
60 [CLU_X
] = ULCARD("♣","X"), [DIA_X
] = ULCARD("♦","X"),
61 [HEA_X
] = ULCARD("♥","X"), [SPA_X
] = ULCARD("♠","X"),
63 [CLU_J
] = ULCARD("♣","J"), [DIA_J
] = ULCARD("♦","J"),
64 [HEA_J
] = ULCARD("♥","J"), [SPA_J
] = ULCARD("♠","J"),
65 [CLU_Q
] = ULCARD("♣","Q"), [DIA_Q
] = ULCARD("♦","Q"),
66 [HEA_Q
] = ULCARD("♥","Q"), [SPA_Q
] = ULCARD("♠","Q"),
67 [CLU_K
] = ULCARD("♣","K"), [DIA_K
] = ULCARD("♦","K"),
68 [HEA_K
] = ULCARD("♥","K"), [SPA_K
] = ULCARD("♠","K"),
70 .facedown
= (char*[]){
76 .placeholder
= (char*[]){
82 .halfstack
= (char*[]) {
88 .halfcard
= (int[]){6, 6, 4, 6},
89 .halfwidth
= {2, 3, 999},
91 const struct scheme unicode_large_color
= {
96 [NO_CARD
] = (char*[]){" "," "," "," "},
97 [CLU_A
] = BULCARD("♣","A"), [DIA_A
] = RULCARD("♦","A"),
98 [HEA_A
] = RULCARD("♥","A"), [SPA_A
] = BULCARD("♠","A"),
99 [CLU_2
] = BULCARD("♣","2"), [DIA_2
] = RULCARD("♦","2"),
100 [HEA_2
] = RULCARD("♥","2"), [SPA_2
] = BULCARD("♠","2"),
101 [CLU_3
] = BULCARD("♣","3"), [DIA_3
] = RULCARD("♦","3"),
102 [HEA_3
] = RULCARD("♥","3"), [SPA_3
] = BULCARD("♠","3"),
103 [CLU_4
] = BULCARD("♣","4"), [DIA_4
] = RULCARD("♦","4"),
104 [HEA_4
] = RULCARD("♥","4"), [SPA_4
] = BULCARD("♠","4"),
105 [CLU_5
] = BULCARD("♣","5"), [DIA_5
] = RULCARD("♦","5"),
106 [HEA_5
] = RULCARD("♥","5"), [SPA_5
] = BULCARD("♠","5"),
107 [CLU_6
] = BULCARD("♣","6"), [DIA_6
] = RULCARD("♦","6"),
108 [HEA_6
] = RULCARD("♥","6"), [SPA_6
] = BULCARD("♠","6"),
109 [CLU_7
] = BULCARD("♣","7"), [DIA_7
] = RULCARD("♦","7"),
110 [HEA_7
] = RULCARD("♥","7"), [SPA_7
] = BULCARD("♠","7"),
111 [CLU_8
] = BULCARD("♣","8"), [DIA_8
] = RULCARD("♦","8"),
112 [HEA_8
] = RULCARD("♥","8"), [SPA_8
] = BULCARD("♠","8"),
113 [CLU_9
] = BULCARD("♣","9"), [DIA_9
] = RULCARD("♦","9"),
114 [HEA_9
] = RULCARD("♥","9"), [SPA_9
] = BULCARD("♠","9"),
116 [CLU_X
] = BULCARD("♣","\b10"), [DIA_X
] = RULCARD("♦","\b10"),
117 [HEA_X
] = RULCARD("♥","\b10"), [SPA_X
] = BULCARD("♠","\b10"),
119 [CLU_X
] = BULCARD("♣","X"), [DIA_X
] = RULCARD("♦","X"),
120 [HEA_X
] = RULCARD("♥","X"), [SPA_X
] = BULCARD("♠","X"),
122 [CLU_J
] = BULCARD("♣","J"), [DIA_J
] = RULCARD("♦","J"),
123 [HEA_J
] = RULCARD("♥","J"), [SPA_J
] = BULCARD("♠","J"),
124 [CLU_Q
] = BULCARD("♣","Q"), [DIA_Q
] = RULCARD("♦","Q"),
125 [HEA_Q
] = RULCARD("♥","Q"), [SPA_Q
] = BULCARD("♠","Q"),
126 [CLU_K
] = BULCARD("♣","K"), [DIA_K
] = RULCARD("♦","K"),
127 [HEA_K
] = RULCARD("♥","K"), [SPA_K
] = BULCARD("♠","K"),
129 .facedown
= (char*[]){
131 "│\033[94m▚▚▚\033[39m│",
132 "│\033[94m▚▚▚\033[39m│",
135 .placeholder
= (char*[]){
141 .halfstack
= (char*[]) {
143 "│\033[94m▚\033[39m",
144 "│\033[94m▚\033[39m",
147 .halfcard
= (int[]){6, 16, 4, 6},
148 .halfwidth
= {2, 3, 999},
150 const struct scheme unicode_small_mono
= {
155 [NO_CARD
] = (char*[]){" "},
156 [CLU_A
] = USCARD("🃑 "), [DIA_A
] = USCARD("🃁 "),
157 [HEA_A
] = USCARD("🂱 "), [SPA_A
] = USCARD("🂡 "),
158 [CLU_2
] = USCARD("🃒 "), [DIA_2
] = USCARD("🃂 "),
159 [HEA_2
] = USCARD("🂲 "), [SPA_2
] = USCARD("🂢 "),
160 [CLU_3
] = USCARD("🃓 "), [DIA_3
] = USCARD("🃃 "),
161 [HEA_3
] = USCARD("🂳 "), [SPA_3
] = USCARD("🂣 "),
162 [CLU_4
] = USCARD("🃔 "), [DIA_4
] = USCARD("🃄 "),
163 [HEA_4
] = USCARD("🂴 "), [SPA_4
] = USCARD("🂤 "),
164 [CLU_5
] = USCARD("🃕 "), [DIA_5
] = USCARD("🃅 "),
165 [HEA_5
] = USCARD("🂵 "), [SPA_5
] = USCARD("🂥 "),
166 [CLU_6
] = USCARD("🃖 "), [DIA_6
] = USCARD("🃆 "),
167 [HEA_6
] = USCARD("🂶 "), [SPA_6
] = USCARD("🂦 "),
168 [CLU_7
] = USCARD("🃗 "), [DIA_7
] = USCARD("🃇 "),
169 [HEA_7
] = USCARD("🂷 "), [SPA_7
] = USCARD("🂧 "),
170 [CLU_8
] = USCARD("🃘 "), [DIA_8
] = USCARD("🃈 "),
171 [HEA_8
] = USCARD("🂸 "), [SPA_8
] = USCARD("🂨 "),
172 [CLU_9
] = USCARD("🃙 "), [DIA_9
] = USCARD("🃉 "),
173 [HEA_9
] = USCARD("🂹 "), [SPA_9
] = USCARD("🂩 "),
174 [CLU_X
] = USCARD("🃚 "), [DIA_X
] = USCARD("🃊 "),
175 [HEA_X
] = USCARD("🂺 "), [SPA_X
] = USCARD("🂪 "),
176 [CLU_J
] = USCARD("🃛 "), [DIA_J
] = USCARD("🃋 "),
177 [HEA_J
] = USCARD("🂻 "), [SPA_J
] = USCARD("🂫 "),
178 [CLU_Q
] = USCARD("🃝 "), [DIA_Q
] = USCARD("🃍 "),
179 [HEA_Q
] = USCARD("🂽 "), [SPA_Q
] = USCARD("🂭 "),
180 [CLU_K
] = USCARD("🃞 "), [DIA_K
] = USCARD("🃎 "),
181 [HEA_K
] = USCARD("🂾 "), [SPA_K
] = USCARD("🂮 "),
183 .facedown
= (char*[]){"🂠 "},
184 .placeholder
= (char*[]){"❲❳"},
185 .halfstack
= (char*[]){"🂠"},
186 .halfcard
= (int[]){0},
187 .halfwidth
= {1, 1, 4},
189 const struct scheme unicode_small_color
= {
194 [NO_CARD
] = (char*[]){" "},
195 [CLU_A
] = BUSCARD("🃑"), [DIA_A
] = RUSCARD("🃁"),
196 [HEA_A
] = RUSCARD("🂱"), [SPA_A
] = BUSCARD("🂡"),
197 [CLU_2
] = BUSCARD("🃒"), [DIA_2
] = RUSCARD("🃂"),
198 [HEA_2
] = RUSCARD("🂲"), [SPA_2
] = BUSCARD("🂢"),
199 [CLU_3
] = BUSCARD("🃓"), [DIA_3
] = RUSCARD("🃃"),
200 [HEA_3
] = RUSCARD("🂳"), [SPA_3
] = BUSCARD("🂣"),
201 [CLU_4
] = BUSCARD("🃔"), [DIA_4
] = RUSCARD("🃄"),
202 [HEA_4
] = RUSCARD("🂴"), [SPA_4
] = BUSCARD("🂤"),
203 [CLU_5
] = BUSCARD("🃕"), [DIA_5
] = RUSCARD("🃅"),
204 [HEA_5
] = RUSCARD("🂵"), [SPA_5
] = BUSCARD("🂥"),
205 [CLU_6
] = BUSCARD("🃖"), [DIA_6
] = RUSCARD("🃆"),
206 [HEA_6
] = RUSCARD("🂶"), [SPA_6
] = BUSCARD("🂦"),
207 [CLU_7
] = BUSCARD("🃗"), [DIA_7
] = RUSCARD("🃇"),
208 [HEA_7
] = RUSCARD("🂷"), [SPA_7
] = BUSCARD("🂧"),
209 [CLU_8
] = BUSCARD("🃘"), [DIA_8
] = RUSCARD("🃈"),
210 [HEA_8
] = RUSCARD("🂸"), [SPA_8
] = BUSCARD("🂨"),
211 [CLU_9
] = BUSCARD("🃙"), [DIA_9
] = RUSCARD("🃉"),
212 [HEA_9
] = RUSCARD("🂹"), [SPA_9
] = BUSCARD("🂩"),
213 [CLU_X
] = BUSCARD("🃚"), [DIA_X
] = RUSCARD("🃊"),
214 [HEA_X
] = RUSCARD("🂺"), [SPA_X
] = BUSCARD("🂪"),
215 [CLU_J
] = BUSCARD("🃛"), [DIA_J
] = RUSCARD("🃋"),
216 [HEA_J
] = RUSCARD("🂻"), [SPA_J
] = BUSCARD("🂫"),
217 [CLU_Q
] = BUSCARD("🃝"), [DIA_Q
] = RUSCARD("🃍"),
218 [HEA_Q
] = RUSCARD("🂽"), [SPA_Q
] = BUSCARD("🂭"),
219 [CLU_K
] = BUSCARD("🃞"), [DIA_K
] = RUSCARD("🃎"),
220 [HEA_K
] = RUSCARD("🂾"), [SPA_K
] = BUSCARD("🂮"),
222 .facedown
= (char*[]){"🂠 "},
223 .placeholder
= (char*[]){"❲❳"},
224 .halfstack
= (char*[]){"🂠"},
225 .halfcard
= (int[]){0},
226 .halfwidth
= {1, 1, 14},