Difference between revisions of "Spartan"

From Chessprogramming wiki
Jump to: navigation, search
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
'''[[Main Page|Home]] * [[Engines]] * Spartan'''
 
'''[[Main Page|Home]] * [[Engines]] * Spartan'''
  
[[FILE:Spartandia.jpg|border|right|thumb| SPARTAN-101 Diagram  <ref>[https://de.wikipedia.org/wiki/SPARTAN#SPARTAN_101 SPARTAN-101] (Shuttle Pointed Autonomous Research Tool for Astronomy) carrier module of [https://en.wikipedia.org/wiki/STS-51-G STS-51-G], the 18th flight of [https://en.wikipedia.org/wiki/NASA NASA's] [https://en.wikipedia.org/wiki/Space_Shuttle Space Shuttle] program, and the fifth flight of [https://en.wikipedia.org/wiki/Space_Shuttle_Discovery Space Shuttle Discovery], June 17-24, 1985, [https://en.wikipedia.org/wiki/NASA NASA] image, [https://de.wikipedia.org/wiki/SPARTAN SPARTAN – Wikipedia.de] (German), [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]
+
[[FILE:Spartandia.jpg|border|right|thumb| SPARTAN-101 Diagram  <ref>[https://de.wikipedia.org/wiki/SPARTAN#SPARTAN_101 SPARTAN-101] (Shuttle Pointed Autonomous Research Tool for Astronomy) carrier module of [https://en.wikipedia.org/wiki/STS-51-G STS-51-G], the 18th flight of [https://en.wikipedia.org/wiki/NASA NASA's] [https://en.wikipedia.org/wiki/Space_Shuttle Space Shuttle] [https://en.wikipedia.org/wiki/Space_Shuttle_program program], and the fifth flight of [https://en.wikipedia.org/wiki/Space_Shuttle_Discovery Space Shuttle Discovery], June 17-24, 1985, [https://en.wikipedia.org/wiki/NASA NASA] image, [https://de.wikipedia.org/wiki/SPARTAN SPARTAN – Wikipedia.de] (German), [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]
  
 
'''Spartan''',<br/>
 
'''Spartan''',<br/>
Line 7: Line 7:
 
written in [[C]] and distributed under the [[Free Software Foundation#GPL|GNU General Public License]], first released in April 2016
 
written in [[C]] and distributed under the [[Free Software Foundation#GPL|GNU General Public License]], first released in April 2016
 
as successor of [[JFresh]] <ref>[http://www.open-chess.org/viewtopic.php?f=7&t=2973 New UCI engine: Spartan] by [[Christian Daley|CDaley11]], [[Computer Chess Forums|OpenChess Forum]], April 23, 2016</ref>.
 
as successor of [[JFresh]] <ref>[http://www.open-chess.org/viewtopic.php?f=7&t=2973 New UCI engine: Spartan] by [[Christian Daley|CDaley11]], [[Computer Chess Forums|OpenChess Forum]], April 23, 2016</ref>.
 
+
As a pure [[Bitboards|bitboard]] engine, Spartan applies [[Matt Taylor|Matt Taylor's]] [[BitScan#MattTaylorsFoldingtrick|folding trick]] to [[BitScan|scan bits]] <ref>[https://github.com/christiandaley/Spartan/blob/master/src/bitscan.h Spartan/bitscan.h at master · christiandaley/Spartan · GitHub]</ref>, and [[Population Count#BrianKernighansway|Brian Kernighan's way]] to [[Population Count|count bits]] <ref>[https://github.com/christiandaley/Spartan/blob/master/src/bitscan.c Spartan/bitscan.c at master · christiandaley/Spartan · GitHub]</ref>.
 +
In calculating [[King Pawn Tropism|king passer tropism]] in [[Evaluation|evaluation]],
 +
Spartan uses the [https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance] between king and passer squares with [[Double|double]] arithmetic due to [https://en.wikipedia.org/wiki/C_standard_library C standard library] [https://en.wikipedia.org/wiki/Square_root square root] (double sqrt(double)) <ref>[https://github.com/christiandaley/Spartan/blob/master/src/eval.h partan/eval.h at master · christiandaley/Spartan · GitHub], #define DIST(sq1, sq2) ((int)sqrt(((...</ref>
 +
<ref>[https://www.programiz.com/c-programming/library-function/math.h/sqrt C sqrt() - C Standard Library]</ref> of the [https://en.wikipedia.org/wiki/Sum_of_squares sum of squares] of [[Ranks#RankDistance|rank difference]] and [[Files#FileDistance|file difference]], which is quite expensive. Recommended is [[Distance#Lookup|looking up]] the [[Distance|Chebyshev distance]] or [[Manhattan-Distance|Manhattan distance]] for that purpose.
 +
 
=Features=
 
=Features=
 
<ref>[https://github.com/christiandaley/Spartan/blob/master/Readme.md Spartan/Readme.md at master · christiandaley/Spartan · GitHub]</ref>
 
<ref>[https://github.com/christiandaley/Spartan/blob/master/Readme.md Spartan/Readme.md at master · christiandaley/Spartan · GitHub]</ref>
 
==[[Board Representation]]==
 
==[[Board Representation]]==
* [[Bitboards]]
+
* [[Bitboard Board-Definition]]
 
* [[Magic Bitboards]]
 
* [[Magic Bitboards]]
 
==[[Search]]==
 
==[[Search]]==
Line 33: Line 37:
 
** [[Killer Heuristic]]
 
** [[Killer Heuristic]]
 
** [[History Heuristic]]
 
** [[History Heuristic]]
 +
==[[Evaluation]]==
 +
* [[Material]]
 +
* [[Tapered Eval]]
 +
* [[Piece-Square Tables]]
 +
* [[Mobility]]
 +
* [[Rook on Open File|Rooks on (Semi) Open Files]]
 +
* [[Connectivity]]
 +
* [[Pawn Structure]]
 +
** [[Pawn Hash Table]]
 +
** [[Backward Pawn]]
 +
** [[Doubled Pawn]]
 +
** [[Isolated Pawn]]
 +
* [[Passed Pawn]]
 +
** [[Unstoppable Passer]]
 +
** [[King Pawn Tropism|King Passer Tropism]]
 +
* [[King Safety]]
 +
** [[King Safety#Attacking|Attacking King Zone]]
 +
** [[King Safety#PawnShield|Pawn Shelter]]
 +
** [[King Safety#PawnStorm|Pawn Storm]]
 
==Misc==
 
==Misc==
 
* [[Bratko-Kopec Test]]
 
* [[Bratko-Kopec Test]]
Line 56: Line 79:
 
* [https://en.wikipedia.org/wiki/Sparta Sparta from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Sparta Sparta from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Sparta_(disambiguation) Sparta (disambiguation) from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Sparta_(disambiguation) Sparta (disambiguation) from Wikipedia]
 +
* [[:Category:Broken Brass Ensemble|Broken Brass Ensemble]] - Spartan, [https://en.wikipedia.org/wiki/North_Sea_Jazz_Festival North Sea Jazz] 2019, [https://en.wikipedia.org/wiki/NPO_Radio_2_Soul_%26_Jazz NPO Radio 2 Soul & Jazz], [https://en.wikipedia.org/wiki/YouTube YouTube] Video
 +
: {{#evu:https://www.youtube.com/watch?v=j4ziR0UDKWA|alignment=left|valignment=top}}
  
 
=References=  
 
=References=  
Line 68: Line 93:
 
[[Category:Linux]]
 
[[Category:Linux]]
 
[[Category:Windows]]
 
[[Category:Windows]]
 +
[[Category:Broken Brass Ensemble]]

Latest revision as of 21:41, 17 September 2020

Home * Engines * Spartan

SPARTAN-101 Diagram [1]

Spartan,
an UCI compliant open source chess engine by Christian Daley, written in C and distributed under the GNU General Public License, first released in April 2016 as successor of JFresh [2]. As a pure bitboard engine, Spartan applies Matt Taylor's folding trick to scan bits [3], and Brian Kernighan's way to count bits [4]. In calculating king passer tropism in evaluation, Spartan uses the Euclidean distance between king and passer squares with double arithmetic due to C standard library square root (double sqrt(double)) [5] [6] of the sum of squares of rank difference and file difference, which is quite expensive. Recommended is looking up the Chebyshev distance or Manhattan distance for that purpose.

Features

[7]

Board Representation

Search

Evaluation

Misc

See also

Forum Posts

External Links

Chess Engine

Misc

References

Up one Level