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.