1
+ var winner = 1 ;
2
+ var draw = 0 ;
3
+ var xplayed = [ [ ] ] ;
4
+ var oplayed = [ [ ] ] ;
5
+ var ToWinCombinations = [
6
+ [ 0 , 1 ] , [ 3 , 4 ] , [ 6 , 7 ] , [ 0 , 3 ] , [ 1 , 4 ] , [ 2 , 5 ] , [ 0 , 4 ] , [ 2 , 4 ] , [ 1 , 2 ] , [ 4 , 5 ] , [ 7 , 8 ] , [ 3 , 6 ] , [ 4 , 7 ] , [ 5 , 8 ] , [ 4 , 8 ] , [ 4 , 6 ] , [ 0 , 2 ] , [ 3 , 5 ] , [ 6 , 8 ] , [ 0 , 6 ] , [ 1 , 7 ] , [ 2 , 8 ] , [ 0 , 8 ] , [ 2 , 6 ]
7
+ ] ;
8
+ var audio = new Audio ( "Touch_Sound_Effect_(Private_Only)(128k).mp3" ) ;
9
+ var audio_win = new Audio ( "win_sound(128k).mp3" ) ;
10
+ var all_full = 0 ;
11
+ var turn = "x" ;
12
+ const winningCombinations = [
13
+ [ 0 , 1 , 2 ] ,
14
+ [ 3 , 4 , 5 ] ,
15
+ [ 6 , 7 , 8 ] ,
16
+ [ 0 , 3 , 6 ] ,
17
+ [ 1 , 4 , 7 ] ,
18
+ [ 2 , 5 , 8 ] ,
19
+ [ 0 , 4 , 8 ] ,
20
+ [ 2 , 4 , 6 ] ] ;
21
+ function turn_change ( ) {
22
+ if ( turn == "x" ) {
23
+ var trno = document . getElementById ( "turn" ) ;
24
+ trno . innerHTML = " X" ;
25
+ trno . style . color = "#02e7f7" ;
26
+ }
27
+ else {
28
+ var trnt = document . getElementById ( "turn" ) ;
29
+ trnt . innerHTML = " O" ;
30
+ trnt . style . color = "yellow" ;
31
+ }
32
+ }
33
+
34
+
35
+
36
+ function change ( i ) {
37
+ if ( winner ) {
38
+ var tile = document . getElementsByClassName ( "tile" ) [ i ] ;
39
+ if ( tile . innerHTML != "x" && tile . innerHTML != "o" ) {
40
+ if ( turn == "x" ) {
41
+ tile . innerHTML = turn ;
42
+ tile . style . color = "#02e7f7" ;
43
+ turn = "o" ;
44
+ turn_change ( ) ;
45
+ audio . play ( ) ;
46
+ audio . playbackRate = 4.0 ;
47
+ }
48
+ else {
49
+ tile . innerHTML = turn ;
50
+ tile . style . color = "yellow" ;
51
+ turn = "x" ;
52
+ turn_change ( ) ;
53
+ audio . play ( ) ;
54
+ audio . playbackRate = 4.0 ;
55
+ }
56
+ }
57
+ draw_check ( ) ;
58
+ if ( draw ) {
59
+ document . getElementById ( "mid" ) . innerHTML = "Draw" ;
60
+ document . getElementById ( "mid" ) . style . color = "red" ;
61
+ }
62
+ win_check ( ) ;
63
+ }
64
+ }
65
+
66
+
67
+ function win_check ( ) {
68
+ var tile_info = document . getElementsByClassName ( "tile" ) ;
69
+ for ( var j = 0 ; j < 8 ; j ++ ) {
70
+ const a = winningCombinations [ j ] [ 0 ] ;
71
+ const b = winningCombinations [ j ] [ 1 ] ;
72
+ const c = winningCombinations [ j ] [ 2 ] ;
73
+ if ( tile_info [ a ] . innerHTML == "x" && tile_info [ b ] . innerHTML == "x" && tile_info [ c ] . innerHTML == "x" ) {
74
+ document . getElementById ( "mid" ) . innerHTML = "X wins" ;
75
+ document . getElementById ( "mid" ) . style . color = "#02e7f7" ;
76
+ tile_info [ a ] . style . color = "#33fb33" ;
77
+ tile_info [ b ] . style . color = "#33fb33" ;
78
+ tile_info [ c ] . style . color = "#33fb33" ;
79
+ tile_info [ a ] . style . backgroundColor = "#0b3d06" ;
80
+ tile_info [ b ] . style . backgroundColor = "#0b3d06" ;
81
+ tile_info [ c ] . style . backgroundColor = "#0b3d06" ;
82
+ audio_win . play ( ) ;
83
+ winner = 0 ;
84
+ }
85
+ else if ( tile_info [ a ] . innerText == "o" && tile_info [ b ] . innerText == "o" && tile_info [ c ] . innerText == "o" ) {
86
+ document . getElementById ( "mid" ) . innerHTML = "O wins" ;
87
+ document . getElementById ( "mid" ) . style . color = "yellow" ;
88
+ tile_info [ a ] . style . color = "#33fb33" ;
89
+ tile_info [ b ] . style . color = "#33fb33" ;
90
+ tile_info [ c ] . style . color = "#33fb33" ;
91
+ tile_info [ a ] . style . backgroundColor = "#0b3d06" ;
92
+ tile_info [ b ] . style . backgroundColor = "#0b3d06" ;
93
+ tile_info [ c ] . style . backgroundColor = "#0b3d06" ;
94
+ audio_win . play ( ) ;
95
+ winner = 0 ;
96
+ }
97
+
98
+ }
99
+ }
100
+
101
+ function draw_check ( ) {
102
+ var tile_info = document . getElementsByClassName ( "tile" ) ;
103
+ for ( var t = 0 ; t < 9 ; t ++ ) {
104
+ if ( tile_info [ t ] . innerText == "x" || tile_info [ t ] . innerText == "o" ) {
105
+ draw = 1 ;
106
+ }
107
+ else {
108
+ draw = 0 ;
109
+ break ;
110
+ }
111
+ }
112
+ }
113
+
114
+ function refresh ( ) {
115
+ var tile_info = document . getElementsByClassName ( "tile" ) ;
116
+ for ( var k = 0 ; k < 9 ; k ++ ) {
117
+ document . getElementsByClassName ( "tile" ) [ k ] . innerHTML = " " ;
118
+ document . getElementById ( "mid" ) . style . color = "#fff" ;
119
+ tile_info [ k ] . style . backgroundColor = "#000" ;
120
+ }
121
+ winner = 1 ;
122
+ document . getElementById ( "mid" ) . innerHTML = "Play" ;
123
+
124
+
125
+ }
126
+
127
+
128
+ turn_change ( ) ;
129
+
0 commit comments