home *** CD-ROM | disk | FTP | other *** search
- From: ml@brumuc.muc.sub.org (Marc Laukien)
- Newsgroups: alt.sources
- Subject: UnixChess04/10
- Message-ID: <1991May20.003140.6377@brumuc.muc.sub.org>
- Date: 20 May 91 00:31:40 GMT
-
- Submitted-by: ml@brumuc.muc.sub.org
- Archive-name: UnixChess/part04
-
- ---- Cut Here and feed the following to sh ----
- #!/bin/sh
- # this is chess.04 (part 4 of UnixChess)
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file ad/tour_comp.c continued
- #
- if test ! -r _shar_seq_.tmp; then
- echo 'Please unpack part 1 first!'
- exit 1
- fi
- (read Scheck
- if test "$Scheck" != 4; then
- echo Please unpack part "$Scheck" next!
- exit 1
- else
- exit 0
- fi
- ) < _shar_seq_.tmp || exit 1
- if test ! -f _shar_wnt_.tmp; then
- echo 'x - still skipping ad/tour_comp.c'
- else
- echo 'x - continuing file ad/tour_comp.c'
- sed 's/^X//' << 'SHAR_EOF' >> 'ad/tour_comp.c' &&
- X else if((farbe=='w' && W_IS_OPP())
- X || (farbe=='s' && B_IS_OPP()))
- X { /* Computerzug */
- X int x;
- X
- X mvaddstr(2,MPOS,thinking);/* Status ausgeben */
- X move(23,79);
- X refresh();
- X
- X schach("comp",ptr); /* Zug holen */
- X
- X ad_brett(); /* Brett aufbauen */
- X
- X schach("info",ptr); /* Info holen */
- X farbe=ptr[0][0]; /* Farbe am Zug */
- X
- X move(2,MPOS); /* Meldung loeschen */
- X for(x=stdscr->_curx;x<79;x++) /* loeschen */
- X mvaddch(stdscr->_cury,x,(int)' ');
- X }
- X else
- X /*--- Spieler ------------------------------------------*/
- X {
- X ad_read(0,&ch,1); /* einlesen */
- X
- X if(isupper(ch)) /* gross ? */
- X ch=tolower(ch);
- X
- X ad_flush(); /* restliche Zeichen wegwerfen */
- X
- X ret=ad_domenu(ch); /* auswerten */
- X
- X if(ret==0) /* Ende ? */
- X {
- X schach("info",ptr); /* Info holen */
- X
- X if(atoi(ptr[1]) != old_moves)
- X { /* veraendert ? */
- X ad_lock();
- X sprintf(s,"save %s",stdname);
- X schach(s,ptr); /* Speichern */
- X ad_unlock();
- X }
- X break;
- X }
- X else if(ret==2) /* Aufgeben ? */
- X if(ad_sure('a'))
- X {
- X move(3,MPOS);
- X
- X addstr(wei==0 ? w_up:b_up);
- X ende = wei==0 ? W_AUFG:S_AUFG;
- X }
- X }
- X
- X /*--- alles ausgeben -----------------------------------*/
- X
- X move(23,79); /* Cursor weg */
- X refresh(); /* ausgeben */
- X }
- X
- X stdname[0]='\0'; /* Kein Standardname */
- }
- SHAR_EOF
- echo 'File ad/tour_comp.c is complete' &&
- chmod 0644 ad/tour_comp.c ||
- echo 'restore of ad/tour_comp.c failed'
- Wc_c="`wc -c < 'ad/tour_comp.c'`"
- test 3534 -eq "$Wc_c" ||
- echo 'ad/tour_comp.c: original size 3534, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= ad/expire.c ==============
- if test -f 'ad/expire.c' -a X"$1" != X"-c"; then
- echo 'x - skipping ad/expire.c (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting ad/expire.c (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ad/expire.c' &&
- /****************************************************************/
- /* */
- /* XChess V2.7 Adapter: Curses */
- /* */
- /* (c) 1991 by Marc Laukien */
- /* */
- /* Programmteil: Expire */
- /* */
- /****************************************************************/
- X
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <dirent.h>
- #include <string.h>
- #include <stdio.h>
- #include <curses.h>
- X
- #include "ad.h"
- X
- /****************************************************************/
- /* Expire */
- /****************************************************************/
- X
- void ad_expire()
- X
- {
- X char c;
- X int i,j;
- X DIR *dir; /* Directory - Struktur */
- X struct dirent *dp; /* Directorypointer */
- X char str[STRLEN],str2[STRLEN*5]; /* String */
- X char *s[3];
- X char white[STRLEN],black[STRLEN]; /* Namen der Spieler */
- X struct stat sbuf; /* Statusinfo. */
- X
- X lex(); /* Strings einlesen */
- X
- X if( (dir=opendir("save"))==(DIR *)0 ) /* oeffnen */
- X {
- X ad_error(""); /* Fehler */
- X return;
- X }
- X
- X while( (dp=readdir(dir)) != (struct dirent *)0 ) /* Ende ? */
- X {
- X strcpy(str,dp->d_name); /* kopieren */
- X
- X i=0;
- X j=0;
- X s[j++]=str;
- X while(str[i]!='\0') /* String aufbereiten */
- X {
- X if(str[i]=='.')
- X {
- X str[i++]='\0'; /* beenden */
- X s[j++]=str+i;
- X }
- X
- X if(j>=3)
- X break;
- X
- X i++;
- X }
- X
- X if(j==3) /* Spiel gefunden ? */
- X {
- X double days;
- X
- X sprintf(str2,"save/%s.%s.%s",s[0],s[1],s[2]);
- X
- X strcpy(white,ad_revid(s[0])); /* Namen */
- X strcpy(black,ad_revid(s[1]));
- X
- X if(stat(str2,&sbuf)== -1)
- X {
- X ad_error(""); /* Fehler */
- X return;
- X }
- X
- X days=(double) /* Anzahl der Tage */
- X (time((long *)0)-(long)sbuf.st_mtime) /
- X (24.0 * 60.0 * 60.0) ;
- X
- X if(days > (double)(EXPIRE)) /* ueberschritten ? */
- X {
- X sprintf(str2,"loadinfo save/%s.%s",s[0],s[1]);
- X /* Kommandostring */
- X schach(str2,ptr); /* Info anfordern */
- X
- X if(atoi(ptr[1]) > MOVES /* Mehr als MOVES Zuege ? */
- X && !(ptr[0][0]=='w' && s[0][0]=='~')
- X && !(ptr[0][0]=='s' && s[1][0]=='~'))
- X /* Schwarz oder Weiss am Zug ? */
- X {
- X /* Highscoreeintrag */
- X
- X switch(ptr[0][0]) /* Farbe */
- X {
- X case 'w': /* Weiss */
- X ad_addscore_expire('B',white,black);
- X /* Score */
- X
- X if(s[0][0] != '~') /* Kein Comp. ? */
- X {
- X sprintf(str2,
- "echo \"Chess game has timed out !\\nYou've lost the game \\\"%s vs. %s\\\".\" | %s %s",
- X white,black,MAIL,white);
- X system(str2);
- X break;
- X }
- X
- X if(s[1][0] != '~') /* Kein Comp. ? */
- X {
- X sprintf(str2,
- "echo \"Chess game has timed out !\\nYou've won the game \\\"%s vs. %s\\\".\" | %s %s",
- X white,black,MAIL,black);
- X system(str2);
- X break;
- X }
- X
- X case 's': /* Schwarz */
- X ad_addscore_expire('W',white,black);
- X /* Score */
- X
- X if(s[1][0] != '~') /* Kein Comp. ? */
- X {
- X sprintf(str2,
- "echo \"Chess game has timed out !\\nYou've lost the game \\\"%s vs. %s\\\".\" | %s %s",
- X white,black,MAIL,black);
- X system(str2);
- X break;
- X }
- X
- X if(s[0][0] != '~') /* Kein Comp. ? */
- X {
- X sprintf(str2,
- "echo \"Chess game has timed out !\\nYou've won the game \\\"%s vs. %s\\\".\" | %s %s",
- X white,black,MAIL,white);
- X system(str2);
- X break;
- X }
- X }
- X }
- X else /* Kein Verlierer */
- X {
- X if(s[0][0] != '~') /* Kein Comp. ? */
- X {
- X sprintf(str2,
- "echo \"Chess game has timed out !\\nThe game \\\"%s vs. %s\\\" has been removed.\" | %s %s",
- X white,black,MAIL,white);
- X system(str2);
- X }
- X
- X if(s[1][0] != '~') /* Kein Comp. ? */
- X {
- X sprintf(str2,
- "echo \"Chess game has timed out !\\nThe game \\\"%s vs. %s\\\" has been removed.\" | %s %s",
- X white,black,MAIL,black);
- X system(str2);
- X }
- X }
- X
- X /* Spiel loeschen */
- X sprintf(str2,"save/%s.%s.ch",s[0],s[1]);
- X if(unlink(str2) == -1) /* loeschen */
- X ad_error("");
- X }
- X else if(days > (double)(EXPIRE)-3.0)
- X { /* Noch 3 Tage */
- X if(s[0][0] != '~') /* Kein Comp. ? */
- X {
- X sprintf(str2,
- "echo \"Attention !\\nThe game \\\"%s vs. %s\\\" will expire in %d days.\" | %s %s",
- X white,black,
- X (int)(EXPIRE) - (int)days,
- X MAIL,white);
- X system(str2);
- X }
- X
- X if(s[1][0] != '~') /* Kein Comp. ? */
- X {
- X sprintf(str2,
- "echo \"Attention !\\nThe game \\\"%s vs. %s\\\" will expire in %d days.\" | %s %s",
- X white,black,
- X (int)(EXPIRE) - (int)days,
- X MAIL,black);
- X system(str2);
- X }
- X }
- X
- X } /* Ende Spiel gefunden */
- X
- X } /* Ende Directory lesen */
- X
- X closedir(dir);
- }
- SHAR_EOF
- chmod 0644 ad/expire.c ||
- echo 'restore of ad/expire.c failed'
- Wc_c="`wc -c < 'ad/expire.c'`"
- test 4458 -eq "$Wc_c" ||
- echo 'ad/expire.c: original size 4458, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= ad/setup.c ==============
- if test -f 'ad/setup.c' -a X"$1" != X"-c"; then
- echo 'x - skipping ad/setup.c (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting ad/setup.c (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ad/setup.c' &&
- /****************************************************************/
- /* */
- /* XChess V2.7 Adapter: Curses */
- /* */
- /* (c) 1991 by Marc Laukien */
- /* */
- /* Programmteil: Setup */
- /* */
- /****************************************************************/
- X
- #include <curses.h>
- #include <stdio.h>
- #include <ctype.h>
- #include <string.h>
- #include "ad.h"
- X
- static void ad_piece();
- X
- /****************************************************************/
- /* Setupmenue */
- /****************************************************************/
- X
- void ad_setup()
- X
- {
- X int i; /* Zeile */
- X char ch;
- X
- X if(TURNIER()) /* Turnierspiel ? */
- X {
- X ad_error(not_allowed);
- X return;
- X }
- X
- X setupwin=newwin(11,27,11,50); /* neues setupwindow */
- X box(setupwin,0,0); /* mit Rahmen */
- X
- X for(i=0;i<5;i++)
- X {
- X wmove(setupwin,i+2,2); /* positionieren */
- X waddstr(setupwin,smenu[i]+1); /* ausgeben */
- X }
- X
- X wrefresh(setupwin); /* ausgeben */
- X
- X do
- X {
- X touchwin(stdscr);
- X wnoutrefresh(stdscr);
- X
- X touchwin(setupwin);
- X
- X wmove(setupwin,5,1+strlen(smenu[3])); /* Farbe am Zug */
- X for(i=1+strlen(smenu[3]);i<26;i++)
- X waddstr(setupwin," "); /* loschen */
- X
- X wmove(setupwin,5,1+strlen(smenu[3]));
- X
- X if(farbe=='w')
- X waddstr(setupwin,white);
- X else
- X waddstr(setupwin,black);
- X
- X wnoutrefresh(setupwin);
- X doupdate();
- X
- X move(23,79);
- X refresh();
- X
- X ad_read(0,&ch,1); /* einlesen */
- X
- X if(isupper(ch)) /* gross ? */
- X ch=tolower(ch);
- X
- X ad_flush(); /* restliche Zeichen wegwerfen */
- X
- X if(ch<='h' && ch>='a')
- X ad_piece(ch);
- X else if(ch == smenu[0][0]) /*** Laden ***/
- X ad_load();
- X else if(ch == smenu[1][0]) /*** Save ***/
- X ad_save();
- X else if(ch == smenu[2][0]) /*** Loeschen ***/
- X {
- X schach("loeschen",ptr);
- X ad_brett();
- X }
- X else if(ch == smenu[3][0]) /*** Farbe wechseln ***/
- X {
- X if(farbe == 'w') /* Weiss ? */
- X {
- X farbe = 's'; /* aendern */
- X schach("schwarz",ptr);
- X }
- X else /* Schwarz */
- X {
- X farbe = 'w'; /* aendern */
- X schach("weiss",ptr);
- X }
- X }
- X else if(ch != smenu[4][0])
- X beep();
- X }
- X while(ch != smenu[4][0]); /* Ende ? */
- X
- X delwin(setupwin); /* Fenster aus */
- X setupwin=(WINDOW *)0;
- X touchwin(stdscr);
- }
- X
- static void ad_piece(ch)
- X
- char ch;
- {
- X char str[STRLEN],str2[STRLEN]; /* String */
- X int i;
- X static char *ofigtab="bsltdkBSLTDK.";
- X
- X wmove(setupwin,9,2); /* in Position */
- X strcpy(str2,figtab); /* Space durch Punkt ersetzen */
- X str2[strlen(str2)-1]='.';
- X waddstr(setupwin,str2); /* Figurenliste */
- X
- X strcpy(str,"setze "); /* aufbereiten */
- X
- X wmove(setupwin,8,2); /* in Position */
- X waddstr(setupwin,doset); /* Meldung */
- X waddch(setupwin,ch|A_UNDERLINE); /* ausgeben */
- X sprintf(str+strlen(str),"%%c%c",(char)ch); /* aufbereiten */
- X wrefresh(setupwin);
- X
- l1: ad_read(0,&ch,1); /* einlesen */
- X if(ch=='\b') /* zurueck ? */
- X {
- X waddstr(setupwin,"\b \b");
- X str[strlen(str)-1]=0;
- X wrefresh(setupwin);
- X goto l5;
- X }
- X if(ch<(int)'1' || ch>(int)'8')
- X {
- X beep();
- X goto l1;
- X }
- X waddch(setupwin,ch|A_UNDERLINE); /* ausgeben */
- X sprintf(str+strlen(str),"%c",(char)ch); /* aufbereiten */
- X waddch(setupwin,(int)'='|A_UNDERLINE);
- X wrefresh(setupwin);
- X
- l2: ad_read(0,&ch,1); /* einlesen */
- X if(ch=='\b') /* zurueck ? */
- X {
- X waddstr(setupwin,"\b \b");
- X str[strlen(str)-1]=0;
- X waddstr(setupwin,"\b \b");
- X str[strlen(str)-1]=0;
- X wrefresh(setupwin);
- X goto l1;
- X }
- X
- X for(i=0;str2[i]!='\0';i++)
- X if(str2[i]==ch)
- X break;
- X
- X if(figtab[i]=='\0') /* nicht gefunden */
- X {
- X beep();
- X goto l2;
- X }
- X waddch(setupwin,ch|A_UNDERLINE); /* ausgeben */
- X sprintf(str2,str,ofigtab[i]); /* aufbereiten */
- X wrefresh(setupwin);
- X
- X schach(str2,ptr); /* ziehen */
- X if(ptr[0][0]!='?') /* zug ok ? */
- X ad_brett();
- X else /* falscheingabe */
- X beep();
- X
- l5: wmove(setupwin,8,2); /* in Position */
- X for(i=0;i<16;i++) /* loschen */
- X waddstr(setupwin," ");
- X
- X wmove(setupwin,9,2); /* in Position */
- X for(i=0;i<16;i++) /* loschen */
- X waddstr(setupwin," ");
- X wrefresh(setupwin);
- }
- SHAR_EOF
- chmod 0644 ad/setup.c ||
- echo 'restore of ad/setup.c failed'
- Wc_c="`wc -c < 'ad/setup.c'`"
- test 3935 -eq "$Wc_c" ||
- echo 'ad/setup.c: original size 3935, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= br/break.c ==============
- if test ! -d 'br'; then
- echo 'x - creating directory br'
- mkdir 'br'
- fi
- if test -f 'br/break.c' -a X"$1" != X"-c"; then
- echo 'x - skipping br/break.c (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting br/break.c (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'br/break.c' &&
- /****************************************************************/
- /* */
- /* XChess V2.7 Adapter: Curses */
- /* */
- /* (c) 1991 by Marc Laukien */
- /* */
- /* Programmteil: Programmunterbrechung */
- /* */
- /****************************************************************/
- X
- #include <signal.h>
- #include <fcntl.h>
- #include <stdio.h>
- X
- /****************************************************************/
- /* Hauptprogramm */
- /****************************************************************/
- X
- main()
- X
- {
- X int ppid; /* Parent Process ID */
- X char c,c2;
- X int flags; /* Flags fuer read() */
- X
- X ppid=getppid();
- X
- X flags=fcntl(0,F_GETFL,0); /* flags retten */
- X
- X while(1)
- X {
- X read(0,&c,1); /* Zeichen einlesen */
- X
- X /* Buffer leeren */
- X fcntl(0,F_SETFL,flags | O_NDELAY); /* blockierung aus */
- X while(read(0,&c2,1)); /* Zeichen lesen */
- X fcntl(0,F_SETFL,flags & ~O_NDELAY); /* blockierung ein */
- X
- X switch(c)
- X {
- X case (char)27: /* Escape */
- X kill(ppid,SIGUSR2);
- X break;
- X
- X case (char)12: /* ^ L -> refresh */
- X kill(ppid,SIGUSR1);
- X break;
- X
- X default:
- X write(1,&c,1);
- X break;
- X }
- X }
- }
- SHAR_EOF
- chmod 0644 br/break.c ||
- echo 'restore of br/break.c failed'
- Wc_c="`wc -c < 'br/break.c'`"
- test 1141 -eq "$Wc_c" ||
- echo 'br/break.c: original size 1141, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= ad/ad.h ==============
- if test -f 'ad/ad.h' -a X"$1" != X"-c"; then
- echo 'x - skipping ad/ad.h (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting ad/ad.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ad/ad.h' &&
- /****************************************************************/
- /* Includefile fuer XChess V2.7 Curses Adapter */
- /* (c) 1991 by M.Laukien */
- /****************************************************************/
- X
- #define PTR 200 /* Anzahl der moeglichen Antworten */
- #define STRLEN 81 /* Laenge von Strings */
- #define ADM_RAND 12 /* Einruecken beim Administrationsmenue */
- #define MPOS 47 /* Position des Spielmenues */
- X
- #define PATT 1 /* Status */
- #define W_MATT 2
- #define S_MATT 3
- #define W_AUFG 4
- #define S_AUFG 5
- X
- #ifndef WORKDIR
- #define WORKDIR "."
- #endif
- X
- #define UEBUNG() (gegner[0]=='\0') /* Uebungsspiel */
- #define TURNIER() (gegner[0]!='\0') /* Turnierspiel */
- #define TURNGEG() (gegner[0]!='\0' && gegner[0]!='~')
- X /* Turnier gegen Gegner */
- #define TURNCOM() (gegner[0]=='~') /* Turnier gegen Comp. */
- X
- #define W_IS_USER() (!wei) /* Weiss ist User */
- #define B_IS_USER() (!sch) /* Schwarz ist User */
- #define W_IS_OPP() (wei) /* Weiss ist Gegner */
- #define B_IS_OPP() (sch) /* Schwarz ist Gegner */
- X
- extern int errno; /* Fehlernummer */
- extern char *sys_errlist[]; /* Fehlertexte */
- X
- extern char *pname; /* Prgname: argv[0] */
- extern char *cwd; /* Working Directory */
- extern char stdname[]; /* Standardname fuers Speichern */
- extern char def[]; /* Sprache */
- extern int lock; /* Falls 1: Lock erworben */
- extern int curses; /* Falls 1: Curses an */
- extern int inter; /* Falls 1: Es war ein Interrupt*/
- extern int break_pid; /* Prozessid des Unterbrechers */
- extern WINDOW *win; /* Subwindow */
- extern WINDOW *setupwin; /* Setup-Subwindow */
- X
- extern char *amenu[]; /* Adm.-Menuestrings */
- extern char *menu[]; /* Menuestrings */
- extern char *smenu[]; /* Setup-Menuestrings */
- extern char *info[]; /* Infostrings */
- extern char *tr_lv; /* Trainingslevel */
- extern char *to_lv; /* Turnierlevel */
- extern char *press_key; /* <Taste> */
- extern char *tlist; /* Ueberschrift Turnier */
- extern char *ulist; /* Ueberschrift Training*/
- extern char *scorelist; /* Ueberschrift Score */
- extern char *sure; /* Sicherheitsabfrage */
- extern char *give_up; /* Aufg. Abfrage */
- extern char *figtab; /* Figurentab. */
- extern char *comp; /* Computername */
- extern char *white,*black; /* Farben */
- extern char *domove; /* Zug */
- extern char *doset; /* Setup */
- extern char *enter; /* Namen eing. */
- extern char *opponent; /* Gegner eing. */
- extern char *error; /* Fehler */
- extern char *not_allowed; /* nicht erlaubt */
- extern char *no_user; /* kein User */
- extern char *figlist; /* geschl. Fig. */
- extern char *ison,*isoff; /* Ein/Aus */
- extern char *thinking; /* Comp. denkt */
- extern char *is_thinking; /* Gegner denkt */
- extern char *load_lib; /* Lade Eroeffnungen */
- extern char *startcmd; /* Startkommando */
- extern char *patt,*w_mate,*b_mate; /* Status */
- extern char *w_chess,*b_chess;
- extern char *w_up,*b_up;
- extern char *remis_3;
- X
- extern char farbe; /* w=weiss,s=schwarz */
- extern int wei; /* 0=Spieler */
- extern int sch; /* 1=Computer oder Gegener */
- extern char gegner[]; /* Spielgegner (leer:Computer) */
- extern int level; /* Stufe */
- extern int ende; /* 1:Matt oder Patt */
- extern int modus; /* eingestellter Modus */
- X
- extern int old_moves; /* Anzahl der Zuege bei Spielbeginn */
- X
- extern char ant[PTR][81]; /* Antworten */
- extern char *ptr[PTR]; /* Pointer auf Antw. */
- X
- extern char *getcwd(); /* externe Funktionen */
- extern char *getenv();
- extern char *getlogin();
- extern int atoi();
- extern int unlink();
- X
- extern void ad_admin(); /* Administrationsmenue */
- extern void ad_game(); /* Spielmenue */
- extern void ad_tr_game(); /* Trainingsspiel */
- extern void ad_tc_game(); /* Turnierspiel gegen Computer */
- extern void ad_tu_game(); /* Turnierspiel gegen Gegner */
- extern void ad_game_screen(); /* Spielscreen */
- extern void ad_admin_screen(); /* Hauptmenue */
- extern void ad_menu(); /* Menue ausgeben */
- extern void ad_amenu(); /* Administrationsmenue ausg. */
- extern void ad_status(); /* Status ausgeben */
- extern void ad_analyse(); /* Analyse ausgabe */
- extern void ad_tliste(); /* Turnierliste ausgeben */
- extern void ad_uliste(); /* Uebungsspielliste */
- extern void ad_break(); /* Denken abbrechen */
- extern void ad_brett(); /* Brett ausgeben */
- extern void ad_deinit(); /* Deinitialisierungen */
- extern void ad_error(); /* Fehlermeldung */
- extern void ad_msg(); /* Meldung */
- extern void ad_flush(); /* Eingabe leeren */
- extern void ad_info(); /* Informationen ausg. */
- extern void ad_init(); /* Initialisierungen */
- extern void ad_interrupt(); /* Interrupt */
- extern void ad_new(); /* Programm Neustart */
- extern void ad_remove(); /* Spiel loeschen */
- extern void ad_refresh(); /* Refresh-Interrupt */
- extern void ad_startint(); /* Interrupt starten */
- extern void ad_zug(); /* Zug ausfuehren */
- extern void ad_extzug(); /* externen Zug ausfuehren */
- extern void ad_load(); /* Spiel laden */
- extern void ad_save(); /* Spiel speichern */
- extern void ad_lock(); /* File locken */
- extern void ad_unlock(); /* File unlocken */
- extern void ad_locksc(); /* Score locken */
- extern void ad_unlocksc(); /* Score unlocken */
- extern void ad_zurueck(); /* Zug zuruecknehmen */
- extern void ad_showscore(); /* Highscoreliste ausgeben */
- extern void ad_addscore(); /* Score eintragen */
- extern void ad_addscore_expire(); /* dito. fuer expire */
- extern void ad_expire(); /* Expire */
- extern void ad_setup(); /* Setup-Menue */
- X
- extern void lex(); /* lex-Analyse */
- extern void insert(); /* String einfuegen */
- X
- extern char *ad_name(); /* Name einlesen */
- extern char *ad_id(); /* ID-String liefern */
- extern char *ad_revid(); /* Name zu ID liefern */
- X
- extern int ad_domenu(); /* Menueauswertung */
- extern int ad_read(); /* Eigenes read() */
- extern int ad_sure(); /* Sicherheitsabfrage */
- extern int main(); /* Hauptprogramm */
- SHAR_EOF
- chmod 0644 ad/ad.h ||
- echo 'restore of ad/ad.h failed'
- Wc_c="`wc -c < 'ad/ad.h'`"
- test 6012 -eq "$Wc_c" ||
- echo 'ad/ad.h: original size 6012, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= ch/ch.h ==============
- if test -f 'ch/ch.h' -a X"$1" != X"-c"; then
- echo 'x - skipping ch/ch.h (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting ch/ch.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ch/ch.h' &&
- /****************************************************************/
- /* */
- /* Includefile fuer XChess V2.7 */
- /* */
- /* (c) 1991 by Marc Laukien */
- /* */
- /****************************************************************/
- X
- /* Diverse Definitionen */
- X
- #define MAXOP 5000 /* Max. Eroeffnungszahl */
- #define OPTRYS 10 /* Zugriffsversuche */
- #define MAXSP 200 /* Max. Zuganzahl */
- #define MAXTIEFE 10 /* Max. Rechentiefe */
- #define STRLEN 81 /* Laenge von Strings */
- #define RAND 2 /* Offset vom Spielfeld */
- #define ZLEN 12 /* Zeilenlaenge */
- #define GROE 144 /* Spielfeldgroesse = */
- X /* (8+2*RAND)^2 */
- #define MAXZUG 200 /* Max. Zugmgl. in zlist*/
- #define MATT 1000000L /* schlechteste Bew. */
- #define TAB (char)9 /* Tabulator */
- X
- typedef unsigned char BYTE; /* sinnvolle Typen */
- typedef unsigned short WORD;
- typedef unsigned long LWORD;
- X
- typedef struct spieldaten /* Spieldatenstruktur */
- {
- X BYTE brett[GROE]; /* Spielfeld */
- X BYTE wkpos,skpos; /* Koenigsposition */
- X WORD zlist[MAXZUG]; /* Zugliste */
- X long blist[MAXZUG]; /* Bewertungsliste */
- X WORD bzug; /* beste Zugfolge */
- X WORD lzug; /* letzter Zug */
- X int zuege; /* Anz. der Zuege */
- X BYTE farbe; /* Farbe am Zug */
- X long wert; /* Wert der Stellung */
- X int minstufe,maxstufe; /* Spielstufe */
- X struct spieldaten *vorher; /* Ptr auf Zug davor */
- } SPDAT;
- X
- typedef struct archivdaten /* Spieldatenstruktur */
- { /* zur Speicherung */
- X BYTE brett[GROE]; /* Spielfeld */
- X BYTE wkpos,skpos; /* Koenigsposition */
- X WORD lzug; /* letzter Zug */
- X BYTE farbe; /* Farbe am Zug */
- X int wdh; /* Wiederholung */
- } ARCHIV;
- X
- /* Figuren */
- X
- #define LEE 0 /* Leeres Feld */
- #define BAU 1 /* Bauer */
- #define XBAU 2 /* nicht bewegt */
- #define SPR 3 /* Springer */
- #define LAE 4 /* Laeufer */
- #define TUR 5 /* Turm */
- #define XTUR 6 /* nicht bewegt */
- #define DAM 7 /* Dame */
- #define KOE 8 /* Koenig */
- #define XKOE 9 /* nicht bewegt */
- X
- /* Farben */
- X
- #define WEI 16 /* Weiss */
- #define SCH 32 /* Schwarz */
- X
- #define SPZ WEI+SCH /* Spezialfigur fuer */
- X /* die Raender */
- /* Testmakros */
- X
- #define _istwei(x) ((x)&WEI) /* Test auf Weiss */
- #define _istsch(x) ((x)&SCH) /* Test auf Schwarz */
- #define _istnwei(x) (_istwei(x)&&!_istsch(x))/* Test auf nur Weiss */
- #define _istnsch(x) (_istsch(x)&&!_istwei(x))/* Test auf nur Schwarz*/
- #define _farbe(x) ((x)&(WEI|SCH)) /* Farbe einer Figur */
- #define _figur(x) ((x)&0xf) /* Figur ohne Farbe */
- X
- #define _istlee(x) (!(x)) /* Test auf leeres Feld */
- #define _istbau(x) (_figur(x)==BAU||_figur(x)==XBAU)
- X /* Test auf Bauer */
- #define _istxbau(x) (_figur(x)==XBAU) /* Test auf unb. Bauer */
- #define _istplbau(x) (_figur(x)==PLBAU) /* Test auf pas. Bauer */
- #define _istprbau(x) (_figur(x)==PRBAU) /* Test auf pas. Bauer */
- #define _istspr(x) (_figur(x)==SPR) /* Test auf Springer */
- #define _istlae(x) (_figur(x)==LAE) /* Test auf Laeufer */
- #define _isttur(x) (_figur(x)==TUR||_figur(x)==XTUR)
- X /* Test auf Turm */
- #define _istxtur(x) (_figur(x)==XTUR) /* Test auf unb. Turm */
- #define _istdam(x) (_figur(x)==DAM) /* Test auf Dame */
- #define _istkoe(x) (_figur(x)==KOE||_figur(x)==XKOE)
- X /* Test auf Koenig */
- #define _istxkoe(x) (_figur(x)==XKOE) /* Test auf unb. Koenig */
- #define _istspz(x) ((x)==SPZ) /* Test auf Spezialfig. */
- X
- /* Zug -> Positionen */
- X
- #define _apos(x) (BYTE)((x)&0xff) /* alte Position */
- /*#define _npos(x) *((BYTE*)&(x)+1) /* neue Position */
- #define _npos(x) (BYTE)((x)>>8) /* neue Position */
- X
- /* Positionen -> Koordianten */
- X
- #define _xpos(x) (BYTE)((x)%ZLEN-RAND) /* x-Koordinate */
- #define _ypos(x) (BYTE)((x)/ZLEN-RAND) /* y-Koordinate */
- X
- /* Analysefunktion */
- X
- #define ANALYSE(x) ad_analyse(x)
- X
- /* externe Variable */
- X
- extern int opnr; /* Anzahl der Eroeff. */
- extern int testopnr; /* Eroeffnungsnummer zum testen */
- extern WORD *op[]; /* Eroeffnungen */
- extern BYTE op_fa[MAXOP]; /* Farbe fuer die Eroeff. gilt */
- extern int noop; /* 1:Keine Bibliothek */
- extern SPDAT spdat; /* Spieldaten */
- extern ARCHIV *archiv[]; /* Archivdaten */
- extern int phase; /* Spielphase */
- extern int zaehler; /* Antwortzaehler */
- extern int compzuege; /* Computerzuege */
- extern long varianten; /* Variantenzaehler */
- extern long zeit; /* Dauer des letzten Zuges */
- extern long varprosek; /* Varianten pro Sek. */
- extern int mode; /* Modus */
- extern int stufe; /* Spielstufe */
- extern int beende; /* Falls 1 Denkvorgang beenden */
- extern WORD best_so_far; /* Bester Zug bis jetzt */
- extern int maxtiefe[],mintiefe[]; /* Rechentiefe */
- X /* Status des letzten Zuges: */
- extern int schlag; /* falls 1 wurde geschlagen */
- X /* oder befoerdert */
- extern int gabel; /* Bauernspiess oder */
- X /* Springergabel falls 1 */
- X
- /* externe Funktionen */
- X
- extern char *wandle(); /* int. Format in String */
- extern char *kombination(); /* Kombination in String */
- extern WORD wandle_inv(); /* String in int. Form. */
- extern BYTE wandle_fig(); /* Figur in int. Form. */
- extern long bewerte(); /* Zug bewerten */
- extern long comp_zug(); /* Computer Zug */
- extern WORD bib_zug(); /* Zug aus Bibliothek */
- extern int zugliste(); /* Zugliste */
- extern int sortliste(); /* Zugliste sortiert */
- extern int ziehe(); /* Zug ausfuehren */
- extern int zug_test(); /* Zug testen */
- extern int save_game(); /* Speichern */
- extern int load_game(); /* Laden */
- extern int bedrohung(); /* Bedrohung testen */
- extern int hole_zurueck(); /* Zurueckholen */
- extern int bib_test(); /* Bibliothek testen */
- X
- extern void brett_aus(); /* Brett ausgeben */
- extern void info_aus(); /* Info ausgeben */
- extern void zugliste_aus(); /* Zugliste ausgeben */
- extern void status_aus(); /* Status ausgeben */
- extern void archiviere(); /* Archivieren */
- extern void eff_stufe(); /* Stufe einstellen */
- extern void init(); /* Initialisieren */
- extern void load_open(); /* Eroeffnungen laden */
- SHAR_EOF
- chmod 0644 ch/ch.h ||
- echo 'restore of ch/ch.h failed'
- Wc_c="`wc -c < 'ch/ch.h'`"
- test 6139 -eq "$Wc_c" ||
- echo 'ch/ch.h: original size 6139, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= ch/ph.h ==============
- if test -f 'ch/ph.h' -a X"$1" != X"-c"; then
- echo 'x - skipping ch/ph.h (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting ch/ph.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ch/ph.h' &&
- /* XChess V2.7 */
- /* Beweglichkeit der Figuren bei optimalen Bedingungen */
- /* ohne Schlagen */
- X
- #define BWLEE 0
- #define BWBAU 1
- #define BWXBAU 2
- #define BWSPR 8
- #define BWLAE 13
- #define BWTUR 14
- #define BWXTUR 9
- #define BWDAM (BWTUR+BWLAE)
- #define BWKOE 8
- #define BWXKOE 6
- X
- /* Spielphasen */
- X
- #define EROEFF 0 /* Eroeffnung */
- #define MITTEL 1 /* Mittelspiel */
- #define ENDSPI 2 /* Endspiel */
- #define WKOEOO 10 /* Weisser Koenig ohne Offiziere */
- #define SKOEOO 11 /* Schwarzer Koenig ohne Offiziere */
- #define REMIS 99 /* Remis */
- X
- SHAR_EOF
- chmod 0644 ch/ph.h ||
- echo 'restore of ch/ph.h failed'
- Wc_c="`wc -c < 'ch/ph.h'`"
- test 557 -eq "$Wc_c" ||
- echo 'ch/ph.h: original size 557, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= ad/patchlevel.h ==============
- if test -f 'ad/patchlevel.h' -a X"$1" != X"-c"; then
- echo 'x - skipping ad/patchlevel.h (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting ad/patchlevel.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ad/patchlevel.h' &&
- /*----------------------------------------------------------------------*/
- /* */
- /* XChess V2.7: Current patch level */
- /* (initial level is zero) */
- /* */
- /*----------------------------------------------------------------------*/
- X
- #define PATCHLEVEL 0
- SHAR_EOF
- chmod 0644 ad/patchlevel.h ||
- echo 'restore of ad/patchlevel.h failed'
- Wc_c="`wc -c < 'ad/patchlevel.h'`"
- test 277 -eq "$Wc_c" ||
- echo 'ad/patchlevel.h: original size 277, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= ad/lex.l ==============
- if test -f 'ad/lex.l' -a X"$1" != X"-c"; then
- echo 'x - skipping ad/lex.l (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting ad/lex.l (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ad/lex.l' &&
- /*----------------------------------------------------------------------*/
- /* */
- /* Name: Chess V2.7 */
- /* */
- /* Programmteil: externe Strings einlesen */
- /* */
- /* Library: UNIX V + lex */
- /* */
- /* Autor: Marc Laukien */
- /* */
- /*----------------------------------------------------------------------*/
- X
- %{
- #include <string.h>
- #include <ctype.h>
- X
- extern char *malloc();
- extern void exit();
- X
- extern char *pname; /* Programmname */
- extern char def[]; /* Definitionfile */
- extern int errno; /* Fehlernummer */
- extern char *sys_errlist[]; /* Fehlertexte */
- X
- extern int atoi();
- X
- void lex();
- static void insert();
- static int getnr();
- X
- static char str[100]; /* String */
- X
- char *amenu[10]; /* Adm.menuestrings */
- char *menu[10]; /* Menuestrings */
- char *smenu[5]; /* Setup-Menuestrings */
- char *info[10]; /* Infostrings */
- char *tr_lv; /* Trainingslevel */
- char *to_lv; /* Turnierlevel */
- char *press_key; /* <Taste> */
- char *tlist; /* Ueberschrift Turnier */
- char *ulist; /* Ueberschrift Training*/
- char *scorelist; /* Ueberschrift Score */
- char *sure; /* Sicherheitsabfrage */
- char *give_up; /* Aufg. Abfrage */
- char *figtab; /* Figurentab. */
- char *comp; /* Computername */
- char *white,*black; /* Farben */
- char *domove; /* Zug */
- char *doset; /* Setup */
- char *enter; /* Namen eing. */
- char *opponent; /* Gegner eing. */
- char *error; /* Fehler */
- char *not_allowed; /* nicht erlaubt */
- char *no_user; /* kein User */
- char *figlist; /* geschl. Fig. */
- char *ison,*isoff; /* Ein/Aus */
- char *thinking; /* Comp. denkt */
- char *is_thinking; /* Gegner denkt */
- char *load_lib; /* Lade Eroeffnungen */
- char *startcmd; /* Startkommando */
- char *patt,*w_mate,*b_mate; /* Status */
- char *w_up,*b_up;
- char *w_chess,*b_chess;
- char *remis_3;
- X
- %}
- X
- T [ \t]
- S \".*\"
- N "["[0-9]*"]"
- %%
- #.*\n { ; /* Kommentar */ }
- "amenu"{N}{T}*{S} { insert(&amenu[getnr()]);}
- "menu"{N}{T}*{S} { insert(&menu[getnr()]); }
- "smenu"{N}{T}*{S} { insert(&smenu[getnr()]);}
- "info"{N}{T}*{S} { insert(&info[getnr()]); }
- "tr_lv"{T}*{S} { insert(&tr_lv); }
- "to_lv"{T}*{S} { insert(&to_lv); }
- "press_key"{T}*{S} { insert(&press_key); }
- "tlist"{T}*{S} { insert(&tlist); }
- "ulist"{T}*{S} { insert(&ulist); }
- "scorelist"{T}*{S} { insert(&scorelist); }
- "sure"{T}*{S} { insert(&sure); }
- "give_up"{T}*{S} { insert(&give_up); }
- "comp"{T}*{S} { insert(&comp); }
- "figtab"{T}*{S} { insert(&figtab); }
- "white"{T}*{S} { insert(&white); }
- "black"{T}*{S} { insert(&black); }
- "domove"{T}*{S} { insert(&domove); }
- "doset"{T}*{S} { insert(&doset); }
- "enter"{T}*{S} { insert(&enter); }
- "opponent"{T}*{S} { insert(&opponent); }
- "error"{T}*{S} { insert(&error); }
- "not_allowed"{T}*{S} { insert(¬_allowed); }
- "no_user"{T}*{S} { insert(&no_user); }
- "figlist"{T}*{S} { insert(&figlist); }
- "ison"{T}*{S} { insert(&ison); }
- "isoff"{T}*{S} { insert(&isoff); }
- "thinking"{T}*{S} { insert(&thinking); }
- "is_thinking"{T}*{S} { insert(&is_thinking); }
- "load_lib"{T}*{S} { insert(&load_lib); }
- "startcmd"{T}*{S} { insert(&startcmd); }
- "patt"{T}*{S} { insert(&patt); }
- "w_mate"{T}*{S} { insert(&w_mate); }
- "b_mate"{T}*{S} { insert(&b_mate); }
- "w_up"{T}*{S} { insert(&w_up); }
- "b_up"{T}*{S} { insert(&b_up); }
- "w_chess"{T}*{S} { insert(&w_chess); }
- "b_chess"{T}*{S} { insert(&b_chess); }
- "remis_3"{T}*{S} { insert(&remis_3); }
- X
- [ \t\n] { ; /* Leerstellen, Tabs und Newline ignorieren */ }
- . { fprintf(stderr,
- X "%s: syntax error in %s at line %d\n"
- X ,pname,str,yylineno);
- X ad_deinit();
- X exit(1);
- X } /* Fehler */
- %%
- X
- void lex()
- {
- X FILE *fp; /* Filepointer */
- X
- X sprintf(str,"def.%s",def); /* aufbereiten */
- X if((fp=fopen(str,"r"))==(FILE *)0) /* oeffnen */
- X {
- X fprintf(stderr,"%s: %s\n",pname,sys_errlist[errno]);
- X ad_deinit();
- X exit(1);
- X }
- X
- X yyin = fp; /* Input setzen */
- X
- X yylex();
- X
- X fclose(fp); /* schliessen */
- }
- X
- static void insert(pt) /* String einfuegen */
- char **pt;
- {
- X char st[100];
- X char *s;
- X int i;
- X
- X s=st;
- X
- X strcpy(s,yytext);
- X while(*s != '"')
- X s++;
- X s++;
- X
- X i=0;
- X while(s[i] != '"')
- X i++;
- X s[i]=0;
- X
- X *pt=(char *)malloc((unsigned)(strlen(s)+1));
- X strcpy(*pt,s);
- }
- X
- static int getnr() /* Stringnummer holen */
- {
- X char st[100];
- X char *s;
- X int i;
- X
- X s=st;
- X
- X strcpy(s,yytext);
- X while(!isdigit(*s))
- X s++;
- X
- X i=0;
- X while(isdigit(s[i]))
- X i++;
- X s[i]=0;
- X
- X return(atoi(s));
- }
- X
- SHAR_EOF
- chmod 0644 ad/lex.l ||
- echo 'restore of ad/lex.l failed'
- Wc_c="`wc -c < 'ad/lex.l'`"
- test 4484 -eq "$Wc_c" ||
- echo 'ad/lex.l: original size 4484, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= ad/patchlevel.h ==============
- if test -f 'ad/patchlevel.h' -a X"$1" != X"-c"; then
- echo 'x - skipping ad/patchlevel.h (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting ad/patchlevel.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ad/patchlevel.h' &&
- /*----------------------------------------------------------------------*/
- /* */
- /* XChess V2.7: Current patch level */
- /* (initial level is zero) */
- /* */
- /*----------------------------------------------------------------------*/
- X
- #define PATCHLEVEL 0
- SHAR_EOF
- chmod 0644 ad/patchlevel.h ||
- echo 'restore of ad/patchlevel.h failed'
- Wc_c="`wc -c < 'ad/patchlevel.h'`"
- test 277 -eq "$Wc_c" ||
- echo 'ad/patchlevel.h: original size 277, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= op/op.albinsgegam ==============
- if test ! -d 'op'; then
- echo 'x - creating directory op'
- mkdir 'op'
- fi
- if test -f 'op/op.albinsgegam' -a X"$1" != X"-c"; then
- echo 'x - skipping op/op.albinsgegam (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting op/op.albinsgegam (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'op/op.albinsgegam' &&
- # ---------------------------------------------------------------------
- #
- # Name: Chess V2.7
- # Schachprogramm
- #
- # Programmteil: Opening-Library
- # Albins Gegengambit
- #
- # Autor: Christoph Thommes
- #
- # ---------------------------------------------------------------------
- #
- # (unknown)
- # 4. e2e3 (?)
- # +++ Umwandlung 7. .... f2g1S nicht moeglich +++
- # Bd2d4d7d5c2c4e7e5d4e5d5d4e2e3f8b4c1d2d4e3d2b4e3f2e1e2f2g1e2e1d8h4e1d2b8c6b4c3
- # c8g4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- #
- SHAR_EOF
- chmod 0644 op/op.albinsgegam ||
- echo 'restore of op/op.albinsgegam failed'
- Wc_c="`wc -c < 'op/op.albinsgegam'`"
- test 636 -eq "$Wc_c" ||
- echo 'op/op.albinsgegam: original size 636, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= op/op.aljechin ==============
- if test -f 'op/op.aljechin' -a X"$1" != X"-c"; then
- echo 'x - skipping op/op.aljechin (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting op/op.aljechin (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'op/op.aljechin' &&
- # ---------------------------------------------------------------------
- #
- # Name: Chess V2.7
- # Schachprogramm
- #
- # Programmteil: Opening-Library
- # Aljechin-Verteidigung
- #
- # Autor: Christoph Thommes
- #
- # ---------------------------------------------------------------------
- #
- # (unknown)
- WBe2e4g8f6e4e5f6d5c2c4d5b6d2d4d7d6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Mazukewitsch-Bodischko,1958)
- # 8. .... c8e6 (?)
- We2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5b1c3d5c3d2c3d7d6c1g5d6e5d1b3c8e6b3b7b8d7b2b4f7f6g5e3e8f7g1f3d8c8b7c6a7a6c6e6f7e6f1c4e6f5f3h4f5e4e1e2
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Aronin-Mikenas,1951)
- # 6. .... b8c6 (?!)
- We2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1b8c6c2c4d5e7e5d6d8d6b1c3e7g6d4d5e6d5c4d5g4f3g2f3c6e5c3b5d6d7f3f4g6h4f4e5d7h3b5c7e8d8c7e6
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- #
- # (Aljechin-Fine,1932)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5b1c3d5c3d2c3d7d6f1c4d6d5d1d5d8d5c4d5e7e6d5e4f8c5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Poletajew-Rachno,1948)
- We2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5b1c3d5c3d2c3d7d6c1g5d6e5d1b3d8d7a1d1d7f5f1c4b8c6c4d5h7h6b3b5f5g6g1f3a7a6b5a4c8d7g5e3e7e6d5e4g6f6a4b3
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Krogius-Saizew,1971)
- We2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5b1c3d5c3d2c3d7d6c5d6e7d6f1c4f8e7c1f4d6e5f4e5e8g8d1d8e7d8g1f3
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Hennings-Semjkal,1970)
- We2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5b1c3e7e6c3d5e6d5d2d4b7b6c1e3b6c5d4c5c7c6f1d3b8a6a1c1d8a5e3d2a5a2c1a1a2b2d3a6c8a6a1a6b2e5g1e2f8c5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Nicewski-Wasjukow,1969)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5b1c3e7e6c3d5e6d5d2d4d7d6c5d6c7d6g1f3b8c6f1e2f8e7e1g1e8g8c1f4c8g4d1d2f8e8f1d1a8c8a1c1a7a6
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Ozsvath-Csom,1967)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5b1c3e7e6d2d4d7d6c5d6c7d6g1f3b8c6e5d6f8d6f1d3d5f4c1f4d6f4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Sweschnikow-Palatnik,1974)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5b1c3c7c6f1c4d7d6d1b3d6e5c3d5c6d5c4d5e7e6d5b7c8b7b3b7d8d5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- We2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5f1c4e7e6b1c3f8c5d2d4c5b4c4d5e6d5d1g4e8f8g1f3d7d6g4g3b8c6e1g1
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Wasjukow-Spasski,1959)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5f1c4e7e6b1c3d7d6c3d5e6d5c4d5c7c6d5f7e8f7c5d6d8e8d1f3f7g8f3e3c8e6g1e2b8d7e1g1d7e5e3e5e6c4e5e8a8e8
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Prachov-Slawow,1961)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5f1c4e7e6b1c3d5c3d2c3f8c5d1g4e8f8
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Markland-Ghizdavu,1973)
- We2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5f1c4e7e6b1c3d5c3d2c3b8c6c1f4b7b6c5b6a7b6g1f3f8e7e1g1e8g8d1e2
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Angelow-Orew,1971)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5f1c4e7e6b1c3d5c3d2c3b8c6c1f4f8c5d1g4g7g5f4g5h8g8g1h3c5e7f2f4c6e5f4e5e7g5g4h5g8g7e1g1d8e7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Angelow-Suba,1975)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5f1c4e7e6b1c3d5c3d2c3b8c6c1f4d8h4d1d2c6e5c4e2e5g6f4c7f8c5c7g3h4a4h2h4h7h5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Matschulski-Gurgenidse,1973)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5f1c4e7e6d2d4b7b6c5b6a7b6g1f3c8a6c4a6b8a6e1g1f8e7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- WBe2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5f1c4e7e6d2d4d7d6c5d6c7d6g1f3d5b6c4d3b8c6e1g1c6b4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Dworezki-Taimanov,1975)
- We2e4g8f6e4e5f6d5c2c4d5b6c4c5b6d5f1c4e7e6d2d4d7d6c5d6c7d6d1e2b8c6g1f3f8e7e1g1e8g8e2e4b7b6c4d3g7g6c1h6f8e8b1d2d5b4d3b1c8a6f1d1d6e5d4e5d8d5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4g7g6b1c3d6e5f4e5f8g7c1e3e8g8g1f3c7c5d4c5b6d7e5e6f7e6d1c2d8a5f1e2
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Gasic-Michaltschischin,1970)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4c8f5b1c3e7e6c1e3b8a6e5d6c7d6g1f3f8e7f1e2e8g8a1c1
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4c8f5b1c3e7e6c1e3f8e7g1f3e8g8f1d3f5d3d1d3d6d5b2b3d5c4b3c4b8c6e1g1
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Ljubojevic-Moses,1969)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5c7c5d4d5e7e6b1c3e6d5c4d5d8h4g2g3h4d4f1b5c8d7d1e2b6d5e5e6f7e6e2e6d5e7g1f3
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Gruenfeld-Ljubojevic,1979)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5c7c5d4d5e7e6b1c3e6d5c4d5c5c4g1f3c8g4d1d4g4f3g2f3f8b4f1c4e8g8h1g1g7g6c1g5d8c7c4b3b4c5d4f4c5g1d5d6c7c5c3e4c5d4a1d1d4b2e5e6b8d7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Suetin-Mikenas,1961)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5c8f5b1c3e7e6g1f3f8e7f1e2e8g8e1g1f7f6c1e3f6e5f3e5b8d7e5f3h7h6c4c5b6d5c3d5e6d5d1b3d7f6f3e5d8c8a1e1c7c6
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Pithart-Williams,1972)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5c8f5b1c3e7e6g1f3f8b4c1e3c7c5f1e2b8c6e1g1c5d4f3d4c6d4e3d4f5c2d1d2a8c8g1h1e8g8b2b3b4c5c3b5c5d4b5d4c2g6e2f3c8c7d2e3c7d7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Velimirovic-Martz,1973)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5c8f5b1c3e7e6g1f3f8b4f1d3f5g4e1g1b8c6c4c5b4c3b2c3b6d5d1e1
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6g1f3c8g4e5e6f7e6c4c5b6c8f1b5g4f3d1f3d8d5b1d2g7g6e1g1d5f3d2f3f8g7c1e3
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6g1f3c8g4e5e6f7e6c4c5b6d7f1e2e6e5e1g1e5d4f3g5g4e2d1e2d7e5g5e6d8d7e2h5g7g6h5h7d7e6h7h8e5d7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6g1f3c8g4e5e6f7e6c4c5e6e5c5b6e5e4d4d5e4f3g2f3g4h5b6c7d8c7d5c6c7c6f1e2a8d8c1d2
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6g1f3c8g4e5e6f7e6c4c5g4f3d1f3c6d4f3f2b6a4c1e3d8d5b1a3
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Keeley-Hewitt,1962)
- Be2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6g1f3c8g4e5e6f7e6c4c5b6d5f1b5d8d7b1d2g7g6d1a4f8g7f3e5g7e5d4e5d5e3a4e4e8g8e4e3c6b4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Zuidema-Hecht,1971)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8b4f1e2e8g8e1g1b4c3b2c3c6a5f3d2d8d7f1f4f5g6d1f1c7c5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8b4a1c1e8g8a2a3b4c3c1c3d8d7f1e2a8d8e1g1f5g4g1h1g4f3e2f3c6d4e3g5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Hora-Pribly,1972)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f5g4d1d2f8e7e1c1a7a5h2h3g4h5g2g4h5g6h3h4c6b4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Kadrew-Bogdanow,1963)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3c6b4a1c1c7c5f1e2f5g4e1g1g4f3e2f3b6c4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Negyesy-Tartakower,1925)
- # 11. .... c5d4 (?)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3c6b4a1c1c7c5f1e2c5d4f3d4f5g6a2a3b4c6d4c6b7c6d1d8e8d8e3b6a7b6e2f3a8c8c3e4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Keres-Saitar,1943)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3c6b4a1c1c7c5f1e2f8e7e1g1e8g8a2a3c5d4f3d4b4c6d4f5e6f5f1f5g7g6f5f1e7g5e3c5f8e8d1d8a8d8c1d1c6e5c3e4d8d1
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Honfi-Ghizdavu,1973)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3d8d7f1e2e8c8e1g1f5g4c4c5b6d5c3d5d7d5f3g5g4e2d1e2c6d4e3d4d5d4g1h1d4d2e2d2d8d2f1f7f8c5g5e6
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3d8d7f1e2e8c8e1g1f7f6d4d5c6e5f3e5f6e5a2a4a7a5c3b5f8b4d5d6c7c5e3d2
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Hecht-Timman,1971)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7f1e2e8g8e1g1f7f6e5f6e7f6d1d2d8e7a1d1a8d8d2c1h7h6g1h1g8h8h2h3f5h7e3g1f8e8f1e1e7f7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7f1e2e8g8e1g1f7f6e5f6e7f6d1d2d8e8e3g5a8d8g5f6f8f6a1d1f5g4c3e4f6f5d2e3
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Lutikow-Bagirow,1960)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7f1e2e8g8e1g1f7f6e5f6e7f6d1d2f8f7a1d1f7d7c4c5b6d5c3d5e6d5f3e5f6e5f1f5e5f6e2g4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Marjanovic-Roguli,1975)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7d4d5e6d5c4d5c6b4f3d4f5d7e5e6f7e6d5e6d7c6d1g4e7h4g2g3c6h1e1c1d8f6g3h4e8g8
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- WBe2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7d4d5c6b4f3d4f5g6a2a3c7c5d4e6f7e6a3b4c5b4c3a4e8g8a4b6a7b6a1a8d8a8d5d6e7d8f1e2b4b3
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- We2e4g8f6e4e5f6d5d2d4d7d6c2c4d5b6f2f4d6e5f4e5b8c6c1e3c8f5b1c3e7e6g1f3f8e7d4d5c6b4a1c1e6d5a2a3c7c5a3b4d5d4e3d4c5d4f3d4d8b8d4f5b8e5f1e2e5f5c4c5b6d7e2g4f5e5d1e2e5e2e1e2d7e5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Panow-Mikenas,1943)
- Be2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4h2h3g4f3d1f3d6e5d4e5e7e6a2a3b8d7f3g3h7h5b1d2h5h4g3b3h8h5d2f3d7e5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Kupreitschik-Bagirow,1970)
- Be2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4h2h3g4f3d1f3d6e5d4e5e7e6f3e4b8d7f1c4d7c5e4e2d5b6c4b3a7a5a2a3c5b3c2b3f8e7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Shurawljow-Alburt,1974)
- Be2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4h2h3g4f3d1f3d6e5d4e5e7e6f1c4b8c6f3e4d5e7c1e3e7f5e1g1d8h4e4h4f5h4c4b5h4f5b5c6b7c6b1d2f5e3f2e3a8d8
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4c2c4d5b6f1e2d6e5c4c5e5e4c5b6e4f3e2f3g4f3d1f3b8c6e1g1c6d4f3b7a7b6c1e3a8b8b7e4d4b5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Bschniew-Sergejew,1982)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2c7c6e1g1g4f3e2f3d6e5d4e5e7e6d1e2b8d7f1e1d8c7c1d2f8c5c2c4d5e7d2c3a7a5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Unzicker-Schmid,1959)
- We2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2c7c6f3g5g4e2d1e2d6e5d4e5e7e6e1g1b8d7c2c4d5e7b1c3e7f5g5f3d8c7f1e1f8b4c1d2
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2c7c6f3g5g4f5e5e6f7e6g2g4f5g6e2d3g6d3d1d3g7g6e1g1f8h6g5e6d8d7d3e2h6c1f1c1b8a6
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Estrin-Gik,1968)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2b8c6c2c4d5b6e5d6e7d6e1g1f8e7b1c3e8g8b2b3e7f6c1e3d6d5c4c5b6c8h2h3g4e6b3b4a7a6a1b1c8e7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- We2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2b8c6e1g1d5b6h2h3g4f3e2f3d6e5d4e5d8d1f1d1e7e6b2b3f8e7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- We2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1b8c6c2c4d5b6e5d6c7d6d4d5e6d5c4d5g4f3g2f3c6e5e2b5e5d7d1d4d8f6f1e1f8e7d4f6g7f6b1c3e8d8f3f4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Minic-Hort,1969)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6e5d6c7d6b2b3b8c6b1c3e8g8c1e3d6d5c4c5b6c8b3b4a7a6a1b1e7f6a2a4c8e7b4b5c6a5e3f4e7f5f3e5g4e2c3e2a6b5a4b5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Makarytschew-Palatnik,1974)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6e5d6c7d6b2b3b8c6c1b2e8g8b1d2d6d5c4c5b6d7a2a3a7a6b3b4d8c7
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Timman-Bagirow,1971)
- We2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6e5d6c7d6b1c3e8g8c1e3b8c6d4d5g4f3e2f3c6e5d5e6f7e6f3g4e5c4g4e6g8h8e3b6c4b6d1b3e7f6
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (unknown)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6e5d6c7d6b1c3e8g8c1e3d6d5c4c5g4f3e2f3b6c4e3f4b8c6b2b3c4a5a1c1b7b6c3a4e7f6f4e3b6b5a4c3b5b4
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Medina-Hecht,1972)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6h2h3g4h5e5d6c7d6b1d2b8c6b2b3e8g8c1b2d6d5c4c5b6d7a2a3f7f6b3b4a7a6f1e1h5f7d2f1b7b6f1e3d8c7d1d2f8d8
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Kavalek-Schmidt,1974)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6h2h3g4h5b1c3e8g8c1e3d6d5c4c5h5f3e2f3b6c4e3f4b7b6b2b3c4a5a1c1b6c5d4c5a5c6f1e1e7g5c3d5e6d5f4g5d8g5f3d5
- # . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
- # (Matanovic-Vukic,1975)
- WBe2e4g8f6e4e5f6d5d2d4d7d6g1f3c8g4f1e2e7e6e1g1f8e7c2c4d5b6h2h3g4h5b1c3e8g8c1e3d6d5c4c5h5f3g2f3b6c8b2b4f7f6f3f4f6e5f4e5d8e8e2d3e7d8
- SHAR_EOF
- true || echo 'restore of op/op.aljechin failed'
- fi
- echo 'End of UnixChess part 4'
- echo 'File op/op.aljechin is continued in part 5'
- echo 5 > _shar_seq_.tmp
- exit 0
- --
- / | -: Marc Laukien :- |
- /__ | | _ _ __
- / \ /_ / / | ml@brumuc.muc.sub.org | / \/ | / / /
- /____/ / /__/ | sigma@salyko.doit.sub.org | / | /__/ /__
-