Durandal

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
Roland Chastain
Posts: 640
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Durandal

Post by Roland Chastain »

Hello everybody!

Durandal is a very simple (and very weak) UCI chess engine written in Pascal, and able to play traditional chess, Fischer random chess, Capablanca chess, Capablanca random chess and Gothic chess.

Source code, Windows and Linux binaries are here:
https://github.com/rchastain/durandal

Regards.

Roland
Qui trop embrasse mal étreint.
User avatar
Tibono
Posts: 79
Joined: Sat Aug 01, 2015 6:16 pm
Location: France

Re: Durandal

Post by Tibono »

Merci Roland !
Cheers,
Eric
User avatar
lithander
Posts: 881
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: Durandal

Post by lithander »

Hi Roland,

I played it in a little tournament and MinimalChess 0.2 (~1000 ELO) didn't lose a single game. But your engine was really fast and I didn't notice any stability problems. So despite it playing as weak as advertised it seems to work just fine!

Are you searching to a fixed depth of four plys? And what do you use as evaluation? I noticed that your engine tends to move pieces back and forth a lot. Is it a clever tactic to try and force draw? ;)
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
Ras
Posts: 2487
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Durandal

Post by Ras »

Congrats! Psacalia is entirely occupied by the legions of C-sar. Well not entirely! One small village of indomitable Pascalians still holds out... 8-)
Rasmus Althoff
https://www.ct800.net
User avatar
Roland Chastain
Posts: 640
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Re: Durandal

Post by Roland Chastain »

lithander wrote: Tue Mar 02, 2021 7:12 pm I played it in a little tournament and MinimalChess 0.2 (~1000 ELO) didn't lose a single game. But your engine was really fast and I didn't notice any stability problems. So despite it playing as weak as advertised it seems to work just fine!
Thank you for testing the program. Glad to known that it seems to work correctly.
lithander wrote: Tue Mar 02, 2021 7:12 pm Are you searching to a fixed depth of four plys? And what do you use as evaluation? I noticed that your engine tends to move pieces back and forth a lot. Is it a clever tactic to try and force draw? ;)
Unfortunately it's rather the result of a very simplistic design. :)

I play only three half moves (including the move to be evaluated) and search the best material balance. After that I keep the moves with the best score and search the best pawn structure and things like that.

When I have time I will see if I can find something to make the playing style less boring. :wink:
Qui trop embrasse mal étreint.
User avatar
Roland Chastain
Posts: 640
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Re: Durandal

Post by Roland Chastain »

Ras wrote: Tue Mar 02, 2021 8:20 pm Congrats! Pascalia is entirely occupied by the legions of C-sar. Well not entirely! One small village of indomitable Pascalians still holds out... 8-)
:)
Qui trop embrasse mal étreint.
User avatar
Roland Chastain
Posts: 640
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Durandal 0.0.9

Post by Roland Chastain »

Hello everybody. Durandal 0.0.9 is available.

https://gitlab.com/rchastain/durandal/-/releases

In the previous version "e1c1" was automatically converted to "e1a1", even in FRC mode, when the rook is really on c1. :)

Thanks to Carlos for forwarding me games where Durandal made illegal moves.

Otherwise it's still the same engine. For the next version I hope I could work on the playing style.

For now only Linux binaries are available. It's easy to build for Windows (provided that you have Free Pascal installed). I have added build instructions in the README file.
Qui trop embrasse mal étreint.
User avatar
Roland Chastain
Posts: 640
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Re: Durandal 0.0.9

Post by Roland Chastain »

Qui trop embrasse mal étreint.
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Durandal 0.0.9

Post by mvanthoor »

Roland Chastain wrote: Fri Jan 21, 2022 5:18 pm ...
Hm...

I think this engine is great for my girlfriend, to play against on the DGT board. She's a beginner in chess (knows the rules + some mating patterns), so even something like MinimalChess 0.2 is already too strong. If you could add some 'time management', even if it is only a command-line option that "wastes" random percentage of the set time so the engine "appears" to think, then it would be a nice option for her :) Maybe I could look into this myself if i can get my 90's Pascal dusted off...

(The lower-rated CCRL-engines are probably stronger than they seem; MMC doesn't play like an 1100 human. It plays more like a 1400 Elo human or thereabouts. Rustic Alpha 1 is also much stronger than any ~1600-1700 I've ever played.)
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
Roland Chastain
Posts: 640
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Durandal 0.1.0 (wait option)

Post by Roland Chastain »

mvanthoor wrote: Fri Jan 21, 2022 8:10 pmIf you could add some 'time management', even if it is only a command-line option that "wastes" random percentage of the set time so the engine "appears" to think, then it would be a nice option for her :)
Good idea. Done. :)

https://gitlab.com/rchastain/durandal/-/releases/0.1.0

(Only Linux binaries for now.)

Please run Durandal with option -w or --wait. I made a quick test. It seems to work.

I made another little modification. When there are several "best moves" (which happens often), the engine takes a random one instead of taking always the first.
Qui trop embrasse mal étreint.