-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTrafficLightDrawer.cpp
92 lines (79 loc) · 1.84 KB
/
TrafficLightDrawer.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
#include <iostream>
#include "TrafficLightDrawer.h"
using std::cout;
void TrafficLightDrawer::showControllInfo()
{
cout << "The Traffic Light @mkushnikov\n";
cout << "Press P to pause\n";
cout << "Press S to start\n";
cout << "Press E to exit\n";
cout << "Enjoy!\n";
cout << "\n";
}
void TrafficLightDrawer::clearConsole()
{
system("cls");
}
const std::vector<std::string_view> TrafficLightDrawer::emptyCircle_ = {
" --- ",
" / \\ ",
" / \\ ",
"| |",
" \\ / ",
" \\ / ",
" --- "};
const std::vector<std::string_view> TrafficLightDrawer::redCircle_ = {
" --- ",
" / RRR \\ ",
" / RRRRR \\ ",
"| RRRRRRR |",
" \\ RRRRR / ",
" \\ RRR / ",
" --- "};
const std::vector<std::string_view> TrafficLightDrawer::yellowCircle_ = {
" --- ",
" / YYY \\ ",
" / YYYYY \\ ",
"| YYYYYYY |",
" \\ YYYYY / ",
" \\ YYY / ",
" --- "};
const std::vector<std::string_view> TrafficLightDrawer::greenCircle_ = {
" --- ",
" / GGG \\ ",
" / GGGGG \\ ",
"| GGGGGGG |",
" \\ GGGGG / ",
" \\ GGG / ",
" --- "};
void TrafficLightDrawer::showLight(const std::vector<std::string_view> &circle)
{
for (auto line : circle)
{
cout << line << "\n";
}
}
void TrafficLightDrawer::drawEmpty()
{
showLight(emptyCircle_);
showLight(emptyCircle_);
showLight(emptyCircle_);
}
void TrafficLightDrawer::drawRed()
{
showLight(redCircle_);
showLight(emptyCircle_);
showLight(emptyCircle_);
}
void TrafficLightDrawer::drawYellow()
{
showLight(emptyCircle_);
showLight(yellowCircle_);
showLight(emptyCircle_);
}
void TrafficLightDrawer::drawGreen()
{
showLight(emptyCircle_);
showLight(emptyCircle_);
showLight(greenCircle_);
}