Welcome to the website of Supra chess engine!

Welcome to the website of Supra chess engine! - Supra

© 2011-2016  Pedro Mourão Soares Correia 




Supra is the first Portuguese UCI chess engine!





Supra  is a chess engine registered in the U.S. Copyright Office (version 17.0) on behalf of Pedro Mourão Soares Correia (internationally valid copyright) and distributed under the GNU-GPL license (version 3) which allows a versatile use by all since this use is subject to the terms of same license which is also based on copyright law. The following FAQ(gnu) and FAQ(osi) should be consulted.



The new version Supra 23.1  is  available for download at bottom of page


Supra 23.1:



  • Serious error correction in time management in game mode x / y where x is number of movements and y is time in minutes.
    Norbert Raimund Leisner and Damien Descailloux had warned me to the inability of Supra to manage time in this kind of games, much used in the ELO definition such as CCRL.








                                                       Author's notes:

My project in chess engine was and is a challenge that I set myself as an answer to the  passion that i always had  for chess. Supra Engine is a program written by an amateur programmer (and amateur player!). Being a genuine program suffers a little (yet!) on  the performance  of its  intelligence strategic-positional. However in its first version, SUPRA engine, already  knows   all  the rules of  chess, including past pawns, small and large castling and promotion of pawns, having already  won a few amateur chess programs, for example, XADRECO.


The current version Supra 23.1 is now much stronger than Prédateur 0.1.5





                     Technical Data:

Type: UCI chess engine (only logical program, not have graphic structure, so need a graphical chess program in order to interfere and view. You can connect with any graphics program Chess, for example, fritz, ChessBase Light, Hiarcs, among others).

Language: C + +

Size: approx. 280 000 lines of code provided to version 22.2 (15 000 for version 1.0) 

executable size: approx. 5.0 MB

