Hello!
I started a new engine called Alouette.
In its current state, the engine plays the first legal move that it finds.
It can play chess 960.
Before working on move evaluation, I would like to make the current program as clean as possible.
Comments and suggestions are welcome. It's written in Pascal Object and uses bitboards.
You can download Windows binaries and source code here. I created a Git repository.
Regards.
Roland
Roland Chastain wrote: ↑Fri Mar 29, 2019 12:11 am
Hello!
I started a new engine called Alouette.
In its current state, the engine plays the first legal move that it finds.
It can play chess 960.
Before working on move evaluation, I would like to make the current program as clean as possible.
Comments and suggestions are welcome. It's written in Pascal Object and uses bitboards.
You can download Windows binaries and source code here. I created a Git repository.
Regards.
Roland
Roland Chastain wrote: ↑Fri Mar 29, 2019 12:11 am
Hello!
I started a new engine called Alouette.
In its current state, the engine plays the first legal move that it finds.
It can play chess 960.
Before working on move evaluation, I would like to make the current program as clean as possible.
Comments and suggestions are welcome. It's written in Pascal Object and uses bitboards.
You can download Windows binaries and source code here. I created a Git repository.
Regards.
Roland
So right now it's similar to a random mover or is there some sort of "logic" in the move chosen?
Modern Times wrote: ↑Sun Mar 31, 2019 2:27 pm
I look forward to further development of this engine !
I did run some chess960 games. Most were OK but the GUI did report an illegal move in one of them.
Thank you very much. Yes, there were some illegal moves. There was also a problem with castling notation. I believe it is fixed now. Please find Alouette 0.0.2 here: https://sites.google.com/view/eschecs/alouette
Now the program has a beginning of logic, very simplistic. I hope there is no more bugs.
I would like to explore very simple ideas, and why not make a kind of toy engine for children, with personnalities.
Hello! I fixed a bug in the castling procedure. It was the origin of some illegal moves in FRC mode. I hope it is good now. Please find Alouette 0.0.3 still at the same place.
Now I will try to make a little better move evaluation. If you have some very simple ideas to suggest, you are welcome.
Here is the current evaluation formula:
function Evalue(const APos: TPosition; ACoup: integer): integer;
...
begin
...
result :=
0
+ bonusRoque { bonus for castling }
+ bonusNombreCoups div 3 { bonus for the number of possible "second moves" }
- malusPiecesMenacees { malus for threatened pieces }
- Ord(NomCoup(ACoup) = AvantDernier); { malus for move repetition }
end;
There is no depth in evaluation. The function just evaluates the position after the move.