X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=zippy.README;fp=zippy.README;h=0000000000000000000000000000000000000000;hb=b10966961672512a212cc61192d0b08cf91c4c0c;hp=065fb74c96dcb8348f3c0a91bbb2d2e6f16d2545;hpb=e147dd97d26b46902200491dbe0a8755266555d3;p=xboard.git diff --git a/zippy.README b/zippy.README deleted file mode 100644 index 065fb74..0000000 --- a/zippy.README +++ /dev/null @@ -1,422 +0,0 @@ -Zippy README file -For version xboard/WinBoard 4.2.4 and later only ------------------------------------------------------ - -Zippy is a program that lets GNU Chess act as a computer player on an -Internet Chess Server. It also works with Crafty. Zippy is -unsupported, experimental code. - -Zippy is based on XBoard, a graphical interface to GNU Chess and to -the ICS for the X Window system on Unix. Zippy consists of exactly -the same code as XBoard, plus one extra module that ties together the -otherwise-separate functions of talking to GNU Chess and talking to -the ICS. Zippy is included in the XBoard distribution. - -There is also a version of Zippy that is based on WinBoard, a port of -XBoard to Win32 (Microsoft Windows NT and Windows 95). WinBoard does -*not* run on Windows 3.1 or 3.11, not even with Win32s. In versions -3.5 and later, the Zippy code is included in WinBoard.exe. - -If you use Zippy, I ask you to do the following: - -- Don't expect fast response if you send me mail about problems. It -might take weeks for me to get back to you, or I might answer right -away. Try to solve problems yourself before you mail me about them. -Try asking someone who is actively running a Zippy-based player on ICC -or FICS for help getting started. Mail me only if you get stuck. - -- Be honest. Tell the admins of whatever ICS you use that your player -is a computer, so that it gets put onto the computer list, and follow -the ICS computer policies. On ICC these are in "help computer"; read -this file and abide by what it says. - -- If you want to interface some other chess program to ICS, feel free -to start with this code. Some documentation is in the file -engine-intf.html in the distribution. - -- Please do not use the -zt flag to have your program shout Zippy the -Pinhead sayings (or other things that my Zippy shouts). One pinhead -per server is plenty, and I'd like to keep the franchise. Feel free -to use -zt to have your program shout some other kind of sayings if -you like. Some of the jokes that Zippy shouts on ICC came from -ftp://ftp.cco.caltech.edu/pub/humor. The poetry came from Project -Gutenberg; try http://www.cs.cmu.edu/Web/booktitles.html as a starting -point. You might find other suitable material at these sites. Prose -tends to work poorly because it is dull when shouted in isolated -250-character chunks. - - --Tim Mann - http://www.tim-mann.org/chess.html - -* * * - -Unix: To build the Zippy version of xboard, on most systems just do: - configure --enable-zippy - make - -Windows: WinBoard.exe (versions 3.5 and later) includes the Zippy -code. There is no longer a distinct WinZippy.exe. - -In both xboard and WinBoard, the Zippy features are off by default. -You can activate them with two new resources/command line options, and -you can fine-tune them with some new environment variables, all -described below. - -You will probably want to make a shell script or Windows .BAT file -that sets the environment variables you want to use and invokes Zippy -with the right command line options for your situation. Some examples -are at the bottom of this file. - -If you have problems building or running Zippy, see the rest of the -xboard documentation: INSTALL documents the configure program, while -READ_ME and xboard.man (or xboard.txt) document xboard itself, and -WinBoard.hlp documents WinBoard. FAQ answers some frequently asked -questions. The file engine-intf.html contains some information about -the interface between xboard/WinBoard and GNU Chess (or other chess -engines). - -=========== -NEW OPTIONS -=========== - - -zippyPlay True/False or -zp/-xzp - If zippyPlay is set to True, when xboard is in -ics mode, it - will interface a chess engine to the ICS instead of letting you - play. You must also set -ics when you use this mode. - - In zippyPlay mode, xboard blindly issues an accept command for - every (well, almost every, see below) challenge it gets, - without remembering anything about the challenge afterwards. - This means that often it will get several challenges very - close together and try to accept them all! ICS gives an error - message for every accept command after the one that actually - starts a match, but xboard just happily ignores the message. - xboard doesn't actually start the chess engine playing until - the first board image comes in from ICS. - - The getMoveList option controls how adjourned games are - continued. If it is True (the default), xboard fetches the - move list from ICS and feeds it into the chess program before - having the program start play. If False, xboard feeds the - current position into the chess program and has it start from - there. The latter option gets the program going sooner, but - can cause problems with detection of en passant legality, - castling legality (if a king or rook has moved and then - returned to its home square), draw by repetition, and draw by - the 50 move rule. - - In zippyPlay mode, colorization in the ICS interaction window, - and the sounds corresponding to colors in that window, do not - work. zippyPassword and related features (see below) capture - the tells, etc., before they can be matched by the color/sound - code. - - -zippyTalk True/False or -zt/-xzt - If zippyTalk is set to True and xboard is in -ics mode: - - (1) It will reply to anything said to it with a saying (if - there is a file of sayings in its working directory). This - includes channel tells and shouts where its name is mentioned. - Some things it says to opponents in specific situations will - also be made Zippy-ish; you might want to change that. See - zippyLines below for the file format. - - (2) If a player XXX in your notify list logs on, xboard sends - the command "greet XXX" to ICS and tells XXX something from - its sayings file. You can alias this to whatever you like. - If XXX is censoring you, he is automatically removed from your - notify list. - - (3) If a player XXX in your notify list logs off, xboard sends - the command "farewell XXX" to ICS. You can alias this to - whatever you like. Note that the player is already gone, so - telling him something is futile. - - If zippyTalk is on, colorization in the ICS interaction - window, and the sounds corresponding to colors in that window, - do not work. The reply feature captures the tells, etc., - before they can be matched by the color/sound code. - - In both -zp and -zt modes, if admin X spoofs Zippy, Zippy sends the - command "spoofedby X" to ICS. You can alias this to something if you - want; otherwise it will produce a harmless error message. - - -zippyPinhead string - In zippyTalk mode, if user XXX shouts anything containing - this string, xboard sends the command "insult XXX" to ICS. - You can alias "insult" to whatever you like. This feature is - disabled if the option is not set. - - -zippyPassword string - If someone does an ICS "tell" to xboard that begins with this - password, it will type the same string back as a command with - the password stripped off. For example, if the password is - !%%! and xboard sees the string "Darooha tells you: !%%!shout - Hi there", it will type the command "shout Hi there" to the - ICS. This feature is disabled if the option is not set. - - -zippyPassword2 string - If someone does an ICS "tell" to xboard that begins with this - password, it will send the same string directly to the chess - engine with the password stripped off. This feature is - disabled if the option is not set. Use with caution. - - -zippyWrongPassword string - This is a joke feature. If player XXX does an ICS "tell" to - xboard that begins with this password, it will send the - command "wrong XXX" to ICS. ICS does not define a "wrong" - command, but you can alias it to whatever you like. The - feature is supposed to be used after you've changed the - zippyPassword, so that people who knew the old password get a - funny message. Disabled if not set. - - -zippyUseI True/False or -zui/-xzui - If this option is true, Zippy's shouts use the "i" command with - funny verbs; otherwise they use the "shout" command. Default - is true. The variable is automatically set to false if the "i" - command is disabled on ICS by the admins. - - -zippyLines filename - Name of the file Zippy looks in for sayings when -zt is set. - Default: yow.lines. File format: There must be a single ^ - character or null character (control-@, ASCII code \000) after - each saying. Sayings can have newlines in them; Zippy will - remove them. Sayings can be at most about 250 characters; - longer ones will be ignored. The first saying in the file is - never used; you should put a comment there. If you have only - one or two sayings in your file, Zippy may get into a loop - trying to choose one. Zippy chooses a saying by seeking to a - random character position in the file, skipping ahead to the - *next* null character, and printing the saying that starts - there. If it hits end of file without finding a new saying, - it tries again. Yes, this is a dumb algorithm. - - -zippyAcceptOnly string - Normally, Zippy automatically accepts challenges from all - opponents. If this option is set to an ICS login name, Zippy - will auto-accept challenges only from that opponent. Set the - option to an invalid name like "0" if you don't want Zippy to - auto-accept any challenges. You can still accept challenges - manually. Setting this option also suppresses the - zippyGameEnd feature described below. Default: not set. - - -zippyNoplayCrafty True/False or -znc/-xznc - If this option is set to True, if Zippy's opponent kibitzes - "Hello from Crafty" within the first couple of moves, Zippy - will abort the game and add the opponent to his noplay list. - Default: False. - - -zippyGameStart string - At the start of each game Zippy plays (including resuming from - adjournment), it sends this string to ICS, followed by a newline. - If the option is not set, nothing is sent. - - -zippyGameEnd string - At the end of each game, Zippy sends this string to ICS, - followed by a newline. If you do not set this option, the - string "gameend" is sent. This is not a legal ICS command, - but you can alias it to whatever you like, or you can leave - it undefined, which will cause ICS to print a harmless error - message after each game. If you want to send more than one - command at the end of the game, on ICC you can alias gameend - to a "multi" command (see the ICC help files), but on FICS that - does not work. Instead, use the -zippyGameEnd option to have - a string of several commands sent, with newlines in between. - For example, you could give WinBoard the command line option - -zippyGameEnd=\"say thanks\\nseek 5 0\\nseek 2 12\\n\" - Note the extra backslashes: these are essential, because the - shell will strip them from the command before passing it to - XBoard, and XBoard needs to see the quotes (which would - otherwise be stripped by the shell as well), because only within - quotes it will recognize the \n as a linefeed. - - -zippyAdjourn True/False or -zadj/-xzadj - Zippy will allow its opponent to adjourn if this option is - set to true. Default: False. - - -zippyAbort True/False or -zab/-xzab - Zippy will allow its opponent to abort if this option is - set to true. Default: False. - - -zippyVariants string - Zippy will decline to play chess variants unless their names - (as given in engine-intf.html) are listed in this option. - Default: "normal". Example: "suicide,losers,bughouse,normal". - - Obviously, zippyVariants other than "normal" will work only - if your chess engine can play those variants. GNU Chess - certainly cannot, but there are some suicide and bughouse - engines available. While playing bughouse, Zippy passes - certain extra information on to the engine; see - engine-intf.html. - - -zippyBughouse int - This option controls how Zippy handles bughouse partner - requests. If zippyBughouse is set to 0, Zippy will decline - any offers of partnership and tell the offerer that it cannot - play bughouse. If zippyBughouse is set to 1, Zippy will - decline offers, but you can make Zippy your partner by having - *it* offer *you* partnership (by using zippyPassword or typing - directly into its window). If zippyBughouse is set to 2, - Zippy will accept all offers of partnership, even if it - already has a partner. zippyBughouse must be at least 1 for - partner tells to be relayed to the engine with the ptell - command. - - -zippyMaxGames int - -zippyReplayTimeout - If zippyMaxGames > 0, Zippy will play at most the given number - of consecutive games against the same opponent. Thereafter, - Zippy will decline all challenges from that opponent (with an - explanatory tell) until either someone else has played or - zippyReplayTimeout seconds have elapsed. Defaults: - zippyMaxGames=0, zippyReplayTimeout=120. - - Note: If you use these options and you have Zippy doing seeks, - be sure to include the "m" flag in the ICS seek command. If - you use "seek m", when a player responds to the seek, the ICS - gives Zippy a challenge that it can either accept or decline. - If you use a seek without the "m" flag, the ICS immediately - starts a game between Zippy and the first opponent to respond, - giving Zippy no choice about whether to accept or decline. - - -zippyShortGame int - If zippyShortGame > 0, Zippy will decline all challenges - from an opponent that terminated a game before the given number - of ply (with an explanatory tell) until either someone else has - played or zippyReplayTimeout seconds have elapsed. Do not set - the number of moves to large; the number of ply during which - opponents can abort a game without rating change would be a - good setting. Default: zippyShortGame=0. - -===================== -ENVIRONMENT VARIABLES -===================== - - For backward compatibility with version 4.0.2 and earlier only, most - of the command line options listed above can also be set as - environment variables. For boolean options, use 0 for false, 1 for - true in the corresponding environment variable. The following - environment variables are supported.: - - ZIPPYPINHEAD, ZIPPYPASSWORD, ZIPPYPASSWORD2, ZIPPYWRONGPASSWORD, - ZIPPYUSEI, ZIPPYLINES, ZIPPYACCEPTONLY, ZIPPYNOPLAYCRAFTY, - ZIPPYGAMESTART, ZIPPYGAMEEND, ZIPPYADJOURN, ZIPPYABORT, - ZIPPYVARIANTS, ZIPPYBUGHOUSE - - Warnings: (1) If both the command line option and the corresponding - environment variable are set, the environment variable takes - precedence! (2) Some of the environment variables have names that - are too long for Solaris 2.5's /bin/csh. Use the command line - options instead. (3) Newer options DO NOT have environment - variables. If you don't see it in the list above, it doesn't exist. - (4) In the future the environment variables may go away entirely. - It would be a good idea to stop using them now and switch to the - command line options. - -You may also want to customize other things by editing zippy.c and -recompiling the program. - -===================== -ICS VARIABLE SETTINGS -===================== - -You need to do the following settings on ICS: - - set highlight 0 <-- I'm not sure this is still needed - set oldmatch 0 - set examine 0 - -If you want to use the zippyPassword remote-control feature, it's a -good idea to do the following, so that commands you give Zippy won't -be truncated because the ICS wrapped a "tell" to a new line: - - set wrap 0 <-- on ICC, or - set width 255 <-- on FICS - -You will probably want to turn on server-side autoflagging too: - - set autoflag 1 - -====== -SIMULS -====== - -It has been discovered that Zippy can play simuls on ICC (but not on -FICS). If you arrange for Zippy to send the ICC command "simulize" in -the -zippyGameStart string, it will accept additional games while -playing. Zippy will use the same engine for every game, so whenever -it switches opponents, the engine's state will be reset with the "new" -command. This will of course weaken its play, so don't enable simuls -if you want your engine to have the highest possible rating. - -Zippy was never designed to work with simuls; it just works by -accident, and it hasn't been tested much. So please report any bugs -you notice, but don't expect them to be fixed rapidly. - -Be sure to use xboard/WinBoard 4.2.4 or later for simuls, because some -obscure bugs are fixed in that version that affect starting a game in -the middle (as with resuming from adjournments or switching opponents -in a simul). - -As noted under -zippyPlay above, you should have -getMoveList on to -ensure that the engine knows the game history after switching boards -and thus handles draw by repetition and by the 50-move rule correctly. -It should, however, also work to turn off this option to speed things -up and reduce network bandwidth, if you don't mind the engine -occasionally failing to see draw possibilities. Unfortunately, -though, with Crafty 18.3 (and probably other versions too) as the -engine, users trying this have experienced Crafty crashes. This looks -to me like a Crafty bug, but I wasn't able to reproduce it, so it -remains a mystery. - - -======== -EXAMPLES -======== - -Here are some small example command lines. You may want to use more -options; see the man page, info file, or help file, and perhaps the -FAQ file too. You may want to put the command line into a Unix shell -script or Windows .BAT file, which is simply a text file of commands. -On Unix, turn on execute permission for the file (chmod a+x file); on -Windows, give it the extension .BAT. You can then run it just like an -ordinary program. Please do not ask me questions about how to make a -shell script or .BAT file; these are not functions of xboard/WinBoard, -but basic operating system features that you can learn about from -introductory books, friends, teachers, or the online help for your -system. The examples below should be more than enough to get you -started. - -Unix command lines: - -# xboard + GNU Chess on chessclub.com -xboard -zp -ics -icshost chessclub.com -icshelper timestamp \ - -zippyPassword beer - -# xboard + GNU Chess on freechess.org -xboard -zp -ics -icshost freechess.org -icshelper timeseal \ - -# xboard + Crafty on chessclub.com -xboard -zp -ics -icshost chessclub.com \ - -fd /home/crafty -fcp crafty -icshelper timestamp \ - -zippyPassword beer - -# xboard + Crafty on freechess.org -xboard -zp -ics -icshost freechess.org -autoflag \ - -fd /home/crafty -fcp crafty -icshelper timeseal \ - -zippyPassword beer - -Windows command lines: - -REM WinBoard + GNU Chess on chessclub.com -WinBoard -zp -ics -icshost chessclub.com -fcp GNUChess -icshelper timestamp -zippyPassword beer - -REM WinBoard + GNU Chess on freechess.org -WinBoard -zp -ics -icshost freechess.org -fcp GNUChess -icshelper timeseal -zippyPassword beer - -REM WinBoard + Crafty on chessclub.com -WinBoard -zp -ics -icshost chessclub.com -fd C:\Crafty -fcp WCrafty -icshelper timestamp -zippyPassword beer - -REM WinBoard + Crafty on freechess.org -WinBoard -zp -ics -icshost freechess.org -fd C:\Crafty -fcp WCrafty -icshelper timestamp -zippyPassword beer