-
Notifications
You must be signed in to change notification settings - Fork 0
/
tile.cpp
80 lines (75 loc) · 1.55 KB
/
tile.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
#include <iostream>
#include <iomanip>
#include "tile.h"
using namespace std;
Tile::Tile(int v) {
value = v;
set_color();
}
/* * * * * * * * * * * * * * * * *
* Draw my value in my color, left-justified.
*/
void Tile::draw() {
cout << left;
cout << "| " << "\033[38;5;" << color << "m" << setw(6) << value << "\033[38;5;15m" << "|";
// TODO draw using hex color
}
/* * * * * * * * * * * * * * * * *
* Double value and update color accordingly
*/
void Tile::increase() {
value = value << 1;
set_color();
}
int Tile::get_value() {
return value;
}
void Tile::set_color() {
switch(value) {
case 2:
color = "196";
break;
case 4:
color = "208";
break;
case 8:
color = "227";
break;
case 16:
color = "114";
break;
case 32:
color = "35";
break;
case 64:
color = "33";
break;
case 128:
color = "21";
break;
case 256:
color = "54";
break;
case 512:
color = "125";
break;
case 1024:
color = "200";
break;
case 2048:
color = "217";
break;
case 4096:
color = "189";
break;
case 8192:
color = "117";
break;
case 16384:
color = "177";
break;
default:
color = "15";
break;
}
}