Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: piece list possibilities

Author: Don Dailey

Date: 07:56:24 07/12/98

Go up one level in this thread


On July 11, 1998 at 19:20:03, Roberto Waldteufel wrote:

>
>On July 11, 1998 at 13:39:34, Don Dailey wrote:
>
>>On July 09, 1998 at 17:14:02, Roberto Waldteufel wrote:
>>
>>>
>>>On July 09, 1998 at 16:25:08, Bruce Moreland wrote:
>>>
>>>>
>>>>On July 09, 1998 at 12:38:17, Robert Hyatt wrote:
>>>>
>>>>>On July 09, 1998 at 10:31:08, Dave Gomboc wrote:
>>>>>
>>>>>>On July 08, 1998 at 20:33:41, Bruce Moreland wrote:
>>>>>>
>>>>>>>
>>>>>>>On July 08, 1998 at 17:27:41, Tom Kerrigan wrote:
>>>>>>>
>>>>>>>>My problem was that I invariably forgot about the dead-bit scheme and did all
>>>>>>>>sorts of calculations assuming that captured pieces existed.
>>>>>>>
>>>>>>>The only place they exist is in the piece list, and unless you are somehow
>>>>>>>randomly accessing your piece list, the only way you'll access this is via a
>>>>>>>loop, so write the loop once and copy-paste :-)
>>>>
>>>>>>Why copy-paste?  What's wrong with a routine and an "inline this" compile
>>>>>>directive?
>>>>
>>>>It'd be hard to inline just the "for" and an "if".  Sure, you could write an
>>>>iterator function that took another function as a parameter, inline everything,
>>>>and hope for the best, but I bet you wouldn't get the best every time.
>>>>
>>>>>two things.  (1) the "inline" attribute in a program only applies to
>>>>>C++;  (2) you can only "suggest" that a C compiler inline a function.  Just
>>>>>like you can "suggest" that a variable be kept in a register by using
>>>>>"register int sq;".  But you can't force it to happen, and you might eat
>>>>>a lot of function call overhead as a result...
>>>>
>>>>It is a suggestion in C++ as well.
>>>>
>>>>bruce
>>>
>>>OK, I'm going to stick my neck out and admit that I program in Basic - don't
>>>laugh too loudly. One thing that is available in that language is the $include
>>>directive, which includes the contents of a specified text file exactly as if it
>>>were typed instead of the $include statement. The same text file can be included
>>>in as many places as you like, so the kind of inline optimization discussed here
>>>is easy to implement. My compiler also allows Basic and assembler code to be
>>>freely intermixed, which is useful for speeding up critical parts of the code. I
>>>don't know how well it would compare with C, however. Does anyone else use
>>>anything but C to write chess programs?
>>>
>>>Best wishes,
>>>Roberto
>>
>>There is no magic language you should use to write chess programs.  The
>>advantages of C are that the compilers are quite good and C is widely
>>available in many platforms.  Basic may be quite good too, I don't
>>really know but I suspect the good compiler technology exists for
>>basic also so I don't see why not.   The #include "filename" works
>>just fine in C and probably other languages as well.
>>
>>My own personal opinion is that most languages will work and it should
>>be possible to write a very strong program in them.  However you cannot
>>expect an interpreted language to work well because of the speed.
>>So compiled Basic, Pascal, C and others should be fine.
>>Rexchess was written in assembly with a little Pascal mixed in.
>>
>>I do think you might have a small edge in using C since it's usually
>>cutting edge and often considered the language of choice for fast
>>efficient optimizations.   If you are adding assembly code (and doing
>>it well) there may little or no difference however.
>>
>>I think it is more important to be happy with the language you are
>>using and feeling productive and comfortable with it.
>>
>>- Don
>
>Hi Don,
>
>I have heard about all sorts of compiler optimization available in C compilers,
>but since I am used to Basic I have stuck with it. Until very recently I only
>had a 16-bit compiler for Basic to create DOS applications, but the
>manufacturers (PowerBasic Inc) have recently released two 32-bit Basic compilers
>for creating Windows programs with very similar syntax to the DOS versions. I
>ported my old code to the new compiler, and it's pretty fast now. The PowerBasic
>compiler also does some fancy optimisation stuff (eg register variables), but I
>have no idea how well it compares to C. It is certainly orders of magnitude
>faster than the Visual Basic Compiler, which is really only an interpretter
>anyway. Interestingly, they have stated there intention to develop versions of
>this compiler for other platforms such as linux and unix in the future, which
>would make it very portable. I mainly use the assembler for doing loops through
>bitboards, since then I can do everything in registers instead of RAM.
>
>I do find it disheartening that everyone quotes code in C, because I have to
>struggle to make any sense of it. I can generally understand Pascal easily
>enough, because the syntax is very similar to Basic, and also to a large extent
>Fortran, although I haven't seen any Fortran code in decades now.
>
>BTW did you manage to find your old RexChess preprocessor code that you
>developped with Larry? You said yo would send it to me of you could find it.
>
>Best wishes,
>Roberto


I did not find the RexChess source code at all.  I went through every
possible source I have (old boxes of diskettes etc.)   Unfortunately
I am not always as well organized as I wish I were.  It looks like
this is lost forever.

However I found a later program of mine with a pre-processor and 2
separate "rulebases", one for middle and one for endgames.  But
the pre-processor is mixed in with dynamic evaluation ulike REX
which was (except for a few pawn structure terms) entirely piece
square pre-processed tables.

The only
problem is that I don't really have the rights to this program and
could not make them available in good conscience.   I am planning on
checking into this after contacting the company that does have the
rights to it.  It's the program that won the 93 ACM international
championship, it's old enough that they might not be interested in it
anymore.  I also must check with Larry Kaufman who is co-author with
me on this one.   If they say no then I must say no too.  I have to
also re-check the contract, there may be a date clause or something.
But I will honor their wishes.

My plan is to make it public domain if possible.  I will make some
changes that will definitely strengthen it too.  All this is
hypothetical so we will have to see.  The program should be very
strong though, it's quite a bit stronger than anything of mine that
ever got released.   The user interface may not be too cool at first
until I figure out what to do about it.   Perhaps the first pass will
be xboard (and winboard) compatibility.

Someone should write a super cool GUI for chess programs (at least for
Unix and Windows) that's trivial to interface  and  public  domain.
Something a lot better than Xboard.   Does anyone know about compatible
gui libraries that are not commercial?   I've considered XFORMS (unix)
but there is no windows version although there is talk of development.
tcl/tk or just tk is one possiblility which I think is available on
both platforms.   Does anyone else have a good sense of what is available
and non-commercial?

- Don



This page took 0.01 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.