Author: Uri Blass
Date: 15:39:11 04/21/04
Go up one level in this thread
On April 20, 2004 at 12:45:58, José Carlos wrote:
>On April 20, 2004 at 12:30:06, Uri Blass wrote:
>
>>I want to give users of movei the option to create personality by changing text
>>files.
>>The question is what is the best way to do it.
>>
>>I have a way that can work but I do not like it.
>>Here is my code to let the user to change the futilityprune array
>>
>>Movei is using an array to tell it to prune based on evaluation and remaining
>>depth and other factors.
>>
>>I have in the latest version
>>int futilityprune[6]={0,180,720,1620,2880,4500} when
>>the numbers in that array are never changed.
>>
>>I can let the users to change numbers in a text file by the following code and
>>generate the text file in case that it does not exist but I do not like that
>>code and the question is if programmers use a better code to let the user to
>>change weights in the search or in the evaluation.
>>
>>FILE *evalfile=fopen("movei_eval_details.ini", "r+t");
>>
>>if (!evalfile)
>> {
>> evalfile=fopen("movei_eval_details.ini", "w+t");
>> fputs("0 180 720 1620 2880 4500",evalfile);
>> }
>> fseek(evalfile,0,SEEK_SET);
>> fgets(evalcharinfo,60,evalfile);
>> j=0;
>> i=0;
>> while (j<6)
>> {
>> futilityprune[j]=0;
>> while ((i<60)&&(evalcharinfo[i]>='0')&&(evalcharinfo[i]<='9'))
>> {
>> futilityprune[j]*=10;
>> futilityprune[j]=futilityprune[j]+(int)evalcharinfo[i]-(int)'0';
>> i++;
>> }
>> while (evalcharinfo[i]==' ')
>> i++;
>> j++;
>> }
>>
>>Uri
>
> I don't have time now to read your code (I'm at work) but here's what I do to
>read personality file in Averno (I open the file as binary and fscanf() until
>EOF:
>
>int CargarPersonaje(char *NomFich)
>{
> FILE * Av_Pers;
> char stWord[256] = "\0";
> int nNumber;
>
> strcat(NomFich,".per");
> Av_Pers = fopen(NomFich,"rb");
> if (Av_Pers == NULL)
> {
>#if !defined(WINBOARD)
> printf("\nError reading personality file. Not found: %s\n",NomFich);
>#endif
> return(FALSE);
> }
> while (fscanf(Av_Pers,"%s",stWord) != EOF)
> {
> if (!strcmp(stWord,"APRENDER"))
> {
> fscanf(Av_Pers,"%s",stWord);
> nNumber = atoi(stWord);
> APRENDER = nNumber;
> }
> else if (!strcmp(stWord,"TABLA_HASH"))
> {
> fscanf(Av_Pers,"%s",stWord);
> nNumber = atoi(stWord);
> TABLA_HASH = nNumber;
> }
> else if (!strcmp(stWord,"TABLA_HASH_PEONES"))
> {
> fscanf(Av_Pers,"%s",stWord);
> nNumber = atoi(stWord);
> TABLA_HASH_PEONES = nNumber;
> }
> else if (!strcmp(stWord,"NALIMOV_PATH"))
> {
> fscanf(Av_Pers,"%s",NALIMOV_PATH);
> }
> else if (!strcmp(stWord,"EGTB_CACHE_SIZE"))
> {
> fscanf(Av_Pers,"%s",stWord);
> nNumber = atoi(stWord);
> EGTB_CACHE_SIZE = nNumber*1024*1024;
> }
> else if (!strcmp(stWord,"LIBROB_FICH"))
> {
> fscanf(Av_Pers,"%s",LIBROB_FICH);
> }
> else if (!strcmp(stWord,"LIBRON_FICH"))
> {
> fscanf(Av_Pers,"%s",LIBRON_FICH);
> }
> else if (!strcmp(stWord,"ICS"))
> {
> fscanf(Av_Pers,"%s",stWord);
> nNumber = atoi(stWord);
> ICS = nNumber;
> }
> else if (!strcmp(stWord,"AP_SEGUNDOS_MIN"))
> {
> fscanf(Av_Pers,"%s",stWord);
> nNumber = atoi(stWord);
> AP_SEGUNDOS_MIN = nNumber;
> }
> else if (!strcmp(stWord,"SELECTIVIDAD_LIBRO"))
> {
> fscanf(Av_Pers,"%s",stWord);
> nNumber = atoi(stWord);
> SELECTIVIDAD_LIBRO = nNumber;
> }
> else if (!strcmp(stWord,"LIMITE_ACEPTACION"))
> {
> fscanf(Av_Pers,"%s",stWord);
> nNumber = atoi(stWord);
> LIMITE_ACEPTACION = nNumber;
> }
> }
>#if !defined(WINBOARD)
> printf("Dimensionando tabla hash...\n");
>#endif
> DimensionarTablaHash(TABLA_HASH);
> DimensionarTablaHashPeones(TABLA_HASH_PEONES);
> DimensionarTablaHashAtaques(TABLA_HASH_ATAQUES);
> return(TRUE);
>}
>
> José C.
Thanks but I do not understand the code
What is char *NomFich
I guess it is a string and you have a function to translate
Averno.per to a string but in this case I do not understand how you build a
binary file from the string (Av_Pers).
When I try to use a similiar code I always get that the file that is defined in
your function is null.
Uri
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.