-
Notifications
You must be signed in to change notification settings - Fork 0
/
bombDiffusal.cpp
105 lines (101 loc) · 2.42 KB
/
bombDiffusal.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
#include <iostream>
using namespace std;
/* Code for r/DailyProgrammer Challenge 293.
If you cut a white cable you can't cut white or black cable.
If you cut a red cable you have to cut a green one
If you cut a black cable it is not allowed to cut a white, green or orange one
If you cut a orange cable you should cut a red or black one
If you cut a green one you have to cut a orange or white one
If you cut a purple cable you can't cut a purple, green, orange or white cable
*/
int colorToNumber(string color){
// Converts the colors to intergers.
// White = 1, Red = 2, Black = 3, Orange = 4,
// Green = 5, Purple = 6.
int colorN;
if(color == "White" || "white"){
colorN = 1;
} else if(color == "Red" || "red"){
colorN = 2;
} else if(color == "Black" || "black"){
colorN = 3;
} else if(color == "Orange" || "orange"){
colorN = 4;
} else if(color == "Green" || "green"){
colorN = 5;
} else if(color == "Purple" || "purple"){
colorN = 6;
}
return colorN;
}
int rules(int current, int next){ //Decides if the next move is correct.
int missionStatus;
switch(current){
case 1: // White
if(next == 1 || 3){
missionStatus = 0;
} else{
missionStatus = 1;
};
break;
case 2: // Red
if(next != 5){
missionStatus = 0;
} else{
missionStatus = 1;
};
break;
case 3: // Black
if(next == 1 || 4 || 5){
missionStatus = 0;
} else {
missionStatus = 1;
};
break;
case 4: // Orange
if(next != 2 || 3){
missionStatus = 0;
} else{
missionStatus = 1;
};
break;
case 5: // Green
if(next != 4 || 1){
missionStatus = 0;
} else{
missionStatus = 1;
};
break;
case 6: // Purple
if(next == 6 || 5 || 4 || 1){
missionStatus = 0;
} else{
missionStatus = 1;
};
break;
};
return missionStatus;
}
int main(){
int c1,c2,missionStatus;
int x = 1;
string color = "";
string missionFailed = "Terrorists Win.";
string missionCompleted = "Counter-Terrorists Win.";
cout << "Bomb Defusal\n" << "Type what color wire to cut on each line\n";
cin >> color;
c1 = colorToNumber(color);
do{
cin >> color;
c2 = colorToNumber(color);
missionStatus = rules(c1,c2);
c2 = c1;
x++;
}while(missionStatus != 0 || x < 4);
if(missionStatus == 1){
cout << missionCompleted << endl;
} else {
cout << missionFailed << endl;
}
return 0;
}