@@ -12,14 +12,16 @@ iuaa ==> "is position under amazon attack ?"
12
12
'use strict'
13
13
amazonCheckmate = ( k , a ) => {
14
14
const gc = c => [ c [ 0 ] . charCodeAt ( ) - 0x60 , parseInt ( c [ 1 ] ) ] , [ xk , yk ] = gc ( k ) , [ xa , ya ] = gc ( a ) ,
15
- knm = ( x , y ) => [ [ x + 1 , y + 2 ] , [ x + 1 , y - 2 ] ,
16
- [ x + 2 , y + 1 ] , [ x + 2 , y - 1 ] ,
17
- [ x - 1 , y + 2 ] , [ x - 1 , y - 2 ] ,
18
- [ x - 2 , y + 1 ] , [ x - 2 , y - 1 ] ] ,
15
+ knm = ( x , y ) => [
16
+ [ x + 1 , y + 2 ] , [ x + 1 , y - 2 ] , [ x + 2 , y + 1 ] , [ x + 2 , y - 1 ] ,
17
+ [ x - 1 , y + 2 ] , [ x - 1 , y - 2 ] , [ x - 2 , y + 1 ] , [ x - 2 , y - 1 ]
18
+ ] ,
19
19
gmvs = ( [ x , y ] ) => {
20
- let nb = [ [ [ x - 1 , y + 1 ] , [ x , y + 1 ] , [ x + 1 , y + 1 ] ] ,
21
- [ [ x - 1 , y ] , [ x + 1 , y ] ] ,
22
- [ [ x - 1 , y - 1 ] , [ x , y - 1 ] , [ x + 1 , y - 1 ] ] ] ;
20
+ let nb = [
21
+ [ [ x - 1 , y + 1 ] , [ x , y + 1 ] , [ x + 1 , y + 1 ] ] ,
22
+ [ [ x - 1 , y ] , [ x + 1 , y ] ] ,
23
+ [ [ x - 1 , y - 1 ] , [ x , y - 1 ] , [ x + 1 , y - 1 ] ]
24
+ ] ;
23
25
y === 1 ?
24
26
nb . pop ( ) :
25
27
y === 8 ?
@@ -38,7 +40,8 @@ amazonCheckmate = (k, a) => {
38
40
typeof kmvs . find ( c => c [ 0 ] === x && c [ 1 ] === y ) !== "undefined" ,
39
41
sfak = ( [ x , y ] ) =>
40
42
typeof aknm . find ( c => c [ 0 ] === x && c [ 1 ] === y ) === "undefined" ,
41
- sfab = ( [ x , y ] ) => ( xa - x ) / ( ya - y ) === 1 ?
43
+ sfab = ( [ x , y ] ) =>
44
+ ( xa - x ) / ( ya - y ) === 1 ?
42
45
( xk - x ) / ( yk - y ) === 1 &&
43
46
( xa > x ?
44
47
xk > x && xa > xk :
@@ -49,18 +52,21 @@ amazonCheckmate = (k, a) => {
49
52
xk < x && xa < xk :
50
53
xk > x && xa > xk ) :
51
54
true ,
52
- sfar = ( [ x , y ] ) => x === xa ?
53
- xk === xa && ( ya > y ?
54
- yk > y && ya > yk :
55
- yk < y && ya < yk ) :
56
- y === ya ?
57
- yk === ya && ( xa > x ?
58
- xk > x && xa > xk :
59
- xk < x && xa < xk ) :
55
+ sfar = ( [ x , y ] ) =>
56
+ x === xa ?
57
+ xk === xa &&
58
+ ( ya > y ?
59
+ yk > y && ya > yk :
60
+ yk < y && ya < yk ) :
61
+ y === ya ?
62
+ yk === ya &&
63
+ ( xa > x ?
64
+ xk > x && xa > xk :
65
+ xk < x && xa < xk ) :
60
66
true ,
61
67
iuaa = ( [ x , y ] ) =>
62
68
( ( sfab ( [ x , y ] ) && sfar ( [ x , y ] ) && sfak ( [ x , y ] ) ) || ( x === xa && y === ya ) ) === false ;
63
-
69
+
64
70
//Counters : checkmate, check, stalemate, default
65
71
var cm = 0 , ch = 0 , st = 0 , df = 0 ;
66
72
//For each position
0 commit comments