(define (set-move-tables)
(set! knight-table
(list->vector '(
(10 17)
(16 11 18)
(17 8 12 19)
(18 9 13 20)
(19 10 14 21)
(20 11 15 22)
(21 12 23)
(22 13)
(2 18 25)
(24 3 19 26)
(25 16 0 4 20 27)
(26 17 1 5 21 28)
(27 18 2 6 22 29)
(28 19 3 7 23 30)
(29 20 4 31)
(30 21 5)
(1 10 26 33)
(32 0 2 11 27 34)
(33 24 8 1 3 12 28 35)
(34 25 9 2 4 13 29 36)
(35 26 10 3 5 14 30 37)
(36 27 11 4 6 15 31 38)
(37 28 12 5 7 39)
(38 29 13 6)
(9 18 34 41)
(40 8 10 19 35 42)
(41 32 16 9 11 20 36 43)
(42 33 17 10 12 21 37 44)
(43 34 18 11 13 22 38 45)
(44 35 19 12 14 23 39 46)
(45 36 20 13 15 47)
(46 37 21 14)
(17 26 42 49)
(48 16 18 27 43 50)
(49 40 24 17 19 28 44 51)
(50 41 25 18 20 29 45 52)
(51 42 26 19 21 30 46 53)
(52 43 27 20 22 31 47 54)
(53 44 28 21 23 55)
(54 45 29 22)
(25 34 50 57)
(56 24 26 35 51 58)
(57 48 32 25 27 36 52 59)
(58 49 33 26 28 37 53 60)
(59 50 34 27 29 38 54 61)
(60 51 35 28 30 39 55 62)
(61 52 36 29 31 63)
(62 53 37 30)
(33 42 58)
(32 34 43 59)
(56 40 33 35 44 60)
(57 41 34 36 45 61)
(58 42 35 37 46 62)
(59 43 36 38 47 63)
(60 44 37 39)
(61 45 38)
(41 50)
(40 42 51)
(48 41 43 52)
(49 42 44 53)
(50 43 45 54)
(51 44 46 55)
(52 45 47)
(53 46)
)))
(set! king-table
(list->vector '(
(9 1 8)
(10 2 0 8 9)
(11 3 1 9 10)
(12 4 2 10 11)
(13 5 3 11 12)
(14 6 4 12 13)
(15 7 5 13 14)
(6 14 15)
(17 9 1 0 16)
(18 10 2 1 0 8 16 17)
(19 11 3 2 1 9 17 18)
(20 12 4 3 2 10 18 19)
(21 13 5 4 3 11 19 20)
(22 14 6 5 4 12 20 21)
(23 15 7 6 5 13 21 22)
(7 6 14 22 23)
(25 17 9 8 24)
(26 18 10 9 8 16 24 25)
(27 19 11 10 9 17 25 26)
(28 20 12 11 10 18 26 27)
(29 21 13 12 11 19 27 28)
(30 22 14 13 12 20 28 29)
(31 23 15 14 13 21 29 30)
(15 14 22 30 31)
(33 25 17 16 32)
(34 26 18 17 16 24 32 33)
(35 27 19 18 17 25 33 34)
(36 28 20 19 18 26 34 35)
(37 29 21 20 19 27 35 36)
(38 30 22 21 20 28 36 37)
(39 31 23 22 21 29 37 38)
(23 22 30 38 39)
(41 33 25 24 40)
(42 34 26 25 24 32 40 41)
(43 35 27 26 25 33 41 42)
(44 36 28 27 26 34 42 43)
(45 37 29 28 27 35 43 44)
(46 38 30 29 28 36 44 45)
(47 39 31 30 29 37 45 46)
(31 30 38 46 47)
(49 41 33 32 48)
(50 42 34 33 32 40 48 49)
(51 43 35 34 33 41 49 50)
(52 44 36 35 34 42 50 51)
(53 45 37 36 35 43 51 52)
(54 46 38 37 36 44 52 53)
(55 47 39 38 37 45 53 54)
(39 38 46 54 55)
(57 49 41 40 56)
(58 50 42 41 40 48 56 57)
(59 51 43 42 41 49 57 58)
(60 52 44 43 42 50 58 59)
(61 53 45 44 43 51 59 60)
(62 54 46 45 44 52 60 61)
(63 55 47 46 45 53 61 62)
(47 46 54 62 63)
(57 49 48)
(58 50 49 48 56)
(59 51 50 49 57)
(60 52 51 50 58)
(61 53 52 51 59)
(62 54 53 52 60)
(63 55 54 53 61)
(55 54 62)
)))
(set! bishop-table
(list->vector '(
(
()
(9 18 27 36 45 54 63)
()
())
(
()
(10 19 28 37 46 55)
(8)
())
(
()
(11 20 29 38 47)
(9 16)
())
(
()
(12 21 30 39)
(10 17 24)
())
(
()
(13 22 31)
(11 18 25 32)
())
(
()
(14 23)
(12 19 26 33 40)
())
(
()
(15)
(13 20 27 34 41 48)
())
(
()
()
(14 21 28 35 42 49 56)
())
(
(1)
(17 26 35 44 53 62)
()
())
(
(2)
(9 18 27 36 45 54 63)
(16)
(0))
(
(3)
(19 28 37 46 55)
(17 24)
(1))
(
(4)
(20 29 38 47)
(18 25 32)
(2))
(
(5)
(21 30 39)
(19 26 33 40)
(3))
(
(6)
(22 31)
(20 27 34 41 48)
(4))
(
(7)
(23)
(21 28 35 42 49 56)
(5))
(
()
()
(22 29 36 43 50 57)
(6))
(
(9 2)
(25 34 43 52 61)
()
())
(
(10 3)
(26 35 44 53 62)
(24)
(8))
(
(11 4)
(27 36 45 54 63)
(25 32)
(9 0))
(
(12 5)
(28 37 46 55)
(26 33 40)
(10 1))
(
(13 6)
(29 38 47)
(27 34 41 48)
(11 2))
(
(14 7)
(30 39)
(28 35 42 49 56)
(12 3))
(
(15)
(31)
(29 36 43 50 57)
(13 4))
(
()
()
(30 37 44 51 58)
(14 5))
(
(17 10 3)
(33 42 51 60)
()
())
(
(18 11 4)
(34 43 52 61)
(32)
(16))
(
(19 12 5)
(35 44 53 62)
(33 40)
(17 8))
(
(20 13 6)
(36 45 54 63)
(34 41 48)
(18 9 0))
(
(21 14 7)
(37 46 55)
(35 42 49 56)
(19 10 1))
(
(22 15)
(38 47)
(36 43 50 57)
(20 11 2))
(
(23)
(39)
(37 44 51 58)
(21 12 3))
(
()
()
(38 45 52 59)
(22 13 4))
(
(25 18 11 4)
(41 50 59)
()
())
(
(26 19 12 5)
(42 51 60)
(40)
(24))
(
(27 20 13 6)
(43 52 61)
(41 48)
(25 16))
(
(28 21 14 7)
(44 53 62)
(42 49 56)
(26 17 8))
(
(29 22 15)
(45 54 63)
(43 50 57)
(27 18 9 0))
(
(30 23)
(46 55)
(44 51 58)
(28 19 10 1))
(
(31)
(47)
(45 52 59)
(29 20 11 2))
(
()
()
(46 53 60)
(30 21 12 3))
(
(33 26 19 12 5)
(49 58)
()
())
(
(34 27 20 13 6)
(50 59)
(48)
(32))
(
(35 28 21 14 7)
(51 60)
(49 56)
(33 24))
(
(36 29 22 15)
(52 61)
(50 57)
(34 25 16))
(
(37 30 23)
(53 62)
(51 58)
(35 26 17 8))
(
(38 31)
(54 63)
(52 59)
(36 27 18 9 0))
(
(39)
(55)
(53 60)
(37 28 19 10 1))
(
()
()
(54 61)
(38 29 20 11 2))
(
(41 34 27 20 13 6)
(57)
()
())
(
(42 35 28 21 14 7)
(58)
(56)
(40))
(
(43 36 29 22 15)
(59)
(57)
(41 32))
(
(44 37 30 23)
(60)
(58)
(42 33 24))
(
(45 38 31)
(61)
(59)
(43 34 25 16))
(
(46 39)
(62)
(60)
(44 35 26 17 8))
(
(47)
(63)
(61)
(45 36 27 18 9 0))
(
()
()
(62)
(46 37 28 19 10 1))
(
(49 42 35 28 21 14 7)
()
()
())
(
(50 43 36 29 22 15)
()
()
(48))
(
(51 44 37 30 23)
()
()
(49 40))
(
(52 45 38 31)
()
()
(50 41 32))
(
(53 46 39)
()
()
(51 42 33 24))
(
(54 47)
()
()
(52 43 34 25 16))
(
(55)
()
()
(53 44 35 26 17 8))
(
()
()
()
(54 45 36 27 18 9 0))
)))
(set! rook-table
(list->vector '(
(
()
(1 2 3 4 5 6 7)
(8 16 24 32 40 48 56)
())
(
()
(2 3 4 5 6 7)
(9 17 25 33 41 49 57)
(0))
(
()
(3 4 5 6 7)
(10 18 26 34 42 50 58)
(1 0))
(
()
(4 5 6 7)
(11 19 27 35 43 51 59)
(2 1 0))
(
()
(5 6 7)
(12 20 28 36 44 52 60)
(3 2 1 0))
(
()
(6 7)
(13 21 29 37 45 53 61)
(4 3 2 1 0))
(
()
(7)
(14 22 30 38 46 54 62)
(5 4 3 2 1 0))
(
()
()
(15 23 31 39 47 55 63)
(6 5 4 3 2 1 0))
(
(0)
(9 10 11 12 13 14 15)
(16 24 32 40 48 56)
())
(
(1)
(10 11 12 13 14 15)
(17 25 33 41 49 57)
(8))
(
(2)
(11 12 13 14 15)
(18 26 34 42 50 58)
(9 8))
(
(3)
(12 13 14 15)
(19 27 35 43 51 59)
(10 9 8))
(
(4)
(13 14 15)
(20 28 36 44 52 60)
(11 10 9 8))
(
(5)
(14 15)
(21 29 37 45 53 61)
(12 11 10 9 8))
(
(6)
(15)
(22 30 38 46 54 62)
(13 12 11 10 9 8))
(
(7)
()
(23 31 39 47 55 63)
(14 13 12 11 10 9 8))
(
(8 0)
(17 18 19 20 21 22 23)
(24 32 40 48 56)
())
(
(9 1)
(18 19 20 21 22 23)
(25 33 41 49 57)
(16))
(
(10 2)
(19 20 21 22 23)
(26 34 42 50 58)
(17 16))
(
(11 3)
(20 21 22 23)
(27 35 43 51 59)
(18 17 16))
(
(12 4)
(21 22 23)
(28 36 44 52 60)
(19 18 17 16))
(
(13 5)
(22 23)
(29 37 45 53 61)
(20 19 18 17 16))
(
(14 6)
(23)
(30 38 46 54 62)
(21 20 19 18 17 16))
(
(15 7)
()
(31 39 47 55 63)
(22 21 20 19 18 17 16))
(
(16 8 0)
(25 26 27 28 29 30 31)
(32 40 48 56)
())
(
(17 9 1)
(26 27 28 29 30 31)
(33 41 49 57)
(24))
(
(18 10 2)
(27 28 29 30 31)
(34 42 50 58)
(25 24))
(
(19 11 3)
(28 29 30 31)
(35 43 51 59)
(26 25 24))
(
(20 12 4)
(29 30 31)
(36 44 52 60)
(27 26 25 24))
(
(21 13 5)
(30 31)
(37 45 53 61)
(28 27 26 25 24))
(
(22 14 6)
(31)
(38 46 54 62)
(29 28 27 26 25 24))
(
(23 15 7)
()
(39 47 55 63)
(30 29 28 27 26 25 24))
(
(24 16 8 0)
(33 34 35 36 37 38 39)
(40 48 56)
())
(
(25 17 9 1)
(34 35 36 37 38 39)
(41 49 57)
(32))
(
(26 18 10 2)
(35 36 37 38 39)
(42 50 58)
(33 32))
(
(27 19 11 3)
(36 37 38 39)
(43 51 59)
(34 33 32))
(
(28 20 12 4)
(37 38 39)
(44 52 60)
(35 34 33 32))
(
(29 21 13 5)
(38 39)
(45 53 61)
(36 35 34 33 32))
(
(30 22 14 6)
(39)
(46 54 62)
(37 36 35 34 33 32))
(
(31 23 15 7)
()
(47 55 63)
(38 37 36 35 34 33 32))
(
(32 24 16 8 0)
(41 42 43 44 45 46 47)
(48 56)
())
(
(33 25 17 9 1)
(42 43 44 45 46 47)
(49 57)
(40))
(
(34 26 18 10 2)
(43 44 45 46 47)
(50 58)
(41 40))
(
(35 27 19 11 3)
(44 45 46 47)
(51 59)
(42 41 40))
(
(36 28 20 12 4)
(45 46 47)
(52 60)
(43 42 41 40))
(
(37 29 21 13 5)
(46 47)
(53 61)
(44 43 42 41 40))
(
(38 30 22 14 6)
(47)
(54 62)
(45 44 43 42 41 40))
(
(39 31 23 15 7)
()
(55 63)
(46 45 44 43 42 41 40))
(
(40 32 24 16 8 0)
(49 50 51 52 53 54 55)
(56)
())
(
(41 33 25 17 9 1)
(50 51 52 53 54 55)
(57)
(48))
(
(42 34 26 18 10 2)
(51 52 53 54 55)
(58)
(49 48))
(
(43 35 27 19 11 3)
(52 53 54 55)
(59)
(50 49 48))
(
(44 36 28 20 12 4)
(53 54 55)
(60)
(51 50 49 48))
(
(45 37 29 21 13 5)
(54 55)
(61)
(52 51 50 49 48))
(
(46 38 30 22 14 6)
(55)
(62)
(53 52 51 50 49 48))
(
(47 39 31 23 15 7)
()
(63)
(54 53 52 51 50 49 48))
(
(48 40 32 24 16 8 0)
(57 58 59 60 61 62 63)
()
())
(
(49 41 33 25 17 9 1)
(58 59 60 61 62 63)
()
(56))
(
(50 42 34 26 18 10 2)
(59 60 61 62 63)
()
(57 56))
(
(51 43 35 27 19 11 3)
(60 61 62 63)
()
(58 57 56))
(
(52 44 36 28 20 12 4)
(61 62 63)
()
(59 58 57 56))
(
(53 45 37 29 21 13 5)
(62 63)
()
(60 59 58 57 56))
(
(54 46 38 30 22 14 6)
(63)
()
(61 60 59 58 57 56))
(
(55 47 39 31 23 15 7)
()
()
(62 61 60 59 58 57 56))
)))
)