Looking at the code I believe youilari wrote:I didn't create a Fruit clone and then change things to cripple it. I created a new 100% original engine, and then added Fruit's features (mainly evaluation) to make it stronger.Because he crippled it. (ie "found out" new best things)
The rest, the structure is the same. He just replaced things. In assembly they are even more alike, since the static functions get inlined.
The structure of the search is the same only where it must be. If you've ever written a pvs search you should know this.
I appreciate the offense, but this is getting a bit tiresome.
The difference between fruit and sloppy is clearly more than different names of variables and changing some parameters and replacing code by functions
from sloppy internal iterative deepening:
if (depth >= 3 && in_pv && best_move == NO_MOVE)
from fruit
if (UseIID && depth >= IIDDepth && node_type == NodePV && trans_move == MoveNone)
in_pv is equivelent to node_type=NodePv but it is not a change that you can do by simple replace.
From fruit
static int full_search(board_t * board, int alpha, int beta, int depth, int height, mv_t pv[], int node_type)
From sloppy
search(Chess *chess, int alpha, int beta, int depth, bool in_pv, PvLine *pv)
You can see that Fruit get parameter that is called height when sloppy does not get parameter with that name.
The parameters are basically different(Nore that this is also the way that I compared strelka with fruit and found that they are not the same)
I can add that fruit has another function with the name full_no_null and I do not see if there is something equivalent in sloppy.
I simply cannot see how programmers can start from fruit code and get into sloppy code.
To Tony:
If you think that it is possible to do it easily then I would like to have step by step instruction how to get sloppy code when you start from fruit code.
I believe Ilari that he did not get sloppy's code from fruit's code.
Uri