-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
127 lines (112 loc) · 3.84 KB
/
Copy pathscript.js
File metadata and controls
127 lines (112 loc) · 3.84 KB
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
118
119
120
121
122
123
124
125
126
127
const ALL_TABLE_ELEMENTS = document.querySelectorAll(".game_board th button");
const RED_BT = document.querySelector("#team_red_bt");
const BLUE_BT = document.querySelector("#team_blue_bt");
const NEUTRAL_BT = document.querySelector("#neutral_bt");
const DEATH_BT = document.querySelector("#death_bt");
const NEW_GAME_BT = document.querySelector("#new_game_bt");
const START_GAME_BT = document.querySelector("#start_game_bt");
const CLEAR_BT = document.querySelector("#clear_bt");
const GENERATE_BT = document.querySelector("#generate_bt");
var selected = null;
function initialSetUp() {
disableBoard(true);
document.querySelector("#game_title").innerHTML = "Code Names";
START_GAME_BT.disabled = false;
NEW_GAME_BT.disabled = false;
RED_BT.disabled = true;
BLUE_BT.disabled = true;
NEUTRAL_BT.disabled = true;
DEATH_BT.disabled = true;
}
// This function takes in a boolean whether to disable or enable
// all the buttons on the game board
function disableBoard(cond) {
for (let i = 0; i < ALL_TABLE_ELEMENTS.length; i++) {
ALL_TABLE_ELEMENTS[i].disabled = cond;
}
}
function generateBoad() {
let chosen = [];
for (let i = 0; i < ALL_TABLE_ELEMENTS.length; i++) {
let word = word_bank[Math.floor(Math.random() * word_bank.length)];
while (chosen.includes(word)) {
word = word_bank[Math.floor(Math.random() * word_bank.length)];
}
chosen.push(word);
ALL_TABLE_ELEMENTS[i].innerHTML = word;
ALL_TABLE_ELEMENTS[i].style.backgroundColor = "";
}
}
function blue_trigger(e) {
BLUE_BT.disabled = true;
RED_BT.disabled = true;
NEUTRAL_BT.disabled = true;
DEATH_BT.disabled = true;
disableBoard(false);
selected.style = "background-color: blue";
}
function red_trigger(e) {
BLUE_BT.disabled = true;
RED_BT.disabled = true;
NEUTRAL_BT.disabled = true;
DEATH_BT.disabled = true;
disableBoard(false);
selected.style = "background-color: red";
}
function neutral_trigger(e) {
BLUE_BT.disabled = true;
RED_BT.disabled = true;
NEUTRAL_BT.disabled = true;
DEATH_BT.disabled = true;
disableBoard(false);
selected.style = "background-color: grey";
}
function death_trigger(e) {
BLUE_BT.disabled = true;
RED_BT.disabled = true;
NEUTRAL_BT.disabled = true;
DEATH_BT.disabled = true;
disableBoard(true);
selected.style = "background-color: black";
document.querySelector("#game_title").innerHTML = "GAME OVER, WHAT A DISGRACE";
}
function word_selected(e) {
selected = e.path[0];
disableBoard(true);
BLUE_BT.disabled = false;
RED_BT.disabled = false;
NEUTRAL_BT.disabled = false;
DEATH_BT.disabled = false;
}
function new_game(e) {
alert("The Game has now Started");
initialSetUp();
generateBoad();
generateBoad();
disableBoard(false);
}
function start_over(e) {
alert("A New Game has now Started");
initialSetUp();
generateBoad();
generateBoad();
disableBoard(false);
}
function clear(e) {
initialSetUp();
for (let i = 0; i < ALL_TABLE_ELEMENTS.length; i++) {
ALL_TABLE_ELEMENTS[i].innerHTML = "";
ALL_TABLE_ELEMENTS[i].style.backgroundColor = "";
}
}
initialSetUp();
for (let i = 0; i < ALL_TABLE_ELEMENTS.length; i++) {
ALL_TABLE_ELEMENTS[i].addEventListener("click", word_selected, false);
}
BLUE_BT.addEventListener("click", blue_trigger, false);
RED_BT.addEventListener("click", red_trigger, false);
NEUTRAL_BT.addEventListener("click", neutral_trigger, false);
DEATH_BT.addEventListener("click", death_trigger, false);
START_GAME_BT.addEventListener("click", new_game, false);
NEW_GAME_BT.addEventListener("click", start_over, false);
CLEAR_BT.addEventListener("click", clear, false);