forked from Kaylians/Implementacion_HWFC_C_PlusPlus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDebugUtility.cpp
117 lines (110 loc) · 4.21 KB
/
DebugUtility.cpp
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
#include "Pixel.h"
#include "Pattern.h"
#include "Main.h"
#include "DebugUtility.h"
#include <iostream>
#include <vector>
#include <string>
#include <chrono>
#include <thread>
#include <algorithm>
bool SearchRPP(std::vector<int> RPP, int target) {
for (int i = 0; i < RPP.size(); i++) {
if (target == RPP[i]) {
return true;
}
}
return false;
}
bool searchVectorInt(const std::vector<int>& vec, int value) {
auto iter = std::find(vec.begin(), vec.end(), value);
if (iter != vec.end()) {
return true;
}
else {
return false;
}
}
//funcion para detener la ejecucion
void stopExecute(int times, std::string texto) {
ControlString(texto);
std::this_thread::sleep_for(std::chrono::milliseconds(times));
}
//funciona para imprimir el mapa que son valores int
void printMap(const std::vector<std::vector<int>>& unCollapseMap, int size, int posibi, std::vector<int>& RPP, bool MarkRPP) {
MarkRPP = true;
for (int i = -1; i < size; i++) {
if (i == -1) {
std::cout << BLUE << " X" << RESET << "||";
for (int z = 0; z < size; z++) {
if (z < 10) {
std::cout << BLUE << " " << z << RESET << "||";
}
else {
std::cout << BLUE << z << RESET << "||";
}
}
}
else {
for (int j = -1; j < size; j++) {
if (j == -1) {
if (i < 10) {
std::cout << " " << BLUE << i << RESET << "||";
}
else {
std::cout << BLUE << i << RESET << "||";
}
}
else if (unCollapseMap[j + i * size].size() == 1) {
if (SearchRPP(RPP, j + i * size) && MarkRPP) {
if (unCollapseMap[j + i * size].front() > 9)
std::cout << PURPLE << unCollapseMap[j + i * size].front() << RESET << "||";
else
std::cout << PURPLE << unCollapseMap[j + i * size].front() << "*" << RESET << "||";
}
else {
if (unCollapseMap[j + i * size].front() == 0)
std::cout << GREEN << unCollapseMap[j + i * size].front() << "*" << RESET << "||";
else if (unCollapseMap[j + i * size].front() > 9)
std::cout << RED << unCollapseMap[j + i * size].front() << RESET << "||";
else
std::cout << RED << unCollapseMap[j + i * size].front() << "*" << RESET << "||";
}
}
else if (unCollapseMap[j + i * size].size() == posibi) {
if (SearchRPP(RPP, j + i * size) && MarkRPP) {
std::cout << "()" << "||";
}else
std::cout << " " << "||";
}
else if (unCollapseMap[j + i * size].size() < posibi) {
if (unCollapseMap[j + i * size].size() == 0)
std::cout << RED << "!X" << RESET << "||";
else if(unCollapseMap[j + i * size].size() > 9)
std::cout << YELLOW << unCollapseMap[j + i * size].size() << RESET << "||";
else
std::cout << YELLOW << unCollapseMap[j + i * size].size() << "*" << RESET << "||";
}
else
std::cout << "X||";
}
}
std::cout << std::endl;
}
std::cout << "---------------" << std::endl;
}
void ControlPoint(int i) {
std::cout << PURPLE << "Control point " << YELLOW<< i << RESET << std::endl;
}
void ControlPointNoText(int i) {
std::cout << RED << i << RESET << std::endl;
}
void ControlString(std::string text) {
std::cout << YELLOW << text << RESET << std::endl;
}
void PrintPixelCoo(Pattern patt) {
for (int element : patt.pixelesCoo) {
std::cout << element;
}
std::cout << std::endl;
}