Difference between revisions of "Spartan"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
Line 8: | Line 8: | ||
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>. | 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>. | ||
− | [https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance] 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> | + | In calculating [[King Pawn Tropism|king passer tropism]] in [[Evaluation|evaluation]], |
− | <ref>[https://www.programiz.com/c-programming/library-function/math.h/sqrt C sqrt() - C Standard Library]</ref> | + | 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= |
Revision as of 08:41, 11 April 2020
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.
Contents
Features
Board Representation
Search
- Iterative Deepening
- Aspiration Windows
- Alpha-Beta
- Principal Variation Search
- Transposition Table
- Selectivity
- Move Ordering
Evaluation
- Material
- Tapered Eval
- Piece-Square Tables
- Mobility
- Rooks on (Semi) Open Files
- Connectivity
- Pawn Structure
- Passed Pawn
- King Safety
Misc
See also
Forum Posts
- New UCI engine: Spartan by CDaley11, OpenChess Forum, April 23, 2016
- New UCI engine Spartan released (a while ago) by Günther Simon, CCC, May 11, 2016
External Links
Chess Engine
Misc
- spartan - Wiktionary
- Spartan - Wiktionary
- Spartan Chess - Chess Variant Page
- Spartan Race from Wikipedia
- Sparta from Wikipedia
- Sparta (disambiguation) from Wikipedia
- Broken Brass Ensemble - Spartan, North Sea Jazz 2019, NPO Radio 2 Soul & Jazz, YouTube Video
References
- ↑ SPARTAN-101 (Shuttle Pointed Autonomous Research Tool for Astronomy) carrier module of STS-51-G, the 18th flight of NASA's Space Shuttle program, and the fifth flight of Space Shuttle Discovery, June 17-24, 1985, NASA image, SPARTAN – Wikipedia.de (German), Wikimedia Commons
- ↑ New UCI engine: Spartan by CDaley11, OpenChess Forum, April 23, 2016
- ↑ Spartan/bitscan.h at master · christiandaley/Spartan · GitHub
- ↑ Spartan/bitscan.c at master · christiandaley/Spartan · GitHub
- ↑ partan/eval.h at master · christiandaley/Spartan · GitHub, #define DIST(sq1, sq2) ((int)sqrt(((...
- ↑ C sqrt() - C Standard Library
- ↑ Spartan/Readme.md at master · christiandaley/Spartan · GitHub
- ↑ Spartan Chess - Chess Variant Page