equal
deleted
inserted
replaced
68 var cnt = 0; |
68 var cnt = 0; |
69 for (var i = 0; i < 16; i++) |
69 for (var i = 0; i < 16; i++) |
70 if (this.brd[i] === 0) |
70 if (this.brd[i] === 0) |
71 cnt++; |
71 cnt++; |
72 return cnt; |
72 return cnt; |
|
73 } |
|
74 /** Put random value to free cell uniformly. */ |
|
75 BoardArr.prototype.rnd = function(val) { |
|
76 var brd = this.brd; |
|
77 var idx; |
|
78 var free = 0; |
|
79 for (var i = 0; i < 16; i++) { |
|
80 if (brd[idx] === 0) { |
|
81 free++; |
|
82 if (Math.random()*free < 1) |
|
83 idx = i; |
|
84 } |
|
85 } |
|
86 if (free === 0) |
|
87 throw new Error('There are no free space...'); |
|
88 brd[idx] = val; |
73 } |
89 } |
74 BoardArr.prototype.score = function() { |
90 BoardArr.prototype.score = function() { |
75 var score = 0; |
91 var score = 0; |
76 for (var i = 0; i < 16; i++) { |
92 for (var i = 0; i < 16; i++) { |
77 var v = this.brd[i][j]; |
93 var v = this.brd[i][j]; |
175 for (var i = 0; i < 4; i++) |
191 for (var i = 0; i < 4; i++) |
176 for (var j = 0; j < 4; j++) |
192 for (var j = 0; j < 4; j++) |
177 if (this.brd[i][j] === 0) |
193 if (this.brd[i][j] === 0) |
178 cnt++; |
194 cnt++; |
179 return cnt; |
195 return cnt; |
|
196 } |
|
197 /** Put random value to free cell uniformly. */ |
|
198 BoardArr2d.prototype.rnd = function(val) { |
|
199 var brd = this.brd; |
|
200 var xi, xj; |
|
201 var free = 0; |
|
202 for (var i = 0; i < 4; i++) |
|
203 for (var j = 0; j < 4; j++) |
|
204 if (this.brd[i][j] === 0) { |
|
205 free++; |
|
206 if (Math.random()*free < 1) { |
|
207 xi = i; |
|
208 xj = j; |
|
209 } |
|
210 } |
|
211 if (free === 0) |
|
212 throw new Error('There are no free space...'); |
|
213 brd[xi][xj] = val; |
180 } |
214 } |
181 BoardArr2d.prototype.score = function() { |
215 BoardArr2d.prototype.score = function() { |
182 var score = 0; |
216 var score = 0; |
183 for (var i = 0; i < 4; i++) { |
217 for (var i = 0; i < 4; i++) { |
184 for (var j = 0; j < 4; j++) { |
218 for (var j = 0; j < 4; j++) { |