-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathArabianKnight.config
182 lines (128 loc) · 8.74 KB
/
ArabianKnight.config
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
//* LogicalProcessorsCount. For example: If you have 4 core processor you have 4 logic processors.
//* Two phycical processors with 4 cores and HT(hyper threading) gives 16 logical processors
//* (2 x4cores and x2 because of HT).
//* This value could be set to "Auto".
//* If you don't want engine to use all logical processors set this value manually.
//* Allow values from 1 to 256 or "Auto"
LogicalProcessorsCount = Auto
//* TranspositionTableMemory is not only thing in memory.
//* It should be about half of maximum amount of total memory.
//* And it should be power of 2 (2, 4, 8, 16, etc)
TranspositionTableMemory(MB) = 64
//* Allow values „ClassicBoard”, „ExtendedBoard”, or „BitBoard”
BoardStructure = BitBoard
//* This should be FALSE. It is only for testing
Evaluator.UseOnlyMaterialAndPositions = FALSE
//* Pieces are worth more with the progress of the game.
//* It gives that exchange is good when we winning, but bad when we loosing.
Evaluator.Material.AdditionalDynamicMaterialScoreInPercent = 35
Evaluator.PawnsAnalyse = true
Evaluator.PawnsAnalyse.IsolatedPawnPenalty = 32
Evaluator.PawnsAnalyse.DoublePawnPenalty = 16
Evaluator.PawnsAnalyse.FreePawnMinAward = 25
Evaluator.PawnsAnalyse.FreePawnMaxAward = 175
//* KingProtectingPawnAtEndOrAfterCastlingAward and KingNearPawnAtEndOrAfterCastlingAward can't be to low.
//* They should give more score when king go to pawn (even when pawn is in corner)
//* than king go to center (position table award) in the end of the game
Evaluator.PawnsAnalyse.KingProtectingPawnAtEndOrAfterCastlingAward = 25
Evaluator.PawnsAnalyse.KingNearPawnAtEndOrAfterCastlingAward = 12
Evaluator.King.MoveBeforeCastlingAtBeginPenalty = 80
Evaluator.BitBoard.UseAdvanceStrategyAnalyse = yes
Evaluator.BitBoard.AttackingNonCenterFriendlyFieldScore = 2
Evaluator.BitBoard.AttackingNonCenterEnemyFieldScore = 4
Evaluator.BitBoard.AttackingCenterFriendlyFieldScore = 5
Evaluator.BitBoard.AttackingCenterEnemyFieldScore = 7
Evaluator.BitBoard.ProtectingPieceScore = 16
Evaluator.BitBoard.AttackingPieceScore = 8
Evaluator.BitBoard.AttackingNotProtectedPieceScore = 32
Evaluator.BitBoard.AttackNotProtectedKingNeighbourFieldScoreAtBegin = 50
Evaluator.BitBoard.WeakFieldInPawnStructurePenalty = 10
Evaluator.PositionTable.PawnScore.Line8 = { 0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.PawnScore.Line7 = {42, 44, 46, 46, 46 ,40, 44, 42}
Evaluator.PositionTable.PawnScore.Line6 = {30, 32, 34, 34, 34, 28, 32, 30}
Evaluator.PositionTable.PawnScore.Line5 = {20, 22, 24, 24, 24, 18, 22, 20}
Evaluator.PositionTable.PawnScore.Line4 = {12, 14, 16, 16, 16, 10, 14, 12}
Evaluator.PositionTable.PawnScore.Line3 = { 6, 8, 10, 10, 10, 4, 8, 6}
Evaluator.PositionTable.PawnScore.Line2 = { 0, 0, 0, -8, -8, 0, 0, 0}
Evaluator.PositionTable.PawnScore.Line1 = { 0, 0, 0, 0, 0, 0, 0, 0}
//* I set knight score as number of moves x 4
Evaluator.PositionTable.KnightScore.Line8 = { 8, 12, 16, 16, 16, 16, 12, 8}
Evaluator.PositionTable.KnightScore.Line7 = {12, 16, 24, 24, 24 ,24, 16, 12}
Evaluator.PositionTable.KnightScore.Line6 = {16, 24, 32, 32, 32, 32, 24, 16}
Evaluator.PositionTable.KnightScore.Line5 = {16, 24, 32, 32, 32, 32, 24, 16}
Evaluator.PositionTable.KnightScore.Line4 = {16, 24, 32, 32, 32, 32, 24, 16}
Evaluator.PositionTable.KnightScore.Line3 = {16, 24, 32, 32, 32, 32, 24, 16}
Evaluator.PositionTable.KnightScore.Line2 = {12, 16, 24, 24, 24 ,24, 16, 12}
Evaluator.PositionTable.KnightScore.Line1 = { 8, 12, 16, 16, 16, 16, 12, 8}
//* I set bishop scores as avarage of knight scores. Can't knight always be better than bishop.
Evaluator.PositionTable.BishopScore.Line8 = {20, 20, 20, 20, 20, 20, 20, 20}
Evaluator.PositionTable.BishopScore.Line7 = {20, 20, 20, 20, 20, 20, 20, 20}
Evaluator.PositionTable.BishopScore.Line6 = {20, 20, 20, 20, 20, 20, 20, 20}
Evaluator.PositionTable.BishopScore.Line5 = {20, 20, 20, 20, 20, 20, 20, 20}
Evaluator.PositionTable.BishopScore.Line4 = {20, 20, 20, 20, 20, 20, 20, 20}
Evaluator.PositionTable.BishopScore.Line3 = {20, 20, 20, 20, 20, 20, 20, 20}
Evaluator.PositionTable.BishopScore.Line2 = {20, 20, 20, 20, 20, 20, 20, 20}
Evaluator.PositionTable.BishopScore.Line1 = {20, 20, 20, 20, 20, 20, 20, 20}
Evaluator.PositionTable.RookScore.Line8 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.RookScore.Line7 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.RookScore.Line6 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.RookScore.Line5 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.RookScore.Line4 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.RookScore.Line3 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.RookScore.Line2 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.RookScore.Line1 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.QuenScore.Line8 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.QuenScore.Line7 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.QuenScore.Line6 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.QuenScore.Line5 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.QuenScore.Line4 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.QuenScore.Line3 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.QuenScore.Line2 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.QuenScore.Line1 = {0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.KingAtBeginScore.Line8 = {-40, -40, -40, -40, -40, -40, -40, -40}
Evaluator.PositionTable.KingAtBeginScore.Line7 = {-40, -40, -40, -40, -40, -40, -40, -40}
Evaluator.PositionTable.KingAtBeginScore.Line6 = {-40, -40, -40, -40, -40, -40, -40, -40}
Evaluator.PositionTable.KingAtBeginScore.Line5 = {-40, -40, -40, -40, -40, -40, -40, -40}
Evaluator.PositionTable.KingAtBeginScore.Line4 = {-40, -40, -40, -40, -40, -40, -40, -40}
Evaluator.PositionTable.KingAtBeginScore.Line3 = {-40, -40, -40, -40, -40, -40, -40, -40}
Evaluator.PositionTable.KingAtBeginScore.Line2 = {-20, -20, -20, -20, -20, -20, -20, -20}
Evaluator.PositionTable.KingAtBeginScore.Line1 = { 20, 40, 40, 20, 0, 20, 40, 20}
Evaluator.PositionTable.KingAtEndScore.Line8 = { 0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.PositionTable.KingAtEndScore.Line7 = { 0, 10, 10, 10, 10, 10, 10, 0}
Evaluator.PositionTable.KingAtEndScore.Line6 = { 0, 10, 20, 20, 20, 20, 10, 0}
Evaluator.PositionTable.KingAtEndScore.Line5 = { 0, 10, 20, 20, 20, 20, 10, 0}
Evaluator.PositionTable.KingAtEndScore.Line4 = { 0, 10, 20, 20, 20, 20, 10, 0}
Evaluator.PositionTable.KingAtEndScore.Line3 = { 0, 10, 20, 20, 20, 20, 10, 0}
Evaluator.PositionTable.KingAtEndScore.Line2 = { 0, 10, 10, 10, 10, 10, 10, 0}
Evaluator.PositionTable.KingAtEndScore.Line1 = { 0, 0, 0, 0, 0, 0, 0, 0}
Evaluator.MaxRandomValue = 0
MoveOrdering.PawnTakes = {14, 18, 18, 22, 30}
MoveOrdering.KnightTakes = {12, 16, 16, 20, 28}
MoveOrdering.BishopTakes = {12, 16, 16, 20, 28}
MoveOrdering.RookTakes = {10, 14, 14, 18, 26}
MoveOrdering.QuenTakes = { 6, 10, 10, 14, 22}
MoveOrdering.KingTakes = { 5, 9, 9, 13, 21}
MoveOrdering.PawnNomination = { 0, 17, 17, 21, 29}
MoveOrdering.KillerMove(Beta-Cut) = 3
MoveOrdering.KillerMove(Best-Move) = 2
MoveOrdering.TranspositionTableMove = 32
MoveOrdering.TranspositionTableMove.ExactDepth = 64
Algorithm.NullMove = true
Algorithm.NullMove.Verified = true
Algorithm.NullMove.Reduce = 3
Algorithm.Razoring = true
Algorithm.Razoring.Depths = 4
Algorithm.Razoring.Margin = 100
Algorithm.LMR = true
Algorithm.SEEQuiescencePruning = true
Evaluator.LazyEval = true
Evaluator.LazyEval.Value = 450
Algorithm.RandomMistakesPercent = 0
<OptionalValue>Algorithm.QuiescenceSearch.Default = on
<OptionalValue>Algorithm.OpenBook.Default = on
<OptionalValue>Algorithm.Pondering.Default = on
<OptionalValue>Algorithm.Level.Mode.Default = Time
<OptionalValue>Algorithm.Level.TimeMoves.Default = 0
<OptionalValue>Algorithm.Level.Time.Default = 300
<OptionalValue>Algorithm.Level.TimeIncrement.Default = 0
<OptionalValue>Algorithm.Level.Depth.Default = 4