Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: engine gui to kibitz out put

Author: Peter Skinner

Date: 21:03:59 01/03/05

Go up one level in this thread


On January 03, 2005 at 19:51:01, mike schoonover wrote:

>hi all,
>i'm currently running smarthink on icc in preperation for cct7.
>i cant seem to get smarthink to kibitz.
>i tried the normal switch's in the ini file.
>is there a gui that will do this automaticcly?
>regards
>mike

Why not just implement the tellics command in SmarThink? Just look at the Crafty
source in option.c or utility.c.

ie. option.c
#if defined(SMP)
      printf("tellicsnoalias set 1 Crafty v%s (%d cpus)\n", version, Max(1,
              max_threads));
      printf("tellicsnoalias kibitz Hello from Crafty v%s! (%d cpus)\n",
          version, Max(1, max_threads));
#else
      printf("tellicsnoalias set 1 Crafty v%s\n", version);
      printf("tellicsnoalias kibitz Hello from Crafty v%s!\n", version);
#endif

ie. utility.c

if (ics)
      printf("*whisper Hello from Crafty v%s !\n", version);
    if (xboard) {
      printf("tellicsnoalias set 1 Crafty v%s (%d cpus)\n", version, Max(1,
              max_threads));
if (strlen(channel_title) && channel)
      sprintf(prefix, "tell %d (%s) ", channel, channel_title);
    else if (channel)
      sprintf(prefix, "tell %d", channel);
    else if (!(kibitz & 16))
      sprintf(prefix, "kibitz");
    else
      sprintf(prefix, "whisper");
    switch (level) {
    case 1:
      if ((kibitz & 15) >= 2) {
        if (value > 0) {
          if (ics)
            printf("*");
          printf("%s mate in %d moves.\n\n", prefix, value);
        }
        if (value < 0) {
          if (ics)
            printf("*");
          printf("%s mated in %d moves.\n\n", prefix, -value);
        }
      }
      break;
    case 2:
      if ((kibitz & 15) >= 2) {
        if (ics)
          printf("*");
        printf("%s ply=%d; eval=%s; nps=%s; time=%s; cpu=%d%%; egtb=%d\n",
            prefix, depth, DisplayEvaluationKibitz(value, wtm), snps,
            DisplayTimeKibitz(time), cpu, tb_hits);
      }
    case 3:
      if ((kibitz & 15) >= 3 && (nodes > 5000 || level == 2)) {
        if (ics)
          printf("*");
        printf("%s %s\n", prefix, pv);
      }
      break;
    case 4:
      if ((kibitz & 15) >= 4) {
        if (ics)
          printf("*");
        printf("%s %s\n", prefix, pv);
      }
      break;
    case 5:
      if ((kibitz & 15) >= 5 && nodes > 5000) {
        if (ics)
          printf("*");
        printf("%s d%d-> %s/s %s %s %s ", prefix, depth, snps,
            DisplayTimeKibitz(time), DisplayEvaluationKibitz(value, wtm), pv);
        if (tb_hits)
          printf("egtb=%d", tb_hits);
        printf("\n");
      }
      break;
    case 6:
      if ((kibitz & 15) >= 6 && nodes > 5000) {
        if (ics)
          printf("*");
        if (cpu == 0)
          printf("%s d%d+ %s/s %s %s %s\n", prefix, depth, snps,
              DisplayTimeKibitz(time), DisplayEvaluationKibitz(value, wtm), pv);
        else
          printf("%s d%d+ %s/s %s >(%s) %s <re-searching>\n", prefix, depth,
              snps, DisplayTimeKibitz(time), DisplayEvaluationKibitz(value,
                  wtm), pv);
      }
      break;
    }
    value = (wtm) ? value : -value;
    if (post && level > 1) {
      if (strstr(pv, "book"))
        printf("	%2d  %5d %7d " BMF6 " %s\n", depth, value, time, nodes,
            pv + 10);
      else
        printf("	%2d  %5d %7d " BMF6 " %s\n", depth, value, time, nodes,
            pv);
    }
    fflush(stdout);
  }

That should be enough to get you headed in the right start. Crafty kibitzes in
every interface except the Chessbase interface.

I prefer to use Winboard with Crafty. It is the easiest to setup, and runs
perfectly. It is tried and true. Why mess with it?

Peter



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.