NADYA2.0 engine progress

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
BlueStar
Posts: 16
Joined: Fri Apr 10, 2020 12:41 am
Full name: Craig Hoibakk

Re: NADYA2.0 engine progress

Post by BlueStar » Thu Jul 16, 2020 6:08 am

Tony P. wrote:
Thu Jul 16, 2020 4:42 am
The test-time speed is what's stopping me and probably many others from considering Prolog as a language to write or fork a complete engine in. Out of curiosity, what other languages did you consider, and why did you reject them?
I have to stipulate, the Prolog compiler I am using is crazy fast, and I'm not yet worried about speed issues. Current NPS counts are solely on me focusing on accuracy and diagnostic checks.

As far as considering other languages, I've been writing commercial software for 30+ years in any number of languages. Then COVID-19 happened, and the world went crazy, so I decided to go back to a happy place when I had my first 8086 computer, and remembered Turbo Prolog. Then I asked my daughter Nadya, speed or elegance for a chess program--even though I already knew her answer. I had already decided it was either going to be C++/Assembly or Prolog/C based on her answer.

Here is another code sample of my move generator for example:

Code: Select all

predicates
    promote:(move) -> move nondeterm.

clauses
    promote(M) = Move :-
        Move = if M:is_promotion then M:for_each_promotion() else M end if.

clauses
    for_each_bb_move() = Move :-
        BB = move_bb(for_each_piece(to_play)),
        Move = move::new(This, BB:piece, BB:for_each_pos()).

clauses
    for_each_move() = Board :-
        M = promote(for_each_bb_move()),
        Board = make_move(M).

User avatar
mvanthoor
Posts: 241
Joined: Wed Jul 03, 2019 2:42 pm
Full name: Marcel Vanthoor

Re: NADYA2.0 engine progress

Post by mvanthoor » Wed Jul 29, 2020 9:02 pm

BlueStar wrote:
Fri Jun 19, 2020 9:37 pm
As I mentioned, I've been eyeing your progress on TalkChess, and enjoy seeing the progress you are making with Rustic. Can't wait to play you eventually. If even if Rustic ends up being 20 times faster. :)

Cheers,
C Hoibakk.
I'd love to. I hope you're still making progress?

In my case, Rustic has been on hold for some time. I'm not stuck writing the engine, but I have a vision problem. My eye sight is 35% at the best of time, in only my right eye. (My left eye only has 7% vision since birth.) I'm awaiting a cataract surgery for my right eye at the moment (even though I'm not even CLOSE to an age you'd expect a cataract surgery to be necessary). My vision is exceedingly poor at this time. I can BARELY get through an 8 hour working day and I'm basically wasted in the evening.

The one thing I'm now doing (after some rest after I get home), is building my own custom PicoChess image. ( https://groups.google.com/g/picochess ) It requires only to tinker a bit on the Linux comamnd line, and I know exactly what to do. I can break this up in tiny parts until the image is done... it's only taking me two weeks now instead of half a day. (I intend it to be the basis for my own personal Rustic Chess Computer, in combination with a DGT board.)

This image will be free/open source of course, as it's based on all open source stuff. The only thing you'll need is a Raspberry Pi (any model, except for maybe the A types... I've not yet seen anyone install PicoChess on that one), a DGT chess board and pieces (USB or Bluetooth), and the DGT3000 clock, and you'll have your own chess computer. The DGT board and pieces are not cheap, but great to play on. (And they did introduce a cheaper, somewhat smaller, plastic version; not as DeLuxe as the fully wooden boards and pieces, but it works fine.)

The surgery will be end of next month, and then I'll need about a month of recovery time including having new prescription glasses measured up and waiting for those. If all is well, I'd be back to normal in the beginning of October this year.

I assume Rustic's development will be on halt until at least that time.

(You, and others, may have noticed that I'm not really posting in this forum much in the last two months; and now you know why.)

BlueStar
Posts: 16
Joined: Fri Apr 10, 2020 12:41 am
Full name: Craig Hoibakk

Re: NADYA2.0 engine progress

Post by BlueStar » Wed Jul 29, 2020 10:42 pm

(You, and others, may have noticed that I'm not really posting in this forum much in the last two months; and now you know why.)
Oh wow. I sure hope things improve. Yes, making steady progress. Currently working on: Improving speed in the move generator, adding observation of post-perft chess rules (50 move rule, 3 fold repetition, etc), and integrating the old NADYA1.0 simple board evaluator. I added a non-gui mode for WinBoard, and verified that WinBoard recognizes it and that NADYA2.0 recognizes the first "xboard" command.

I hope things go well for you!

User avatar
mvanthoor
Posts: 241
Joined: Wed Jul 03, 2019 2:42 pm
Full name: Marcel Vanthoor

Re: NADYA2.0 engine progress

Post by mvanthoor » Thu Jul 30, 2020 10:03 am

BlueStar wrote:
Wed Jul 29, 2020 10:42 pm
(You, and others, may have noticed that I'm not really posting in this forum much in the last two months; and now you know why.)
Oh wow. I sure hope things improve. Yes, making steady progress. Currently working on: Improving speed in the move generator, adding observation of post-perft chess rules (50 move rule, 3 fold repetition, etc), and integrating the old NADYA1.0 simple board evaluator. I added a non-gui mode for WinBoard, and verified that WinBoard recognizes it and that NADYA2.0 recognizes the first "xboard" command.

I hope things go well for you!
Thanks for the wishes.

Is there a reason to start with xboard support first? Even though eventually I'll probably support both, I feel that nowadays there are many more UCI GUI's to choose from than xboard GUI's (although some, like Arena, support both).

Post Reply