Author: Uri Blass
Date: 17:14:25 02/15/05
Go up one level in this thread
On February 15, 2005 at 19:40:18, Thomas Mayer wrote:
>Hi John,
>
>>> I want to start near the end of your posting:
>
>>>> (Forget about Nalimov's EGTB probing code and any other code that can be
>>>> used with permission).
>
>>> THIS is the point where clones are splitted. When everything happens with
>>> permission of the author of the original source and with mentioning him
>>> everywhere, then I am fine with that. Example: Beowulf (original) and
>>> Horizon... or TSCP (original) and Trace (where I believe that the newer
>>> Trace have not much TSCP left in them)
>>> Here, everything is fine...
>
>>> If there is no permission and/or no mentioning copying source-code is
>>> definitely a "no-no" !
>
>>> So the answers:
>
>>>> If the author took Crafty and completely rewrote the evaluation code and
>>>> nothing else, would it be a clone?
>
>>> CLONE
>
>>>> How about if the author rewrote the evaluation code and search algorithm
>>>> only, but left the hashing code, et. al.?
>
>>> CLONE
>
>>>> How about if the author rewrote everything EXCEPT for the evaluation?
>
>>> CLONE
>
>>>> How about if the author rewrote everything EXCEPT for Crafty's evaluation
>>>> of passed pawns?
>
>>> CLONE
>
>>> Why this all ? Well, it's simple: usually you can't take part of Crafty's
>>> code and implement that in your own engine -> it would simply not fit in
>>> your internal datastructures... if it does, then it is suspicious...
>
>> Fair enough, and an easy definition to understand.
>
>> But let's say that an author took TSCP, modified it to some degree and gave
>> Tom credit. Even though you do not call that a clone, would you still say it
>> is acceptable for it to be entered in a tournament like the CCT? Do you think
>> others would complain?
>
>Well, here it starts to get complicated... It depends somehow on the rules: E.g.
>in the official tournaments by the ICGA and those which take these rules (e.g.
>IPCCC and I think Dutch open) it would be problematic to start with just a
>modified program. Or the author of the original must be also mentioned as author
>and then he usually can not start with his own creation -> one program per one
>author...
>TSCP is maybe a bad example, because usually you must increase it's strength a
>lot befor you can enter with it in a tourney -> and therefor the final version
>would not share much with the original... One well known example here is Movei,
>which has started with TSCP, but I would really wonder if there is a single line
>of TSCP left in it's chess code... (Might be more in the user interface) ->
>anyway, this is well known because Uri told this initially and with given
>respect this is what Tom had in mind with his fine TSCP -> to give beginners a
>starting point.
This is not exactly correct.
I want to make clear that I did not started by taking tscp and modifying it.
I started with part of the data structure of tscp but part of the data structure
of tscp was never part of movei(I had never mailbox array in movei because I
started from only writing a different move generator).
Movei still share part of the data varaibles of tscp.
int side;
int ply;
int hply;
int first_move[MAX_PLY];
int castle;
int fifty;
int nodes;
int follow_pv;
int pv_length[MAX_PLY];
This is always part of movei from the beginning(the content is not exactly the
same as tscp but the idea is taken from tscp)
const int castle_mask[64]={
13,15,15,15,12,15,15,14,
15,15,15,15,15,15,15,15,
15,15,15,15,15,15,15,15,
15,15,15,15,15,15,15,15,
15,15,15,15,15,15,15,15,
15,15,15,15,15,15,15,15,
15,15,15,15,15,15,15,15,
7,15,15,15,3,15,15,11};
Tscp has
int castle_mask[64] = {
7, 15, 15, 15, 3, 15, 15, 11,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
13, 15, 15, 15, 12, 15, 15, 14
};
Never used in Movei from the beginning and is part of tscp
If you want to modify tscp and delete these arrays you have to modify a lot of
code
int mailbox[120] = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, -1,
-1, 8, 9, 10, 11, 12, 13, 14, 15, -1,
-1, 16, 17, 18, 19, 20, 21, 22, 23, -1,
-1, 24, 25, 26, 27, 28, 29, 30, 31, -1,
-1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
-1, 40, 41, 42, 43, 44, 45, 46, 47, -1,
-1, 48, 49, 50, 51, 52, 53, 54, 55, -1,
-1, 56, 57, 58, 59, 60, 61, 62, 63, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1
};
int mailbox64[64] = {
21, 22, 23, 24, 25, 26, 27, 28,
31, 32, 33, 34, 35, 36, 37, 38,
41, 42, 43, 44, 45, 46, 47, 48,
51, 52, 53, 54, 55, 56, 57, 58,
61, 62, 63, 64, 65, 66, 67, 68,
71, 72, 73, 74, 75, 76, 77, 78,
81, 82, 83, 84, 85, 86, 87, 88,
91, 92, 93, 94, 95, 96, 97, 98
};
int offsets[6] = {
0, 8, 4, 4, 8, 8
};
int offset[6][8] = {
{ 0, 0, 0, 0, 0, 0, 0, 0 },
{ -21, -19, -12, -8, 8, 12, 19, 21 },
{ -11, -9, 9, 11, 0, 0, 0, 0 },
{ -10, -1, 1, 10, 0, 0, 0, 0 },
{ -11, -10, -9, -1, 1, 9, 10, 11 },
{ -11, -10, -9, -1, 1, 9, 10, 11 }
};
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.