Hi Pawel,
PK wrote: ↑Fri Mar 06, 2020 9:32 am
shogi4fun, I would be happy to have You as a co-author of Rodent IV, and even to consider Your branch a main one from now on...I might even add a thing or two in the future.
You are embarrassing me.
Thank you very much, for your great offer.
I'm feeling proud and your offer means, that I must rework my code very much and I should restart with your latest source all over again. A lot of much more work than I've thought.
And I would be very happy, if you took an eye on my changes, adding what you want and maybe improving my code.
PK wrote: ↑Fri Mar 06, 2020 9:32 am
From Your description it seems that You know what You are doing.
Oh, you think better about my abilities than I do.
Yes, I know about writing code and in general at least the result would be like I want.
But with implementing chess960 I was close to cry and resign.
Writing ability about chess960 seems not so difficulty (and even I've done it in an earlier project), but you know (better than me) that creating a strong engine it must be time-effective in it's iteration part.
While in standard chess, each move goes to a different square which is empty or an enemy piece, in 960 the king can "catch" itself or enter rook square. That needed a few corrections about the bitboards. But doing wrong things here will raise an error some times later. I almost got insane, till I found that there was an error also on other location, moving bits in my head.
By the way: I've read (or heard?) about bitboards in the past, but reading your code, I finaly got "inside" it. Interesting thing.
PK wrote: ↑Fri Mar 06, 2020 9:32 am
... the only thing I might quibble with is removing relative paths, as they are easier for the user.
Oh, what a big mistake.
I NEVER aiming removing relative pathes - I agree with you by 100%!!!
My target was to make them USEABLE, and (as told) that was the reason I've started coding it.
Absolute pathes were already possible, I haven't to do anything. I want to make relative pathes possible on android.
You've told, you never compiled for android. I don't know how much you know about android, so sorry if I tell you things you already know.
Here in detail:
in my opinion, android is a somewhat strange os, very strictly limited, even not allowing to backup data from your app (at least not easy).
Android don't allow to run programs directly from sdcard and each app has an own folder, only useable by itself.
So each GUI is copying the file from the sdcard to it's own folder.
The program will be run there, but there is no way to know, where the personality- and book-files are.
Of course it can find the files by absolut pathes, but I (as you, as almost all persons) prefere relative pathes, so nothing has to be configured.
To do so,
- rodent first checks, if "/sdcard/Rodent4" exists. If so, it's fine and the needed files can be found (relataive) there
- if not, rodent checks, if "/sdcard/DroidFish/uci/Rodent4" exists. If so, it's fine and the needed files can be found (relative) there
Oh, maybe I missed the following important thing in my post above:
- if also this (and maybe many other) folder don't exists, it uses the folder where the binary is.
This will not help on android, but works as before for windows, linux and what else builds.
Still I've one idea with oex which could be better, but than the GUIs must support it and maybe google will sometime make more restrictions to prevent this way.
---
So to the final things:
One information: unfortunately my multi-threading builds are not working (a long story - not to write here), but I guess, this can be done by others.
And for me (as I belive and also others): the focus on rodent are the personalities and playing against WEAKER styles of them
(And if I'm not wrong, multithreading is not used in analyze mode.)
I've very limited experience with GitHub, but it's fine to use it for rodent.
You've put Rodent3 (as Rodent2) to GitHub, but not Rodent4.
Maybe you like to put (Final)Rodent4 also there?
Would help me a little bit and also the current code would be "frozen" there, to keep history.
Than I'll make a fork of it and this will be the new main branch.
(As told, I'm not much experienced with GitHub, but I guess you can give me rights to your repository, or I give it to you ...)
Would this be okay for you?
---
And finaly a small question, what you prefere:
as others, I've also problems with wordexp.
To make it working, I've created an option-variable.
What default do you prefere?
It can be enabled by default and dissabled with "NO_WORDEXP" or dissabled by default and enabled with "USE_WORDEXP".
I guess, the later one would make it easier for others to compile (instead resigning when getting errors), but maybe they can wonder later, why something isn't working.