Creator and implementer: Pedro Mourão Correia (Creator and owner of the mark SUPRASISTEMA




            Current operational characteristics:

- SUPRA is based on an algorithm (Base algorithm) of analysis of material flow similar to the usual minimax.




- Additionally SUPRA still have the alpha beta algorithm with wormhole filtering, Null move pruning, Turbo search, vertical filter, positive/negative float filter and deep memory in a way to cut the number of nodes examined and traverse the search tree faster. Supra has also Internal iterative deepening, Principal variation search, Iterative deepening and killer moves heuristic to sorting the nodes in order of eficience




- SUPRA also has fixed positional matrices that tend in general to make the pieces occupy the center and help pawns moving for promotions. There are still dynamic arrays configurable through the option aggressiveness and temperament that help SUPRA analyze first most advantageous positions. SUPRA now also has extra evaluation to better distinguish and differentiate positions more or less advantageous. the extra evaluation factors are varied such as pawn structure, the number of degrees of freedom and attack to kings.



Explanation of operation of the algorithms used in SUPRA: 



Algorithm Base*: Equivalent to the minimax with evaluation function  based on material gradient and pawn structure.




Filtering algorithms in order of efficiency:  




1- Alpha-beta algorithm (filtering horizontal / vertical: all nodes hereafter condition alpha>=beta will be discarded without loss of accuracy. 100% sure that is the answer is the same but much faster.


2- Wormhole pruning*:  works within the alpha beta and can not exist without it. Its effect is increasingly effective as the deph will increase as more cuts  trough relationship with prior levels of deph are possible. 100% sure that is the answer is the same but much faster than regular alfa beta algorithm.


3- Null move pruning: the opponent instead of throwing passes and leaves Supra play (with deep = deep-2.
If Supra still can not catch beta> alpha then is not worth analyzing in depth this nodethis filtering is not 100% sure but I think surely be very safe


4- TURBO search*:  Turbo filter dynamically enhances the effect of the positive float filter since it allows an fragmentary increase of alpha  allowing a much faster scanning of tree for each alternate move of SUPRA in deph=1.  with IID, Turbo (in SUPRA 14.0) is much enhanced since the increment value equals 1/3 of the pawn over previously computed value for the variant (without risk: because the value of this is pre calculated  initially with deph = deph-2)this filtering is not 100% sure but I think surely be very safe .  


5- Vertical filter*: reduces deph locally whenever we are in a "region" of the search tree in which SUPRA is definitely not just benefit so the research need not be as expanded as it is highly unlikely to see a rise Thurs alfa0 (best value found so far) However the study only deph ends in pairs so with the response of the enemy to ensure the setting. (Vertical filtering: only the child nodes are discarded). this filtering is not 100% sure but I think surely be very safe and only happens above deph 7.


6- Positive and negative float filter*: this filter works in sync with alpha and beta acts through a condition of sufficiency: if the value of alpha is very high (high advantage for SUPRA) or very low beta (high advantage to the opponent ) suspending the search engine in this section even if no have the condition alpha> = beta. (Filtering horizontal / vertical). this filtering is not 100% sure but I think surely be very safe.   


7- Deep memory: 100% secure      





Sorting algorithms of nodes in order of efficiency:




1- Principal variation search (PVS):  Supra for each node starts with a scan with very reduced size window (<1) if the beta value does not get out of the window the search with unlimited window is not performed and Supra saves a lot of time searching for this node. 100% safe.    


2- Internal Iterative Deepening: IID permits a higher sorting of  children nodes of  each parent node  since it allows to identify the most promising node through a pre scan with  deph=deph-2 or deph=deph-4 depending on the original deph. This pre-scan  is very effective saving lots of time to research and enhancing the alpha beta algorithm. IID  make stronger the capabilities of TURBO filt of SUPRA. IID is present since version 13.0 and was greatly improved in version 14.0. 100% safe.


3- killer moves heuristic: At all levels deph whenever there is a court of alpha beta SUPRA memorizes the node corresponding to this cut. And whenever a node starts a expand (analyzing the children of a node) SUPRA always begins by examining first the last killer move of this level deph . 100% safe.   


 4 - Iterative Deepening:  100% safe.




* algorithms totaly designed by me or independently designed by me (if already available)




All code of SUPRA program was designed and executed by me.




             Central objective of the program SUPRA:


Develop an alternative algorithm and 100% original (and starting from a zero base) capable of competing with the usual algorithms of the chess engine even the time for it tends to infinity ...






1-  Early January 2010: Birth of the idea of creating a chess engine.

2- During the first week of January 2010: Referral to Web sites of programming and amateur chess engines. Surface contact with some programming languages (pascal, java and C++).

3- Second half of January 2010: In-depth study of C++

4- Early February: Birth of the first test (main 1)

5- From February to August 2010: Creation of the program algorithm. Massive increase in the size of the code. Many syntactic errors to amend and some of the most obvious logical errors resolved. Many sleepless nights ...

6- From September to December 2010: Consolidation of the algorithm. Slow recovery from logical errors in the program. One hell of puzzles.

7- 3 January 2011: Birth of the first version of the SUPRA chess engine .





I should mention the importance of the following sources:

Silvestro Fantacci website for their help in understanding of UCI protocol

Manual "Notes on Programming in C / C "by Paulo Jorge Santos and Baltarejo, help me to begin understanding the c++ language http://www.dei.isep.ipp.pt/~jsantos/docs/Sebenta-cpp-04-2006.pdf
(you have to paste this adress in address bar)

The book "Programming in C + +" by Joyanes Luis aguilar in resolution of some problems with the program.




                                                             About me:

My name is Pedro and i am addicted to chess.

Sometimes I play with friends and relatives
I am very assiduos player in chessbase (www.playchess.com) with nickname SUPRASISTEMA.

I work on studies center SUPRASISTEMA as teacher of mathematics and physics.

I am an official member of TORR high IQ society (www.torr.org) and of the international high IQ society (www.highiqsociety.org)






I deeply appreciate the comments of support and encouragement as well as all tournaments conducted by various people which I highlight (in Immortal chess forum: herbanmusic, IndianaJones, Dydolec, shahinjy, juandelacruza chessgod101, Fidelio, Silversurfer, CS29797, Behovodec, Кевин, batatas, Adam5 and more!) and (Toposcar in playchess.com) and (Paul and Saemon_Havarian in Torre).
Thanks also to Oliver Deville for having made the first tournament on a grand scale in which SUPRA.



Download package with relevant previous versions

Collection Supra Collection Supra [8.839 Kb]

Tournaments section



Supra 22.0 log 64bit vs Predateur 0.1.5:

Supra 22.0 log 64bit wins: +11/=3/-6  62.5% 12.5/20  +89 ELO

Time:10 min

Open book up to 10 moves

SUPRA is a Portuguese chess engine.




Download Supra 23.1 for Windows


Supra 23.1 Supra 23.1 [8.295 Kb]

Página em Português

Página em Português - Supra


Suprasistema is a study center specializing in supporting studies in Mathematics and Physics


Now it is possible to directly contribute to the development of SUPRA through donations allowed me to exchange teaching hours per hour of programming



Immortal chess is a chess forum and is the forum where SUPRA is more spoken, at least that I know of.

Shahin Jafarli tournaments

Shahin Jafarli tournaments - Supra

Shahin Jafarli made ​​a real odyssey of tournament with SUPRA. A truly remarkable and useful work for the development of SUPRA because he identified flaws and weaknesses of SUPRA and reported me

SUPRA in CCRL 40/4

SUPRA in CCRL 40/4

Also-Rans List made by Adam Hair

Also-Rans List made by Adam Hair

Chess War made by Olivier Deville

Chess War made by Olivier Deville

SUPRA in Blitzchess.fr

SUPRA in Blitzchess.fr

Arena Chess GUI

Arena Chess GUI