The fastest growing internet Chess community where you can find the Biggest Chess Games Database Online, News, Tactics and Strategyies, Puzzles and much more. Ask.com is the #1 question answering service that delivers the best answers from the web and real people - all in one place.
Upgrade to macOS Big Sur
https://hanfree.mystrikingly.com/blog/orqa-fpv-skydive-mac-os. Before installing this upgrade, make sure that your Mac is ready.
Check compatibility
macOS Big Sur supports most Mac models introduced in 2013 and later.
View compatible Mac modelsMake a backup
Before you upgrade, make a complete backup with Time Machine, or store your files in iCloud.
Learn how to back up your MacFree up space
If the installer needs more storage space to upgrade, you can free up space using tools that come with your Mac.
Free up storage spaceDownload macOS Big Sur
If you're using macOS Mojave or later, choose Apple menu > System Preferences, then click Software Update. If you're using an earlier macOS, use the App Store instead.
Learn how to download and install macOS Big SurGo to the App StoreGet to know macOS Big Sur
Learn about some of the new features of macOS Big Sur. Ralett mac os.
Control Center
Control Center brings favorite controls such as Bluetooth, Wi-Fi, Do Not Disturb, and Sound together in a single place—so you can easily adjust them at any time.
Use Control CenterNotification Center
Notification Center puts notifications and>
Safari
Customize your start page, navigate with ease using the new tab bar, and access a new privacy report to see just how Safari protects your privacy as you browse.
Get to know SafariMaps
Discover great places around the world and navigate easier with guides, cycling directions, indoor maps, Look Around, electric vehicle routing, and more.
Messages
Send messages to friends and family using new tools that make it easier to keep track of group conversations and give you fun, engaging ways to express yourself.
Use MessagesLearn more on YouTubePhotos
Use the expanded editing capabilities in Photos to easily make simple changes and more advanced adjustments to your photos.
Learn how to edit your photosHave a question?
Ask everyone. Our Apple Support Community can help you find answers.
Ask nowTell us how we can help
Answer a few questions and we'll help you find a solution.
Get supportHome * Engines * Crafty
Crafty, [2]
a portable open source engine supporting the Chess Engine Communication Protocol written by Robert Hyatt in ANSI C starting in the early 90s, loosely derived from Cray Blitz, winner of the 1983 and 1986 World Computer Chess Championships [3]. Crafty pioneered in using Rotated bitboards , parallel search and probing Nalimov Tablebases. It performs a principal variation search, null move pruning, LMR as well as a SEE swap algorithm for move ordering and to prune 'bad' captures in quiescence search. In 2006/2007, Crafty switched from rotated to Magic bitboards[4], according to Robert Hyatt because it was not faster but simpler [5]. Crafty 25.1, released in October 2016, not only includes an increase in playing strength [6] but support for Syzygy bases by Ronald de Man aided by the coding contributions of Basil Falcinelli[7]. Crafty 25.3 features playing strength adjustment between 800 and 2600 Elo [8].
- 3Descriptions
- 3.4Leading or Trailing Zeros
- 4Selected Games
- 8Publications
- 9Forum Posts
- 10External Links
as mentioned at WCRCC 2010[9] and CCT15, 2013 [10]
- Peter Berger, Crafty's book author at WCCC 2004, WCCC 2005 and WCCC 2006
Crafty participated at four World Microcomputer Chess Championships, the WMCCC 1996, WMCCC 1997, WMCCC 2000, and WMCCC 2001, three World Computer Chess Championships, the WCCC 2004, WCCC 2005 and WCCC 2006, the ACCA Americas' Computer Chess Championships, the ACCA World Computer Rapid Chess Championships, CCT and various other tournaments. Crafty won the CCT1 in 2000, CCT5 in 2003 and CCT6 in 2004. At the Fifth Annual ACCA Americas' Computer Chess Championships in 2010 Crafty was runner-up behind Thinker[11] .
1997
from the ICGA page [12] :
2008
1997
from the ICGA page [12] :
2008
from a CCC post [13] :
Generation II
Crafty 25.0, Generation II, December 2015 [14]
- This version contains a major rewrite of the parallel search code, now referred to as Generation II. It has a more lightweight split algorithm, that costs the parent MUCH less effort to split the search. The key is that now the individual 'helper' threads do all the work, allocating a split block, copying the data from the parent, etc., rather than the parent doing it all. Gen II based on the DTS 'late-join' idea so that a thread will try to join existing split points before it goes to the idle wait loop waiting for some other thread to split with it. In fact, this is now the basis for the new split method where the parent simply creates a split point by allocating a split block for itself, and then continuing the search, after the parent split block is marked as 'joinable'. Now any idle threads just 'jump in' without the parent doing anything else, which means that currently idle threads will 'join' this split block if they are in the 'wait-for-work' spin loop, and threads that become idle also join in exactly the same way. This is MUCH more efficient, and also significantly reduces the number of split blocks needed during the search. We also now pre-split the search when we are reasonably close to the root of the tree, which is called a 'gratuitous split. This leaves joinable split points laying around so that whenever a thread becomes idle, it can join in at these pre-existing split points immediately. We now use a much more conservative approach when dealing with fail highs at the root. Since LMR and such have introduced greater levels of search instability, we no longer trust a fail-high at the root if it fails low on the research. We maintain the last score returned for every root move, along with the PV . Either an exact score or the bound score that was returned. At the end of the iteration, we sort the root move list using the backed-up score as the sort key, and we play the move with the best score. This solves a particularly ugly issue where we get a score for the first move, then another move fails high, but then fails low and the re-search produces a score that is actually WORSE than the original best move. We still see that, but we always play the best move now. One other efficiency trick is that when the above happens, the search would tend to be less efficient since the best score for that fail-high/fail-low move is actually worse than the best move/score found so far. If this happens, the score is restored to the original best move score (in Search()) so that we continue searching with a good lower bound , not having to deal with moves that would fail high with this worse value, but not with the original best move's value.
- We also added a new method to automatically tune the new SMP parameters. The command is autotune and 'help autotune' will explain how to run it.
- In addition , we did a complete re-factor of pawn evaluation code. There were too many overlapping terms that made tuning difficult. Now a pawn is classified as one specific class, there is no overlap between classes, which simplifies the code significantly. The code is now easier to understand and modify. In addition, the passed pawn evaluation was rewritten and consolidates all the passed pawn evaluation in one place. The evaluation used to add a bonus for rooks behind passed pawns in rook scoring, blockading somewhere else, etc. All of this was moved to the passed pawn code to make it easier to understand and modify.
- Added a limited version of late move pruning (LMP) for the last two plies. Once a set number of moves have been searched with no fail high, non-interesting moves are simply skipped in a way similar to futility pruning.
- We had a minor change to history counters that now rely on a 'saturating counter' idea. I wanted to avoid the aging idea, and it seemed to not be so clear that preferring history moves by the depth at which they were good was the way to go. I returned to a history counter idea I tested around 2005 but discarded, namely using a saturating counter. The idea is that a center value (at present 1024) represents a zero score. Decrementing it makes it worse, incrementing it makes it better. But to make it saturate at either end, I only reduce the counter by a fraction of its distance from the saturation point so that once it gets to either extreme value, it will not be modified further avoiding wrap-around. This basic idea was originally reported by Mark Winands in 2005. It seems to provide better results (slightly) on very deep searches. One impetus for this was an intent to fold this into a move so that I could sort the moves rather than doing the selection approach I currently use. However, this had a bad effect on testing, since history information is dynamic and is constantly changing, between two moves at the same ply in fact. The sort fixed the history counters to the value at the start of that ply. This was discarded after testing, but the history counter based on the saturating counter idea seemed to be OK and was left in even though it produced minimal Elo gain during testing.
- We change to the way moves are counted, to add a little more consistency to LMR. Now Next*() returns an order number that starts with 1 and monotonically increases, this order number is used for LMR and such decisions that vary things based on how far down the move list something occurs. Root move counting was particularly problematic with parallel searching, now things are at least 'more consistent'. The only negative impact is that now the move counter gets incremented even for illegal moves, but testing showed this was a no-change change with one thread, and the consistency with multiple threads made it useful.
- Added the 'counter-move' heuristic for move ordering (Jos Uiterwijk, IJICCA) which simply remembers a fail high move and the move at the previous ply. If the hash, captures or killer moves don't result in a fail high, this move is tried next. No significant cost, seems to reduce tree size noticeably. Added a follow-up idea based on the same idea, except we pair a move that fails high with the move two plies back, introducing a sort of 'connection' between them. This is a sort of 'plan' idea where the first move of the pair enables the second move to fail high. The benefit is that this introduces yet another pair of good moves that get ordered before history moves, and is therefore not subject to reduction. I have been unable to come up with a reference for this idea, but I believe I first saw it somewhere around the time Fruit showed up, I am thinking perhaps in the JICCA/JICGA. Any reference would be appreciated.
- A minor change to the way the PV and fail-hi/fail-low moves are displayed when pondering .
- Crafty now adds the ponder move to the front of the PV enclosed in parentheses so that it is always visible in console mode. The depths are reaching such extreme numbers the ponder move scrolls off the top of the screen when running in console mode or when 'tail -f' is used to watch the log file while a game is in progress. This is a bit trickier than you might think since Crafty displays the game move numbers in the PV.
- The penalty for pawns on same color as bishop now only applies when there is one bishop.
Leading or Trailing Zeros
Crafty had always mapped square-index 0 to square 'a1', 7 to 'h1', and 63 to 'h8' respectively, but recently (crafty-20.6) reversed the bit-index versus square-index mapping from leading to trailing zero count based little-endian rank-file (LERF), using bitscan forward (LSB) to retrieve squares in a1-h8 order, as most often used in CPW bitboard samples.
LSB
Ryb mac os. Trailing zero count aka bitscan forward for non empty sets as used in bitboard serialization for move generation and evaluation purposes, is implemented with x86-64bsf instruction via intrinsic or inline assembly if available (there are also 32-bit x86 bsf versions), and a conditional 16-bit byte lookup approach otherwise - Windows 64, Linux 64 and lookup versions with preprocessor instructions for conditional compiles omitted [15]:
Last One
Earlier Crafty versions prior to 20.6 had a leading zero count compliant, big-endian rank-file mapping. Left-bottom square (from White's point of view) 'a1' with square-index 0 was mapped to the leftmost, arithmetical most significant bit of an unsigned 64-bit integer with bit-index 63, while square 'h8' with square-index 63, was mapped to the rightmost, arithmetical least significant bit with bit-index 0. Bitscan forward and found index reversal was used in LastOne, to retrieve squares in h8-a1 order [16]: Cloud mage mac os.
This one was found in 15.17 with Mac OS support [17]
WCCC 2004
WCCC 2004, round 9, Falcon - Crafty[18]
WCCC 2006
WCCC 2006, round 8, Diep - Crafty[19]
Many programmers did not grasp Crafty's Copyright statement, but apparently took remarks by Robert Hyatt like in his reply to Ren Wu, January 26, 1999, concerning code reuse and not reinventing the wheel as alibi for their chess programming [20] :
https://bestufil283.weebly.com/the-wings-of-throwback-mac-os.html. Robert Hyatt further on the copyright problem [21] :
1997 .
- Robert Hyatt, Monroe Newborn (1997). CRAFTY Goes Deep. ICCA Journal, Vol. 20, No. 2
Chess Ok - 3000 Unique Chess Problems Mac Os X
2000 .
- Ernst A. Heinz (2001). Modeling the 'Go Deep' Behaviour of CRAFTY and DARK THOUGHT.Advances in Computer Games 9 » Depth, DarkThought
- Levente Kocsis, Jos Uiterwijk, Eric Postma, Jaap van den Herik (2002). The Neural MoveMap Heuristic in Chess. CG 2002, pdf » Neural MoveMap Heuristic
- Albert Xin Jiang (2003). Implementation of Multi-ProbCut in Chess. CPSC 449 Thesis, pdf
- Jan Renze Steenhuisen (2005). New Results in Deep-Search Behaviour. ICGA Journal, Vol. 28, No. 4, CiteSeerX
- Yew Jin Lim, Wee Sun Lee (2006). RankCut - A Domain Independent Forward Pruning Method for Games. AAAI 2006, pdf » RankCut
- Matej Guid, Ivan Bratko (2006). Computer Analysis of World Chess Champions. ICGA Journal, Vol. 29, No. 2, pdf[22][23]
- Matej Guid, Ivan Bratko (2006). Computer Analysis of Chess Champions. CG 2006
- Yew Jin Lim (2007). On Forward Pruning in Game-Tree Search. Ph.D. thesis, National University of Singapore, pdf
- Matej Guid, Ivan Bratko (2007). Factors affecting diminishing returns for searching deeper. CGW 2007 » Crafty, Rybka, Shredder, Diminishing Returns
- Matej Guid, Ivan Bratko (2007). Factors affecting diminishing returns for searching deeper. ICGA Journal, Vol. 30, No. 2, pdf
- Matej Guid, Aritz Pérez, Ivan Bratko (2007). How trustworthy is Crafty's analysis of world chess champions? CGW 2007
- Matej Guid, Aritz Pérez, Ivan Bratko (2008). How trustworthy is Crafty's analysis of world chess champions? ICGA Journal, Vol. 31, No. 3, pdf
2010 .
- Eric Stock, David J. King (2010). A new enhancement to MTD(f). Games and Arts, Abertay University, ResearchGate » MTD(f)[24]
- Robert Hyatt (2014). A Solution to Short PVs Caused by Exact Hash Matches. ICGA Journal, Vol. 37, No. 3 » Transposition Table, Separate TT for the PV
- Monroe Newborn, Robert Hyatt (2014). Computer Chess Endgame Play with Pawns: Then and Now. ICGA Journal, Vol. 37, No. 4 » Peasant, Pawn Endgame
- Guy Haworth (2015). Chess Endgame News. ICGA Journal, Vol. 38, No. 1 » FinalGen
2020 .
- Robert Hyatt (2020). The history of BLITZ/CRAY-BLITZ/CRAFTY. ICGA Journal, Vol. 42, Nos. 2-3
1995 .
- Re: Crafty version 8.7 by Robert Hyatt, rgcc, October 05, 1995
- Crafty V9.22 by Robert Hyatt, rgcc, April 05, 1996
- Crafty V9.26 by Robert Hyatt, rgcc, May 08, 1996
- Crafty's opening book - technical details by Robert Hyatt, rgcc, October 04, 1996
- Crafty V11.3 by Robert Hyatt, rgcc, October 22, 1996 » Fractional Extensions
- Crafty 11.15 by Robert Hyatt, rgcc, January 30, 1997
- Repetitions in Crafty by Martin Borriss, rgcc, January 30, 1997 » Repetitions
- quiescence search by Andrew Tridgell, rgcc, April 16, 1997 » Quiescence Search, Check
- Crafty and fastest Cray: question to Bob by Jouni Uski, CCC, December 01, 1997
- Parallel Crafty by Robert Hyatt, CCC, March 19, 1998
- Current Crafty strength on SMP? by Charlton Harrison, rgcc, April 29, 1998
- crafty copyright problem by Robert Hyatt, rgcc, February 17, 1999 » Voyager
- Crafty Modifications MUST be made available to Robert Hyatt by KarinsDad, CCC, February 17, 1999
- Crafty implications . by Chris Whittington, rgcc, March 4, 1999
- Do have the Crafty the Assembler written core? by Leonid, CCC, November 01, 1999
2000 .
- Crafty internal iterative deepening by Tijs van Dam, CCC, January 26, 2000 » Internal Iterative Deepening
- Crafty 17.13 - re-importing FEN files? by Wieland Belka, CCC, November 02, 2000
- Crafty 17.13 - using game archives by engines? by Wieland Belka, CCC, November 02, 2000
- razoring in crafty version 16.9, mid 1999 by Vincent Diepeveen, August 21, 2002
- Crafty SMP questions by Matthew Hull, CCC, August 05, 2003 » SMP
- Crafty 19.08 SE 2004 released . by Michael Byrne, Winboard Forum, January 01, 2004 » Wb2UCI
- Re: Crafty 1910 SE vs Ruffian2 I hate this , but by Peter Skinner, CCC, February 04, 2004 » Ruffian
- is this a sign of broken smp by Michael Byrne, CCC, March 09, 2004 » SMP
- Question about Crafty and Bishop Pair by Renze Steenhuisen, CCC, July 13, 2004 » Bishop Pair
2005 .
- Re: need help in compiling Crafty by Joshua Haglund, CCC, February 19, 2005
- Crafty and assembly code by Alain Zanchetta, CCC, May 08, 2005
- Re: BitBoard Tests Magic v Non-Rotated 32 Bits v 64 Bits by Robert Hyatt, CCC, August 25, 2007 » Magic Bitboards
- crafty-22.0 by Robert Hyatt, CCC, February 18, 2008
- Crafty questions by Pablo Vazquez, CCC, May 16, 2008
- Re: Lemming Poll by Robert Hyatt, CCC, September 22, 2008 » Tapered Eval, LearningLemming
- Crafty - no analysis output near mate? by cyberfish, December 03, 2008
- MTD(f) experiments with Crafty by Eric Stock, CCC, December 18, 2009 » MTD(f)[25]
2010 .
- Crafty Transpostion Table Question by Eric Stock, CCC, May 30, 2010 » Lockless Hashing
- old crafty vs new crafty on new hardware by Robert Hyatt, CCC, September 11, 2010
- Crafty tests show that Software has advanced more by Don Dailey, CCC, September 12, 2010
- Final results - Crafty - hardware vs software by Robert Hyatt, CCC, September 13, 2010
- hardware doubling number for Crafty by Robert Hyatt, CCC, September 15, 2010
2011
- On Crafty. by Robert Hyatt, CCC, May 22, 2011
- Re: Robert - How did you came up with the name Crafty by Robert Hyatt, CCC, June 16, 2011
- Re: Still waiting on Ed by BB+, OpenChess Forum, July 07, 2011 » on 22.1 vs. 23.4. differences
- Re: Still waiting on Ed by Robert Hyatt, OpenChess Forum, July 07, 2011 » on 22.1 vs. 23.4. differences
- ICGA rule #2 / opening books / Diep-Crafty, Turino 2006 by Peter Berger, CCC, October 22, 2011 » Opening Book, WCCC 2006
2012
- Crafty source by Robert Hyatt, CCC, September 26, 2012
2013
- Crafty 23.6 released by Peter Skinner, CCC, June 20, 2013
- interesting SMP bug by Robert Hyatt, CCC, September 24, 2013 » Parallel Search
- Crafty 23.8 by Robert Hyatt, CCC, November 11, 2013
Chess Ok - 3000 Unique Chess Problems Mac Os 8
2014
- Crafty 24.0 by Robert Hyatt, CCC, May 26, 2014
- Crafty 24.1 by Daniel José Queraltó, CCC, October 01, 2014
- Threads test incl. Crafty 24.1 by Andreas Strangmüller, CCC, October 15, 2014 » Thread, Parallel Search
- Android Version of Crafty by Ted Summers, CCC, December 30, 2014 » Android
2015 .
- Grafty vs Crafty by Marcel van Kervinck, Rybka Forum, April 21, 2015 » Stockfish
- parallel speedup and assorted trivia by Robert Hyatt, CCC, June 05, 2015 » Parallel Search
- Crafty UCI version by Marek Soszynski, July 10, 2015 » UCI
- An interesting parallel search non-bug by Robert Hyatt, CCC, November 05, 2015 » Parallel Search
- Crafty 25.0 Release by Michael B, CCC, December 25, 2015
- Crafty 25.0 announcement by Robert Hyatt, CCC, December 28, 2015
2016
- crafty eval cache by Alvaro Cardoso, CCC, January 01, 2016 » Evaluation Hash Table
- NUMA 101 by Robert Hyatt, CCC, January 07, 2016 » NUMA
- Crafty 25.0.1 by Robert Hyatt, CCC, January 15, 2016
- Crafty's four hash tables by Louis Zulli, CCC, January 17, 2016 » Hash Table
- Crafty c questions by J. Wesley Cleveland, CCC, March 10, 2016 » C
- Crafty chess engine by Krzysztof Grzelak, CCC, March 20, 2016
- Crafty SMP measurement by Robert Hyatt, CCC, April 04, 2016 » Parallel Search
- Around Crafty dev. . by Frank Quisinsky, CCC, August 31, 2016
- Re: Around Crafty dev. . by Robert Hyatt, CCC, September 01, 2016
- Crafty 25.1 Release by Michael B, CCC, October 04, 2016
- Crafty v25.2 Release by Michael B, CCC, October 29, 2016
2017 .
- Crafty Play By Elo ( Crafty v25.3) by Michael B, CCC, January 23, 2017 » Playing Strength
- SYZYGY question by Robert Hyatt, CCC, August 11, 2019 » Syzygy Bases, En passant
- Crafty 25.3 Release by Michael B, CCC, August 17, 2019
2020 .
- Crafty 25.6 by Michael B, CCC, February 01, 2020
- Crafty 25.6 search stability by jhaglund2, CCC, April 23, 2020
- Crafty NNUE Chess Engine? by supersharp77, CCC, April 29, 2021 » NNUE, Vafra[26]
Chess Engine
- Crafty Chess managed by Tracy Riegle
- The chess games of Crafty (Computer) from chessgames.com
- Crafty from WBEC Ridderkerk
- How Far We've Come: 20 Years of Personal Computing by Blake Linton Wilfong, November 05, 2000 » ACM 1981, Sargon, Cray Blitz
- Crafty Versions at CCRL 40/40
Misc
- Robert Fripp and the League of Crafty Guitarists, YouTube Video
- ↑Two Girls Being Crafty: Owl Pin Cushion
- ↑Re: Robert - How did you came up with the name Crafty by Robert Hyatt, CCC, June 16, 2011
- ↑Crafty from Wikipedia
- ↑Re: Fastest Magic Move Bitboard Generator ready to use by Robert Hyatt, Winboard Forum, November 09, 2006
- ↑Re: BitBoard Tests Magic v Non-Rotated 32 Bits v 64 Bits by Robert Hyatt, CCC, August 25, 2007
- ↑Crafty Chess managed by Tracy Riegle
- ↑Crafty 25.1 Release by Michael B, CCC, October 04, 2016
- ↑Crafty Play By Elo ( Crafty v25.3) by Michael B, CCC, January 23, 2017
- ↑2010 Fourth Annual ACCA World Computer Rapid Chess Championships - Participants
- ↑CCT 15 Participants | CCT Events
- ↑The 2010 Fifth Annual ACCA Americas' Computer Chess Championships - Results
- ↑Crafty's ICGA Tournaments
- ↑Re: Hardware vs Software - test result by Robert Hyatt, CCC, December 03, 2008
- ↑Crafty 25.0 Release by Michael B, CCC, December 25, 2015
- ↑Index of /downloads/source crafty-23.5.zip, inline64.h, boolean.c
- ↑Index of /downloads/source, crafty-20.5.zip, boolean.c
- ↑Index of /downloads/source, crafty-15.17.zip, boolean.c
- ↑Ramat-Gan 2004 - Chess - Round 9 - Game 3 (ICGA Tournaments)
- ↑Turin 2006 - Chess - Round 8 - Game 5 (ICGA Tournaments)
- ↑Re: Bionic v Crafty - a possible solution by Robert Hyatt, CCC, January 26, 1999
- ↑Re: crafty copyright problem by Robert Hyatt, rgcc, February 17, 1999
- ↑Computers choose: who was the strongest player?, ChessBase News, October 30, 2006
- ↑Computer analysis of world champions by Søren Riis, ChessBase News, November 02, 2006
- ↑MTD(f) experiments with Crafty by Eric Stock, CCC, December 18, 2009 » MTD(f)
- ↑Eric Stock, David J. King (2010). A new enhancement to MTD(f). Games and Arts, Abertay University
- ↑Vafra by Robert Jurjević