-
Notifications
You must be signed in to change notification settings - Fork 0
/
game_display.h
83 lines (59 loc) · 2.89 KB
/
game_display.h
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
#ifndef game_display
#define game_display
#include"game_logic.h"
#include"conio2.h"
#include<cstdlib>
#define L_WIDTH 25
#define L_HEIGHT 17
/*Punkt zaczepny okna z legendą.*/
#define L_ORIGIN_X 2
#define L_ORIGIN_Y 2
/*Wymiary okna z podpowiedziami.*/
#define T_WIDTH 32
#define T_HEIGHT 8
/*Wybrałem jasno-niebieski jako podstawowy kolor tła.*/
#define DEF_BG_COLOR 1
/*Wymiary i punkt zaczepny okienka wyświetlanego przy pobieraniu ciągu znaków od gracza.*/
#define INPUT_WINDOW_ORIGIN_X 10
#define INPUT_WINDOW_ORIGIN_Y 4
#define INPUT_WINDOW_WIDTH 40
#define INPUT_WINDOW_HEIGHT 3
/*Znaki ascii tzw. pipe'y*/
#define LT_BORDER "\xC9"
#define LB_BORDER "\xC8"
#define RT_BORDER "\xBB"
#define RB_BORDER "\xBC"
#define HOR_BORDER "\xCD"
#define VER_BORDER "\xBA"
/*Funkcja odpowiedzialna za wywoływanie funkcji dotyczących rysowania ekranu.*/
void drawGameScreen(flags& gameFlags, board& gamaeBoard, coords legend_c, coords global_c);
/*Wyświetla obramowanie w podanych współrzędnych o podanych wymiarach i kolorze*/
void drawBorder(int x, int y, int size_w, int size_h, int color);
/*Podświetla pole na planszy w podanym kolorze*/
void drawBlankOnPlane(const board* gameBoard, int x, int y, int color);
/*Wyświetla okno z legendą w miejscu o współrzędnych x,y.
kolor obramowania podany w parametrze color.*/
void drawLegend(coords global, int color, flags& gameFlags);
/*Umieszcza tekst w podanych wspolrzednych i przechodzi do nowej linii.*/
void putTextLine(coords *global, char *str);
/*Przy wyświetlaniu zakolorowuje opcję włączone.*/
void putTextByFlag(coords *global, bool flag, char* button, char* body);
/*Wyświetla okno z prostymi podpowiedziami*/
void drawSimpleTip(coords global, coords relative, const board* gameBoard, int color);
/*Funkcja uzupełniająca do drawSimpleTip, sprawdza zasady 1,2,3 w polu o współrzędnych rel_ dla wartośći state*/
char drawTipFor(int rel_x, int rel_y, int* x, int* y, const board* gameBoard, states state);
/*Kolejna podfunkcja, zajmuje się obsługą poszczególnych zasad i zamiane ich na komunikaty
rule_val to wartośc zwrócona przed funkcje checkRule 1, 2 lub 3
int rule przyjmuje wartości 1, 2, 3 aby program wiedział który tekst wyświetlić.*/
void tipErrorMsg(int* x, int* y, int rule_val, int rule, char* buff);
/*Wyświetla wiadomość błędu w miejscu o współrzędnych x,y i treści str*/
void showErrMsg(int x, int y, const char* str);
/*Wyświetla przy planszy liczbę zer i jedynek w danym wierszu/kolumnie.*/
void drawRule2Counter(const board* gameBoard);
/*Jeżeli dokończenie rozgrywki nie jest możliwe, wyświetla komunikat o tym informujący.*/
void showIfSolvable(const board* gameBoard);
/*Wyświetla okienko z zapytaniem i pobiera dane od użytkownika, maksymalnie 8 znakowy ciąg, res powinno byc tablicą min. 9 elementową.*/
void getInput(char* query, char* res, bool numerical);
/*Wywołuje funkcję showSolution i interpretuje jej wynik*/
void checkSolution(board* gameBoard);
#endif