-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
95 lines (85 loc) · 2.46 KB
/
script.js
File metadata and controls
95 lines (85 loc) · 2.46 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
let rows = 6;
let cols = 7;
let row = '<tr>'+'<td><div class="circle"></div></td>'.repeat(cols)+'</tr>';
let grid = row.repeat(rows);
$("table").html(grid);
let turn = true;
let player1 = "red";
let player2 = "blue";
function changeMessage(player){
let message = player + "'s turn: Pick a column to drop your chip";
$('.turn').text(message);
}
grid = Array(cols).fill(-1);
// let finalGrid = new Array(rows).fill(grid);
let finalGrid = [];
for(let i=0; i<rows; i++){
finalGrid[i]=[];
for(let j=0; j<cols; j++)
finalGrid[i][j]=-1;
}
let lastRow = Array(cols).fill(-1);
function move(){
console.log(finalGrid)
let col = $(this).parent().index();
if(lastRow[col] == rows-1){
$('.turn').text("This column is full. Please pick another column");
$('.turn').addClass('error');
$('.turn').removeClass('no-error');
return;
}
$('.turn').addClass('no-error');
$('.turn').removeClass('error');
lastRow[col]++;
console.log($('tr').eq(rows-lastRow[col]-1))
$('tr').eq(rows-lastRow[col]-1).find('td').eq(col).find('div').addClass(turn==1?'player1':'player2');;
finalGrid[rows-lastRow[col]-1][col] = turn;
console.log(finalGrid);
if(checkWin()==-1)
{
turn =!turn;
changeMessage(turn==1?player1:player2);
}
else
{
$('.turn').addClass('winner');
$('.turn').removeClass('no-error');
let message = "Congratulations "+turn==1?player2:player1 + " won the game!";
$('.turn').text(message);
$('.circle').off('click');
$('body').blur();
setInterval(() => {
location.reload();
}, 10000);
}
}
function reload(){
location.reload();
}
function checkWin(){
for(let i=0; i<rows; i++){
for(let j=0; j<cols-3; j++){
let val=finalGrid[i][j];
for(let k=0; k<4; k++){
if(finalGrid[i][j+k]!=val)
break;
if(k==3 && val!=-1)
return val;
}
}
}
for(let i=0; i<rows-3; i++){
for(let j=0; j<cols; j++){
let val=finalGrid[i][j];
for(let k=0; k<4; k++){
if(finalGrid[i+k][j]!=val)
break;
if(k==3 && val!=-1)
return val;
}
}
}
return -1;
}
$('.circle').click(move);
$('.circle').hover(function(){$(this).addClass('hovering')}, function(){$(this).removeClass('hovering')});