UnixChess10/10
Marc Laukien
ml at brumuc.muc.sub.org
Mon May 20 10:33:32 AEST 1991
Submitted-by: ml at brumuc.muc.sub.org
Archive-name: UnixChess/part10
---- Cut Here and feed the following to sh ----
#!/bin/sh
# this is chess.10 (part 10 of UnixChess)
# do not concatenate these parts, unpack them in order with /bin/sh
# file op/op.ufimzew continued
#
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck
if test "$Scheck" != 10; 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 op/op.ufimzew'
else
echo 'x - continuing file op/op.ufimzew'
sed 's/^X//' << 'SHAR_EOF' >> 'op/op.ufimzew' &&
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
#
SHAR_EOF
echo 'File op/op.ufimzew is complete' &&
chmod 0644 op/op.ufimzew ||
echo 'restore of op/op.ufimzew failed'
Wc_c="`wc -c < 'op/op.ufimzew'`"
test 913 -eq "$Wc_c" ||
echo 'op/op.ufimzew: original size 913, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= op/op.ungarische ==============
if test -f 'op/op.ungarische' -a X"$1" != X"-c"; then
echo 'x - skipping op/op.ungarische (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting op/op.ungarische (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'op/op.ungarische' &&
# ---------------------------------------------------------------------
#
# Name: Chess V2.7
# Schachprogramm
#
# Programmteil: Opening-Library
# Ungarische Verteidigung
#
# Autor: Christoph Thommes
#
# ---------------------------------------------------------------------
#
# (Tarrasch-amateur,1898)
# 9. .... f6d7 (?)
We2e4e7e5g1f3b8c6f1c4f8e7d2d4e5d4f3d4d7d6e1g1g8f6b1c3e8g8h2h3f8e8f1e1f6d7c4f7g8f7d4e6f7e6d1d5e6f6d5f5
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
#
SHAR_EOF
chmod 0644 op/op.ungarische ||
echo 'restore of op/op.ungarische failed'
Wc_c="`wc -c < 'op/op.ungarische'`"
test 626 -eq "$Wc_c" ||
echo 'op/op.ungarische: original size 626, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= op/op.unregel ==============
if test -f 'op/op.unregel' -a X"$1" != X"-c"; then
echo 'x - skipping op/op.unregel (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting op/op.unregel (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'op/op.unregel' &&
# ---------------------------------------------------------------------
#
# Name: Chess V2.7
# Schachprogramm
#
# Programmteil: Opening-Library
# Unregelmaessig
#
# Autor: Christoph Thommes
#
# ---------------------------------------------------------------------
#
# (Russakow-Werlinski,1947)
# 7. e4e5 (?!)
Be2e4e7e5c2c3b8c6d2d4g8f6c1g5h7h6g5h4g7g5h4g3e5d4e4e5d4c3e5f6c3b2d1e2d8e7f6e7f8g7
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
#
SHAR_EOF
chmod 0644 op/op.unregel ||
echo 'restore of op/op.unregel failed'
Wc_c="`wc -c < 'op/op.unregel'`"
test 594 -eq "$Wc_c" ||
echo 'op/op.unregel: original size 594, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= op/op.vierspring ==============
if test -f 'op/op.vierspring' -a X"$1" != X"-c"; then
echo 'x - skipping op/op.vierspring (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting op/op.vierspring (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'op/op.vierspring' &&
# ---------------------------------------------------------------------
#
# Name: Chess V2.7
# Schachprogramm
#
# Programmteil: Opening-Library
# Vierspringerspiel
#
# Autor: Christoph Thommes
#
# ---------------------------------------------------------------------
#
# (unknown)
WB e2e4e7e5g1f3g8f6b1c3b8c6f1b5f8b4e1g1e8g8d2d3d7d6c1g5b4c3b2c3d8e7
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Opecensky-Hrdina,1924)
# 11. .... d8b6 (?!)
We2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3d7d6c1g5c6e7f3h4c7c6b5c4e7g6h4g6h7g6f2f4d8b6g1h1f6g4d1e1g4e3f4f5e3c4f5f6c8g4e1h4g4h5g2g4c4e3g4h5e3f1h5h6
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (unknown)
# 13. g5f6 (?!)
Be2e4e7e5g1f3b8c6b1c3g8f6f1b5f8b4e1g1e8g8d2d3d7d6c1g5c8g4c3d5c6d4d5b4d4b5b4d5b5d4d1d2d4f3g2f3g4f3g5f6g7f6d2h6g8h8
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Herrmann-Rellstab,1932)
# 9. e1f2 (?!)
Be2e4e7e5g1f3b8c6b1c3g8f6f1b5c6d4f3e5d8e7f2f4d4b5c3b5d7d6e5f3e7e4e1f2f6g4f2g3e4g6f3h4g6h5b5c7e8d8h2h3g4f6c7a8h5h4g3h4f6e4d1g4f8e7g4g5e7g5f4g5h7h6g5g6f7g6h1f1g6g5h4h5e4g3
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (unknown)
# 9. f4d5 (?)
Be2e4e7e5g1f3b8c6b1c3g8f6f1b5c6d4b5a4f8c5f3e5e8g8e5d3c5b6d3f4d7d5f4d5f6d5c3d5d8h4e1g1c8g4d1e1d4f3g2f3g4f3
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (unknown)
# 7. f3e5 (?)
Be2e4e7e5g1f3b8c6b1c3g8f6f1b5c6d4b5a4f8c5e1g1e8g8f3e5d7d6e5c4c8g4d1e1d4f3g2f3g4f3d2d4d8c8c4e3c8h3d4c5f6g4
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Belitzmann-Rubinstein,1917)
# 10. c3d5 (?)
Be2e4e7e5g1f3b8c6b1c3g8f6f1b5c6d4b5c4f8c5f3e5d8e7e5d3d7d5c3d5e7e4d5e3c5d6e1g1b7b5c4b3c8b7d3e1e4h4g2g3h4h3c2c3h7h5c3d4h5h4d1e2h3h2g1h2h4g3h2g1h8h1
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
#
SHAR_EOF
chmod 0644 op/op.vierspring ||
echo 'restore of op/op.vierspring failed'
Wc_c="`wc -c < 'op/op.vierspring'`"
test 2030 -eq "$Wc_c" ||
echo 'op/op.vierspring: original size 2030, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= op/op.wiener ==============
if test -f 'op/op.wiener' -a X"$1" != X"-c"; then
echo 'x - skipping op/op.wiener (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting op/op.wiener (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'op/op.wiener' &&
# ---------------------------------------------------------------------
#
# Name: Chess V2.7
# Schachprogramm
#
# Programmteil: Opening-Library
# Wiener Partie
#
# Autor: Christoph Thommes
#
# ---------------------------------------------------------------------
#
# Spielmann-Flamberg,1914)
# 7. .... g4f3 (?!)
We2e4e7e5b1c3g8f6f2f4d7d5f4e5f6e4g1f3c8g4d1e2e4c5d2d4g4f3e2f3d8h4g2g3h4d4c1e3d4e5e1c1c7c6c3d5c6d5d1d5e5e6f1c4e6e4e3c5
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (unknown)
# 7. h5e5 (?)
Be2e4e7e5b1c3g8f6f1c4f6e4c4f7e8f7c3e4d7d5d1h5g7g6h5e5f8h6
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Imbisch-Goering,1899)
# 5. .... b8c6 (?) 6. .... f7g8 (?)
We2e4e7e5b1c3g8f6f1c4f6e4c4f7e8f7c3e4b8c6d1f3f7g8e4g5
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Taubenhaus-Halpern,1887)
# 10. .... c7c6 (?)
We2e4e7e5b1c3b8c6f2f4e5f4d2d4d8h4e1e2d7d5e4d5c8g4g1f3g4f3g2f3h4e7e2d3c6b4d3c4c7c6f1h3c6d5c4b3b4c6h1e1c6d4d1d4e7e1d4a4b7b5a4b5e8e7b5d7e7f6c3d5f6e5c1f4e5d4d5c3d4c5c3a4
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Mieses-Tschigorin,1906)
# 4. .... d8f6 (?!)
We2e4e7e5b1c3b8c6f1c4f8c5d1g4d8f6c3d5f6f2e1d1e8f8g1h3f2d4d2d3d7d6g4h4c8h3h4h3c6a5h1f1a5c4h3d7f7f6d5f6d4f2f1f2c5f2f6h5
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# * ()
We2e4e7e5b1c3b8c6f1c4f8c5d1g4d8f6c3d5f6f2e1d1e8f8g1h3f2d4d2d3d7d6g4f3c8h3h1f1
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
#
SHAR_EOF
chmod 0644 op/op.wiener ||
echo 'restore of op/op.wiener failed'
Wc_c="`wc -c < 'op/op.wiener'`"
test 1690 -eq "$Wc_c" ||
echo 'op/op.wiener: original size 1690, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= op/op.zweispring ==============
if test -f 'op/op.zweispring' -a X"$1" != X"-c"; then
echo 'x - skipping op/op.zweispring (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting op/op.zweispring (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'op/op.zweispring' &&
# ---------------------------------------------------------------------
#
# Name: Chess V2.7
# Schachprogramm
#
# Programmteil: Opening-Library
# Zweispringerspiel
#
# Autor: Christoph Thommes
#
# ---------------------------------------------------------------------
#
# (unknown)
WB e2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5e2h7h6g5f3e5e4
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Morphy-amateur,1858)
# 5. .... f6d5 (?)
We2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5f6d5d2d4e5d4e1g1f8e7g5f7e8f7d1f3f7e6b1c3d4c3f1e1c6e5c1f4e7f6f4e5f6e5e1e5e6e5a1e1e5d4c4d5h8e8f3d3d4c5b2b4c5b4d3d4
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Bibikow-Neistadt,1946)
# 13. d2d4 (?)
Be2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5c4b5c7c6d5c6b7c6b5e2h7h6g5f3e5e4f3e5f8d6f2f4e4f3e5f3d8c7d2d4f6g4b1c3d6h2f3h2c7g3e1d2a5c4e2c4g3e3
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Field-Tenner,1934)
# 10. e1g1 (?)
Be2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6a5d2d3h7h6g5f3e5e4d1e2a5c4d3c4f8c5e1g1e8g8f3d2c8g4e2e1d8d7d2b3g4f3c1f4d7g4f4g3f6h5b3c5h5f4c5e4g4h3
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Semenenko-Perfiljew,1947)
# 6. c2c3 (?!)
Be2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6d4c2c3b7b5c4f1f6d5g5f7e8f7c3d4e5d4d1f3d5f6f3a8f8c5f1b5h8e8e1f1c8a6a8c6d8e7g2g3a6b5c6b5e7e4b5c4f7g6f1g1e4f3c4f1d4d3
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Fischer-amateur,1964)
# 13. d2d3 (?!)
Be2e4e7e5g1f3b8c6f1c4g8f6f3g5d7d5e4d5c6d4c2c3b7b5c4f1f6d5c3d4d8g5f1b5e8d8d1f3e5e4f3e4f8d6e1g1c8b7d2d3d6h2g1h2d5f4
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Tylewitsch-Winkel,1960)
# 14. c1d2 (?)
Be2e4e7e5g1f3b8c6f1c4g8f6d2d4e5d4e1g1f6e4f1e1d7d5c4d5d8d5b1c3d5a5c3e4c8e6e4g5e8c8g5e6f7e6e1e6f8d6d1e2a5h5c1d2d4d3e2e4c6d4e6d6d4f3e4f3h5f3d6d8h8d8g2f3d3c2
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Arend-Dyckhoff,1934)
# 9. e1e4 (?)
Be2e4e7e5g1f3b8c6f1c4g8f6d2d4e5d4e1g1f6e4f1e1d7d5b1c3d4c3c4d5c8e6e1e4c6e7
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Sokolow-Rushnikow,1966)
# 6. .... d8e7 (?!)
We2e4e7e5g1f3b8c6f1c4g8f6d2d4e5d4e1g1f6e4b1c3d4c3c4f7e8f7d1d5f7e8f1e1f8e7e1e4d7d6c1g5c3b2a1e1h8f8g5e7c6e7d5h5e8d7f3d4c7c5h5g4d7c7e4e7d8e7e1e7c7d8g4g5h7h6e7b7h6g5d4c6d8e8b7e7
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (unknown)
# 7. h2h3 (?)
Be2e4e7e5g1f3b8c6f1c4g8f6d2d4e5d4e1g1f8c5e4e5f6g4h2h3g4e5f3e5c6e5f1e1d7d6f2f4d4d3g1h2d8h4f4e5d3c2e5d6c8e6e1e6f7e6d6d7e8e7d1c2c5d6h2g1h4e1c4f1h8f8
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Mueller-Bauer,1908)
# 12. .... c6d4 (?)
We2e4e7e5g1f3b8c6f1c4g8f6d2d4e5d4e1g1f8c5e4e5d7d5e5f6d5c4f1e1e8f8c1g5g7f6g5h6f8g8b1c3c5f8f3d4c6d4d1d4c8f5d4f4f5c2a1d1f8d6c3d5d6f4e1e8d8e8d5f6
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Kazic-Vukovic,1940)
# 13. .... c6e5 (?)
We2e4e7e5g1f3b8c6f1c4g8f6d2d4e5d4e1g1f8c5e4e5d7d5e5f6d5c4f1e1e8f8c1g5g7f6g5h6f8g8b1c3c8g4c3e4b7b6c2c3c6e5f3e5g4d1e5d7c5e7e4f6e7f6e1e8d8e8d7f6
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Saemisch-Reimann,1927)
# 11. .... c5f8 (?!)
We2e4e7e5g1f3b8c6f1c4g8f6d2d4e5d4e1g1f8c5e4e5d7d5e5f6d5c4f1e1c8e6f3g5d8d5b1c3d5f5c3e4c5f8g5f7e8f7e4g5f7g8g2g4f5f6e1e6f6d8d1f3d8d7e6e7
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Shahajew-Romanischin,1947)
# 11. .... c5f8 (?!)
We2e4e7e5g1f3b8c6f1c4g8f6d2d4e5d4e1g1f8c5e4e5d7d5e5f6d5c4f1e1c8e6f3g5d8d5b1c3d5f5c3e4c5f8g5f7e8f7e4g5f7g8g2g4f5d5g5e6c6e5f6f7g8f7e6g5f7g8e1e5d5e5d1f3
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (Tschigorin-Albin,1897)
# 12. .... f5d5 (?)
We2e4e7e5g1f3b8c6f1c4g8f6d2d4e5d4e1g1f8c5e4e5d7d5e5f6d5c4f1e1c8e6f3g5d8d5b1c3d5f5c3e4e8c8g2g4f5d5f6g7h8g8e4f6d5d6g5e4d6e5f2f4d4d3g1g2e5d4c2c3
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (unknown)
# 7. .... f7g6 (?)
We2e4e7e5g1f3b8c6f1c4g8f6b1c3f6e4c4f7e8f7c3e4d7d5f3g5f7g6d1f3d5e4f3f7g6g5d2d4g5h4h2h3g7g6g2g3h4h5g3g4h5h4f7b3f8b4e1f1c8g4h3g4h4g4b3h3
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
# (unknown)
# 10. d2d3 (?)
Be2e4e7e5g1f3b8c6f1c4g8f6b1c3f6e4c4f7e8f7c3e4d7d5f3g5f7g6d1f3d5e4f3f7g6g5d2d3g5h4g2g3h4h3f7h5h3g2c1g5f8b4c2c3d8d3
# . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 .
#
SHAR_EOF
chmod 0644 op/op.zweispring ||
echo 'restore of op/op.zweispring failed'
Wc_c="`wc -c < 'op/op.zweispring'`"
test 4656 -eq "$Wc_c" ||
echo 'op/op.zweispring: original size 4656, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= def.english ==============
if test -f 'def.english' -a X"$1" != X"-c"; then
echo 'x - skipping def.english (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting def.english (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'def.english' &&
# ----------------------------------------------------------------------------
# Definitionen fuer Chess - Englisch
# (c) 1990 by M. Laukien
# ----------------------------------------------------------------------------
X
# Menuedefinitionen: Der erste Buchstabe ist der Buchstabe, ueber den
# die Funktion angewaehlt werden kann. Nicht benutzt werden duerfen
# bei menu[] die Buchstaben a,b,c,d,e,f,g,h , da diese fuer die Zugeingabe
# benoetigt werden. Zwischen Gross- und Kleinschrift wird nicht unter-
# schieden. Die Reihenfolge der Menuepunkte darf nicht veraendert werden.
X
# amenue = Administrationsmenue
# menue = Spielmenue
# smenu = Setupmenue
X
amenu[0] "t[T] user vs. computer (training mode)"
amenu[1] "s[S] display games"
amenu[2] "d[D] delete games"
X
amenu[3] "1[1] white vs. computer (tournament mode)"
amenu[4] "2[2] black vs. computer (tournament mode)"
amenu[5] "3[3] white vs. other users (tournament mode)"
amenu[6] "4[4] black vs. other users (tournament mode)"
amenu[7] "5[5] show tournaments"
amenu[8] "6[6] display highscore table"
X
amenu[9] "q[Q] quit"
X
smenu[0] "l[L] load game" # Laden
smenu[1] "s[S] save game" # Speichern
smenu[2] "-[-] clear" # Loeschen
smenu[3] "=[=] next move: " # Seitenwechsel
smenu[4] "q[Q] quit" # Ende
X
menu[0] "1[1] level : " # Spielstufe
menu[1] "2[2] white : " # Weiss einstellen
menu[2] "3[3] black : " # Schwarz einstellen
menu[3] "m[M] monitor : " # Monitor
menu[4] "![!] setup game" # Aufbauen
menu[5] "t[T] take back move" # Zurueck
menu[6] "i[I] info" # Informationen
menu[7] "r[R] restart" # Neues Spiel
menu[8] "q[Q] quit" # Ende
menu[9] " [ESC] break" # UnterbrechenXp
X
# infostrings: Die Reihenfolge der infopunkte darf nicht veraendert werden.
X
info[0] "whos move ? : " # Farbe, die am Zug ist
info[1] "number of moves : " # Anzahl der Zuege
info[2] "value : " # Bewertung des Spiels
info[3] "number of variants : " # Varianten im letzten Zug
info[4] "var. / sec. : " # Varianten pro Sekunde
info[5] "average : " # dito durchschnittlich
info[6] "level : " # Spielstufe
info[7] "min. calc. depth : " # Minimale Rechentiefe
info[8] "max. calc. depth : " # Maximale Rechentiefe
info[9] "last move : " # letzter Zug
X
# Statusinformationen:
X
thinking "thinking ..." # Computer denkt
is_thinking "is thinking ..." # Gegner denkt
patt "the game is a draw !" # Spiel ist Patt
w_mate "check mate white !" # Weiss ist matt
b_mate "check mate black !" # Schwarz ist matt
w_chess "white is in check !" # Weiss ist im Schach
b_chess "black is in check !" # Schwarz ist im Schach
remis_3 "3 reps. -> remis !" # Remis bei 3-facher Wdh.
w_up "white gives up !" # Aufgabe Weiss
b_up "black gives up !" # Aufgabe Schwarz
X
# Startkommando: Wird vor Programmstart ausgefuehert. Falls nicht benoetigt,
# auf "" setzen.
X
startcmd ""
X
# Sicherheitsabfrage: Die ersten beiden Buchstaben sollen Abkuerzungen
# fuer "ja" und "nein" sein.
X
sure "ynAre you sure ? (y/n)"
give_up "ynYou've had it man! Wanna quit ? (y/n)"
X
# Spielstufen fuer Uebungsspiel und Turnierspiel
X
tr_lv "3" # Trainingslevel
to_lv "5" # Turnierlevel
X
# Diverese Strings:
X
tlist " white: black: moves: whos move ? "
X # ^ ^ ^ ^
X # Ueberschrift fuer Spielliste Turnier
X
ulist " player: name: moves: whos move ? "
X # ^ ^ ^ ^
X # Ueberschrift fuer Spielliste Training
X
scorelist" player: games: vs. comp.: score: "
X # ^ ^ ^ ^
X # Ueberschrift fuer Spielliste Training
X
figtab "pnbrqkPNBRQK " # Figurentabelle
press_key "<press any key>" # Taste duecken
comp "computer" # Name des Computers
white "white" # Weiss
black "black" # Schwarz
domove "move: " # Zug ausfuehren
doset "set: " # Figur setzen
enter "enter filename: " # Name eingeben
opponent "enter opponent: " # Gegner eingeben
figlist "lost pieces:" # Liste der geschlagenen Figuren
error "error: " # Fehlermeldung
not_allowed "Whoops! Not possible now." # Nicht erlaubt
no_user "no such user !" # Kein User
ison "yes" # Ein
isoff "no" # Aus
load_lib "loading the opening-library ..." # Lib. laden
X
SHAR_EOF
chmod 0644 def.english ||
echo 'restore of def.english failed'
Wc_c="`wc -c < 'def.english'`"
test 4548 -eq "$Wc_c" ||
echo 'def.english: original size 4548, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= def.german ==============
if test -f 'def.german' -a X"$1" != X"-c"; then
echo 'x - skipping def.german (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting def.german (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'def.german' &&
# ----------------------------------------------------------------------------
# Standard Definitionen fuer Chess - Deutsch
# (c) 1990 by M. Laukien
# ----------------------------------------------------------------------------
X
# menuedefinitionen: Der erste Buchstabe ist der Buchstabe, ueber den
# die Funktion angewaehlt werden kann. Nicht benutzt werden duerfen
# bei menu[] die Buchstaben a,b,c,d,e,f,g,h , da diese fuer die Zugeingabe
# benoetigt werden. Zwischen Gross- und Kleinschrift wird nicht unter-
# schieden. Die Reihenfolge der Menuepunkte darf nicht veraendert werden.
X
# amenue = Administrationsmenue
# menue = Spielmenue
# smenu = Setupmenue
X
amenu[0] "t[T] Trainingsspiel gegen Computer"
amenu[1] "z[Z] Zeige Trainingsspiele"
amenu[2] "l[L] Loesche Trainingsspiele"
X
amenu[3] "1[1] Turnierspiel mit Weiss gegen Computer"
amenu[4] "2[2] Turnierspiel mit Schwarz gegen Computer"
amenu[5] "3[3] Turnierspiel mit Weiss gegen anderen Spieler"
amenu[6] "4[4] Turnierspiel mit Schwarz gegen anderen Spieler"
amenu[7] "5[5] Zeige Turnierspiele"
amenu[8] "6[6] Zeige Highscore-Liste"
X
amenu[9] "x[X] Ende"
X
smenu[0] "l[L] Laden" # Laden
smenu[1] "s[S] Speichern" # Speichern
smenu[2] "-[-] Loeschen" # Loeschen
smenu[3] "=[=] Am Zug: " # Seitenwechsel
smenu[4] "x[X] Ende" # Ende
X
menu[0] "l[L] Level : " # Spielstufe
menu[1] "w[W] Weiss : " # Weiss einstellen
menu[2] "s[S] Schwarz : " # Schwarz einstellen
menu[3] "m[M] Monitor : " # Monitor
menu[4] "![!] Aufbauen" # Speichern
menu[5] "z[Z] Zurueck" # Zurueck
menu[6] "i[I] Info" # Informationen
menu[7] "n[N] Neustart" # Neues Spiel
menu[8] "x[X] Ende" # Ende
menu[9] " [ESC] Unterbrechen" # Unterbrechen
X
# Infostrings: Die Reihenfolge der Infopunkte darf nicht veraendert werden.
X
info[0] "Am Zug : " # Farbe, die am Zug ist
info[1] "Anzahl der Zuege : " # Anzahl der Zuege
info[2] "Bewertung : " # Bewertung des Spiels
info[3] "Varianten : " # Varianten im letzten Zug
info[4] "Var. pro Sek. : " # Varianten pro Sekunde
info[5] "Durchschnitt : " # dito durchschnittlich
info[6] "Stufe : " # Spielstufe
info[7] "Rechentiefe min. : " # Minimale Rechentiefe
info[8] "Rechentiefe max. : " # Maximale Rechentiefe
info[9] "Letzter Zug : " # letzter Zug
X
# Statusinformationen:
X
thinking "Ich ueberlege ..." # Computer denkt
is_thinking "ueberlegt ..." # Gegner denkt
patt "Das Spiel ist patt !" # Spiel ist Patt
w_mate "Weiss ist matt !" # Weiss ist matt
b_mate "Schwarz ist matt !" # Schwarz ist matt
w_chess "Weiss ist im Schach !" # Weiss ist im Schach
b_chess "Schwarz ist im Schach !" # Schwarz ist im Schach
remis_3 "3 * wiederholt -> Remis" # Remis bei 3-facher Wdh.
w_up "Weiss gibt auf !" # Aufgabe Weiss
b_up "Schwarz gibt auf !" # Aufgabe Schwarz
X
# Startkommando: Wird vor Programmstart ausgefuehert. Falls nicht benoetigt,
# auf "" setzen.
X
startcmd ""
X
# Sicherheitsabfrage: Die ersten beiden Buchstaben sollen Abkuerzungen
# fuer "ja" und "nein" sein.
X
sure "jnSind Sie sicher ? (J/N)"
give_up "jnWirklich aufgeben ? (J/N)"
X
# Spielstufen fuer Uebungsspiel und Turnierspiel
X
tr_lv "3" # Trainingslevel
to_lv "5" # Turnierlevel
X
# Diverese Strings:
X
tlist " Weiss: Schwarz: Zuege: Am Zug: "
X # ^ ^ ^ ^
X # Ueberschrift fuer Spielliste Turnier
X
ulist " Spieler: Spielname: Zuege: Am Zug: "
X # ^ ^ ^ ^
X # Ueberschrift fuer Spielliste Training
X
scorelist" Spieler: Spiele: Gegen Comp.: Punkte: "
X # ^ ^ ^ ^
X # Ueberschrift fuer Spielliste Training
X
figtab "bsltdkBSLTDK " # Figurentabelle
press_key "<Taste>" # Taste duecken
comp "Rechner" # Name des Computers
white "Weiss" # Weiss
black "Schwarz" # Schwarz
domove "Zug: " # Zug ausfuehren
doset "Setze: " # Figur setzen
enter "Namen eingeben: " # Name eingeben
opponent "Gegner eingeben: " # Gegner eingeben
figlist "Geschlagene Figuren:" # Liste der geschlagenen Figuren
error "Fehler: " # Fehlermeldung
not_allowed "Das ist jetzt nicht erlaubt !" # Nicht erlaubt
no_user "Dieser User existiert nicht !" # Kein User
ison "ja" # Ein
isoff "nein" # Aus
load_lib "Ich lade die Eroeffnungsbibliothek ..." # Lib. laden
SHAR_EOF
chmod 0644 def.german ||
echo 'restore of def.german failed'
Wc_c="`wc -c < 'def.german'`"
test 4581 -eq "$Wc_c" ||
echo 'def.german: original size 4581, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= man ==============
if test -f 'man' -a X"$1" != X"-c"; then
echo 'x - skipping man (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting man (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'man' &&
.pl 72
.AT 3
.TH xxxNAME xxxMANUAL
.ad
.SH NAME
xxxNAME V2.7 \- Multiuserschachprogramm
.SH SYNTAX
.B xxxNAME
[
.B \-d sprache
]
[
.B \-t
]
[
.B \-e
]
.SH ALLGEMEINES
.I xxxNAME
bietet folgende Moeglichkeiten:
.PP
o Turnier- und Trainingsmodus
.br
o Spiel gegen Computer
.br
o Spiel gegen anderen Benutzer gleichzeitig
.br
X oder zeitversetzt
.br
o Anzeige aller im Moment gespielten Partien
.br
o Highscoreliste
.br
o Variable Spielstaerke
.br
o Demomodus, d.h. Computer spielt gegen sich selbst
.br
o Setup, d.h. es koennen beliebige Spielsituationen
.br
X aufgebaut werden.
.br
o Kontrollmodus, d.h. Computer kontrolliert nur die Zuege
.br
o Ruecknahme von beliebig vielen Zuegen
.br
o Grosse Eroeffnungs- und Eroeffnungsfehlerbibliothek
X
.SH BEDIENUNG
Das Programm ist vollstaendig menuegefuehrt. Die Menuepunkte sind
selbsterklaerend, und koennen durch den dazugehoerigen Buchstaben
aufgerufen werden. Texteingaben werden in einem eigenem Fenster vorgenommen
und durch <ENTER> abgeschlossen. Fehlermeldungen und Sicherheitsabfragen
werden ebenfalls in einem eigenem Fenster angezeigt.
.PP
Mit CTRL-L kann der Bildschirm neu aufgebaut werden, falls dieser z.B. durch
Stoerungen in der Telefonleitung (wenn ueber ein Modem gespielt wird)
unlesbar ist.
X
.SH HAUPTMENUE
X
amenu[0]
.br
Hier wird direkt in das Schachmenue verzweigt, bei dem dann alle Menuepunkte
erlaubt sind. Das Spiel laeuft gegen den Computer. Es findet allerdings
kein Eintrag in die Highscoreliste statt.
.PP
amenu[1]
.br
Es werden alle persoenlichen Trainingsspiele angezeigt, dazu auch welche
Farbe am Zug ist.
.PP
amenu[2]
.br
Der Name eines Trainingsspiels wird eingegeben, und anschliessend wird
dieses Trainingsspiel geloescht.
.PP
amenu[3]
.br
amenu[4]
.br
Bei diesen Menuepunkten wird direkt in das Schachmenue verzweigt,
bei dem allerdings nicht alle Menuepunkte erlaubt sind.
Das Spiel laeuft gegen den Computer.
Ein Eintrag in die Highscoreliste findet nach Beendigung des Spieles
statt.
.PP
amenu[5]
.br
amenu[6]
.br
Auch hier wird direkt in das Schachmenue verzweigt,
es sind wieder nicht alle Menuepunkte erlaubt.
Das Spiel laeuft gegen einen anderen User, dessen Name
abgefragt wird. Der Gegner kann entweder gleichzeitig spielen,
oder zeitversetzt.
Ein Eintrag in die Highscoreliste findet nach Beendigung des Spieles
statt.
.PP
amenu[7]
.br
Es werden alle Turnierspiele ausgegeben, auch die von anderen Spielern.
Zusaetzlich wird die Farbe des am Zug befindlichen angegeben.
.PP
amenu[8]
.br
Die Highscoreliste wird ausgegeben. Siehe hierzu auch 'HIGHSCORE'.
.PP
amenu[9]
.br
Dieser Punkt dient dem Verlassen des Programms.
X
.SH SCHACHMENUE
X
Im Schachmenue werden Zuege einfach durch das Ursprungsfeld und das
Zielfeld angegeben, also z.B. e2-e4. Korrigiert werden kann mit der
Backspace-Taste.
.br
.sp
Ausserdem gibt es folgende Menuepunkte:
.br
.sp
menu[0]
.br
Mit diesem Menuepunkt kann die Spielstaerke des Rechners eingestellt werden.
(Nicht moeglich bei Turnierspielen)
.PP
menu[1]
.br
menu[2]
.br
Hier wird eingestellt, fuer welche Farbe der Rechner spielt. Es sind alle
Kombinationen moeglich, auch dass der Rechner fuer beide Farben spielt (DEMO),
oder dass der Rechner fuer keine Farbe spielt (nur Zugueberwachung).
(Nicht moeglich bei Turnierspielen)
.PP
menu[3]
.br
Die Monitorfunktion kann an- und ausgeschaltet werden. Ist sie
eingeschaltet, so wird in der untersten Zeile die im Moment beste
bisher gefundene Variante angezeigt.
.PP
menu[4]
.br
Hier kommt man in das Setup-Menue. Von dort aus kann man dann auch Partien
laden und speichern.
(Nicht moeglich bei Turnierspielen)
.PP
menu[5]
.br
Dieser Menuepunkt dient der Ruecknahme eines Zuges. Es koennen beliebig
viele Zuege zurueckgenommen werden.
(Nicht moeglich bei Turnierspielen)
.PP
menu[6]
.br
Es werden einige Informationen zum Spiel ausgegeben. Siehe hierzu 'INFO'.
.PP
menu[7]
.br
Falls es sich um ein Trainingsspiel handelt, wird ein neues Spiel gestartet.
.br
Bei Turnierspielen entspricht dieser Menuepunkt der Aufgabe
des Spiels, welches beendet wird. Anschliessend erfolgt ein Eintrag in
die Highscoreliste.
.PP
menu[8]
.br
Nach einer Sicherheitsabfrage kommt man wieder ins Hauptmenue.
.PP
menu[9]
.br
Mittels der ESC-Taste kann die Berechnung eines Zuges jederzeit abgebrochen
werden. Es wird dann der bis dahin beste Zug genommen.
(Nicht moeglich bei Turnierspielen)
X
X
.SH SETUP-MENUE
X
Im Setup-Menue kann auf jedes Feld eine beliebige Figur gesetzt werden.
Dazu wird einfach zuerst das Feld angegeben, und dann die Figur, die
auf das Feld gesetzt werden soll, z.B. e4-D setzt eine schwarze Dame
auf das Feld e4.
.br
.sp
Es gibt hier ausserdem folgende Moeglichkeiten:
.br
.sp
smenu[0]
.br
smenu[1]
.br
Diese beiden Punkte dienen dem Laden und Speichern von Partien.
.PP
smenu[2]
.br
Hiermit wird das ganze Spielbrett geloescht.
.PP
smenu[3]
.br
Hier kann man auswaehlen, ob Weiss oder Schwarz am Zug sein soll.
.PP
smenu[4]
.br
Mit diesem Menuepunkt kommt man wieder zurueck ins Schachmenue.
X
.SH INFO
X
info[0]
.br
Hier wird angegeben, welche Farbe im Moment am Zug ist.
.PP
info[1]
.br
Hier wird die Anzahl der gespielten Zuege angegeben.
.PP
info[2]
.br
Hier wird eine Bewertung der Stellung vom Computer vorgenommen. Ein
positiver Wert bedeutet, dass die Stellung fuer Weiss besser ist,
ein negativer Wert bedeutet, dass die Stellung fuer Schwarz besser ist.
.PP
info[3]
.br
Hier wird die Anzahl der Varianten angegeben, die zur Ermittlung des
letzten Zuges noetig waren.
.PP
info[4]
.br
Hier wird die Anzahl der pro Sekunde berechneten Varianten des letzten
Zuges angegeben.
.PP
info[5]
.br
Hier wird der Durchschnitt der Anzahl der pro Sekunde berechneten Varianten
von allen bisherigen Zuegen angegeben. Dies kann als ein Mass fuer die
Geschwindigkeit des Rechners dienen.
.PP
info[6]
.br
Hier wird die aktuelle Spielstufe (Level) angezeigt.
.PP
info[7]
.br
Hier wird die minimale Rechentiefe angegeben, in Halbzuegen gemessen.
.PP
info[8]
.br
Hier wird die maximale Rechentiefe angegeben, in Halbzuegen gemessen.
.PP
info[9]
.br
Hier wird der letzte gespielte Zug angezeigt.
X
.SH SCHACHREGELN
.I xxxNAME
beherrscht neben den 'normalen' Regeln folgende Sonderregeln:
.PP
o Rochade (Um sie auszufuehren, muss der Zug des Koenigs
.br
X angegeben werden, z.B. 'kurze' Rochade Weiss: e1-g1)
.br
o Schlagen en passant
.br
o Remis bei dreifacher Wiederholung einer Stellung
.br
o 'Patt' des Koenigs
.PP
Folgende Regeln sind noch nicht implementiert:
.PP
o Umwandlung eines Bauern in eine andere Figur als
.br
X eine Dame
.br
o 50-Zuege-Regel
X
.SH HIGHSCORE
.I xxxNAME
berechnet die Highscoreliste folgendermassen: Am Anfang hat jeder Spieler
1000 Punkte. Fuer jedes gewonnene Spiel
erhaelt der Gewinner 1/4 der Punkte des Verlierers, und der Verlierer
bekommt dementsprechend 1/4 seiner Punkte abgezogen. Es lohnt sich also
immer gegen einen staerkeren Spieler anzutreten, da man hier die meisten
Punkte gewinnen kann.
X
.SH SPRACHE
.I xxxNAME
kann in jede beliebige Sprache uebersetzt werden. Dazu muss nur eine
Datei mit dem Namen
.I def.sprache
erzeugt werden. Am besten kopiert man eine existierende Datei, z.B.
.I def.german
und uebersetzt diese dann in die gewuenschte Sprache. Das Programm wird
dann mit
.I xxxNAME \-d sprache
aufgerufen.
X
.SH EROEFFNUNGSTEST
Mit der Option \-t kann man die Eroeffnungsbibliothek auf Fehler pruefen.
.I xxxNAME
gibt dann eine Liste (Datei "error.op") mit allen Fehlern in der Bibliothek
aus, und zwar mit Eroeffnungsnummer und Zugnummer. Dieser Test kann
unter Umstaenden laengere Zeit benoetigen.
X
.SH EXPIRE
.I xxxNAME
mit der Option \-e loescht alle Turnierspiele, bei denen der letzte Zug
mehr als xxxEXPIRE Tage zurueckliegt. Falls schon mehr als xxxMOVES
Halbzuege gespielt wurden, wird die Partie fuer denjenigen als verloren
eingetragen, der am Zug ist. Die Spieler werden dann mit einer mail
benachrichtigt.
SHAR_EOF
chmod 0644 man ||
echo 'restore of man failed'
Wc_c="`wc -c < 'man'`"
test 7830 -eq "$Wc_c" ||
echo 'man: original size 7830, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= Makefile ==============
if test -f 'Makefile' -a X"$1" != X"-c"; then
echo 'x - skipping Makefile (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting Makefile (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'Makefile' &&
# ---------------------------------------------------------------------
#
# Name: UnixChess V2.7
# Schachprogramm
#
# Programmteil: Makefile
#
# Autor: Marc Laukien
#
# ---------------------------------------------------------------------
X
# ----------------- Ab hier Eintragungen vornehmen --------------------
# ----------------- Make the necessary changes --------------------
X
# Name des Schachprogramms:
# Name of the chessprogram:
NAME = chess
X
# Standardsprache, falls '-d sprache' weggelassen wird:
# Default language, if invoked without '-d language':
LANG = english
#LANG = german
X
# Aus welchem def.* die Menues ins Manual uebernommen werden:
# Defines from what def.* file the menunames will be included in the manual:
MANLANG = english
#MANLANG = german
X
# Anzahl der Tage fuer expire:
# Number of days for the expire:
EXPIRE = 14
# Anzahl der Halbzuege, bei denen expire noch nicht in
# die Highscoreliste eintraegt:
# Number of moves, with which the expire won't create an entry in
# the highscoretable:
MOVES = 4
X
# ----------------- Pfade ----------------------------------------------
# ----------------- Paths ----------------------------------------------
X
# Directorys, in denen installiert wird:
# Installation directorys:
LIBDIR = /usr/games/lib/Chess
BINDIR = /usr/games
X
# Kapitel/Directory in dem das Manual installiert wird:
# Chapter/Directory in which the manual will be installed:
MANUAL = LOCAL
MANDIR = /usr/man/man.LOCAL
CATDIR = /usr/man/cat.LOCAL
X
# Mailer fuer den expire
# Mailer for expire
MAIL = /bin/mail
X
# ----------------- Angaben zum System --------------------------------
# ----------------- System informations --------------------------------
X
# Shared Library:
#LIBSH =
LIBSH = -lc_s
X
# Curses library
FLAGS = -O
LIB = -lcurses
X
# Filemode, falls unter SUID installiert werden soll:
# Filemode, if you like to install with SUID:
MODE1 = 4711
MODE2 = 600
MODE3 = 700
X
# Filemode, falls unter SGID installiert werden soll:
# Filemode, if you like to install with SGID:
#MODE1 = 2771
#MODE2 = 660
#MODE3 = 770
X
# Shar:
SHAR = shar -n UnixChess -o $(NAME) -L 50 -a -c -s ml at brumuc.muc.sub.org
X
# ----------------- Keine Aenderung ab hier !!! ------------------------
# ----------------- Don't touch the rest !!! ------------------------
X
CFLAGS = $(FLAGS) -DMAIL=\"$(MAIL)\" \
X -DEXPIRE=$(EXPIRE) -DMOVES=$(MOVES) -DLANG=\"$(LANG)\"
X
ALLSRCS1 = ch/value.c ch/main.c ch/move.c ch/comp.c \
X ch/utility.c ch/threat.c ch/init.c ch/list.c \
X ch/archiv.c ch/open.c ch/stat.c
X
ALLSRCS2 = ad/main.c ad/init.c ad/utility.c ad/monitor.c \
X ad/window.c ad/move.c ad/interrupt.c ad/load.c \
X ad/menu.c ad/lock.c ad/admin.c ad/screen.c ad/id.c \
X ad/score.c ad/training.c ad/tour_user.c \
X ad/tour_comp.c ad/expire.c ad/setup.c
X
ALLSRCS3 = br/break.c
X
ALLSRCS = $(ALLSRCS1) $(ALLSRCS2) $(ALLSRCS3)
X
ALLHDRS = ad/ad.h ch/ch.h ch/ph.h ad/patchlevel.h
X
# don't delete the next line !
# op start
ALLOP = op/op.albinsgegam op/op.aljechin op/op.b2b4 op/op.benoni \
X op/op.bird op/op.budapestgam op/op.caro-kann op/op.damenbaspie \
X op/op.damengam op/op.damenind op/op.dreispring op/op.englisch \
X op/op.evansgam op/op.franz op/op.gruenfeld op/op.holland \
X op/op.indisch op/op.italienisch op/op.katalanisch op/op.koenigsgam \
X op/op.koenigsind op/op.laeufer op/op.nimzowitsch op/op.nordgam \
X op/op.philidor op/op.ponziani op/op.reti op/op.russisch \
X op/op.schottisch op/op.sizilian op/op.skandinav op/op.spanisch \
X op/op.ufimzew op/op.ungarische op/op.unregel op/op.vierspring \
X op/op.wiener op/op.zweispring
# op end
# don't delete the previous line !
X
ALLDEF = def.english def.german
X
ALLARCH = README.eng README.ger $(ALLSRCS) $(ALLHDRS) ad/lex.l \
X ad/patchlevel.h $(ALLOP) $(ALLDEF) man Makefile
X
ALLOBJ1 = ch/value.o ch/main.o ch/move.o ch/comp.o \
X ch/utility.o ch/threat.o ch/init.o ch/list.o \
X ch/archiv.o ch/open.o ch/stat.o
X
ALLOBJ2 = ad/init.o ad/utility.o ad/monitor.o ad/window.o \
X ad/move.o ad/interrupt.o ad/load.o ad/menu.o ad/lock.o \
X ad/admin.o ad/screen.o ad/id.o ad/score.o \
X ad/training.o ad/tour_user.o ad/tour_comp.o \
X ad/expire.o ad/lex.o ad/setup.o
X
ALLOBJ3 = br/break.o
X
all: $(NAME) chbrk chess.op
X
$(NAME): $(ALLOBJ1) $(ALLOBJ2) ad/main.o
X -mkdir save
X -mkdir training
X touch score.list
X
X $(CC) $(CFLAGS) -o $(NAME) \
X $(ALLOBJ1) $(ALLOBJ2) ad/main.o $(LIB) -ll -lm $(LIBSH)
X chmod $(MODE1) $(NAME)
X
chbrk: $(ALLOBJ3)
X $(CC) $(CFLAGS) -o chbrk $(LIBSH) \
X $(ALLOBJ3)
X chmod $(MODE1) chbrk
X
chess.op: $(ALLOP) Makefile
X cat $(ALLOP) | grep -v "^#" > chess.op
X chmod $(MODE2) chess.op
X
lint.out: $(ALLSRCS1) $(ALLSRCS2)
X lint $(ALLSRCS1) > lint.out
X lint $(ALLSRCS2) >> lint.out
X
man.$(MANUAL): man Makefile def.$(MANLANG)
X egrep '^amenu\[|^smenu\[|^menu\[' def.$(MANLANG) |\
X sed \
X -e 's/\//\\\//g' \
X -e 's/^/s\//g' \
X -e 's/\"[^"]*$$/\/g/g' \
X -e 's/[ ]*\"./\//g' \
X -e 's/\[/\\[/g' \
X -e 's/\]/\\]/g' \
X > man.tmp
X
X egrep '^info\[' def.$(MANLANG) |\
X sed \
X -e 's/\//\\\//g' \
X -e 's/^/s\//g' \
X -e 's/\"[^"]*$$/\/g/g' \
X -e 's/[ ]*\"/\//g' \
X -e 's/\[/\\[/g' \
X -e 's/\]/\\]/g' \
X >> man.tmp
X
X echo "s/xxxNAME/$(NAME)/g" >> man.tmp
X echo "s/xxxMANUAL/$(MANUAL)/g" >> man.tmp
X echo "s/xxxEXPIRE/$(EXPIRE)/g" >> man.tmp
X echo "s/xxxMOVES/$(MOVES)/g" >> man.tmp
X
X sed -f man.tmp man > man.$(MANUAL)
X rm -f man.tmp
X
cat.$(MANUAL): man.$(MANUAL)
X nroff -man man.$(MANUAL) > cat.$(MANUAL)
X
install_man: man.$(MANUAL)
X cp man.$(MANUAL) $(MANDIR)/$(NAME).$(MANUAL)
X chmod 644 $(MANDIR)/$(NAME).$(MANUAL)
X
install_cat: cat.$(MANUAL)
X cp cat.$(MANUAL) $(CATDIR)/$(NAME).$(MANUAL)
X chmod 644 $(CATDIR)/$(NAME).$(MANUAL)
X
install: all ad/main2.o
X -mkdir $(BINDIR)
X -mkdir $(LIBDIR)
X chmod $(MODE3) $(LIBDIR)
X -mkdir $(LIBDIR)/save
X chmod $(MODE3) $(LIBDIR)/save
X -mkdir $(LIBDIR)/training
X chmod $(MODE3) $(LIBDIR)/training
X
X $(CC) $(CFLAGS) -o $(BINDIR)/$(NAME) \
X $(ALLOBJ1) $(ALLOBJ2) ad/main2.o $(LIB) -ll -lm $(LIBSH)
X chmod $(MODE1) $(BINDIR)/$(NAME)
X
X cp chbrk $(LIBDIR)
X chmod $(MODE1) $(LIBDIR)/chbrk
X
X cp def.* $(LIBDIR)
X cp chess.op $(LIBDIR)
X chmod $(MODE2) $(LIBDIR)/def.* $(LIBDIR)/chess.op
X
X touch $(LIBDIR)/score.list
X chmod $(MODE2) $(LIBDIR)/score.list
X
X @echo "\n >>> Welcome to UNIX-Chess ! <<<"
X
remove:
X -rm -rf $(LIBDIR)/save
X -rm -rf $(LIBDIR)/training
X -rm -f $(BINDIR)/$(NAME)
X -rm -f $(LIBDIR)/chbrk
X -rm -f $(LIBDIR)/def.*
X -rm -f $(LIBDIR)/chess.op
X -rm -f $(LIBDIR)/error.op
X -rm -f $(LIBDIR)/score.list
X -rm -f $(MANDIR)/$(NAME).$(MANUAL)
X -rm -f $(CATDIR)/$(NAME).$(MANUAL)
X
dist: $(ALLARCH)
X $(SHAR) $(ALLARCH)
X
chess.arc: $(ALLARCH)
X -rm -f chess.arc
X arc -a chess.arc $(ALLARCH)
X
chess.zoo: $(ALLARCH)
X -rm -f chess.zoo
X zoo -add chess.zoo $(ALLARCH)
X
chess.tar: $(ALLARCH)
X tar cvf chess.tar $(ALLARCH)
X
chess.tar.Z: chess.tar
X @if test -r chess.tar.Z ;\
X then \
X rm -f chess.tar.Z ;\
X fi
X compress chess.tar
X
listing: $(ALLSRCS) $(ALLHDRS)
X cpr -Xp9w83 $(ALLSRCS) $(ALLHDRS) > listing
X
clean:
X -rm -f ad/*.o
X -rm -f ch/*.o
X -rm -f br/*.o
X
clobber: clean
X -rm -f $(NAME)
X -rm -f $(NAME).??
X -rm -f chbrk
X -rm -f ad/main2.c
X -rm -f chess.op
X -rm -f error.op
X -rm -f lint.out
X -rm -f man.$(MANUAL)
X -rm -f cat.$(MANUAL)
X -rm -f core
X -rm -f mon.out
X -rm -f lint.out
X -rm -f listing
X -rm -f *.bak
X -rm -f *.shar
X -rm -f score.list
X -rm -r -f training
X -rm -r -f save
X
ad/main2.c: ad/main.c
X ln ad/main.c ad/main2.c
X
ad/main2.o: ad/main2.c
X $(CC) $(CFLAGS) -DWORKDIR=\"$(LIBDIR)\" -c ad/main2.c
X mv main2.o ad
X
# Build a list of all op.* files
oplist: Makefile op
X @echo 'make oplist is running on the following files: '
X @echo op/op.*
X @-rm -f op.tmp
X
X @for i in op/op.* ; do \
X echo $$i >> op.tmp ; \
X done
X
X @cp Makefile Makefile.bak
X @echo 'ed - Makefile <<\ EOF' > oplist
X @echo '/op start/a' >> oplist
X
X @awk \
X 'BEGIN { ORS=" " ; i= -1 ; j=1 ; print "ALLOP = " } \
X i++ >= 3 { i=0 ; ORS="\n" ; print " \\" ; ORS=" " ; \
X j++ ; print " " } \
X { print $$1 } \
X END { print "" }' op.tmp >> oplist
X
X @echo '' >> oplist
X @echo '.' >> oplist
X @echo '.+1,/op end/-1d' >> oplist
X @echo 'w' >> oplist
X @echo 'q' >> oplist
X @echo 'EOF' >> oplist
X
X @sh oplist
X
X -rm -f op.tmp oplist
X
# Build a list of .h file dependencies.
depend:
X @echo 'make depend is running on the following files: '
X @echo $(ALLSRCS)
X @rm -f makedep eddep
X @for i in $(ALLSRCS); do\
X $(CC) -E $(CFLAGS) $$i |\
X grep '^#' |\
X awk '{ print $$3 }' |\
X grep '^"' |\
X grep -v "/usr/include" |\
X sed -e 's|/[^/]*/\.\.||g' -e 's|"||g' |\
X sort -u |\
X awk "BEGIN { of = \"`basename $$i .c`\" \".o: \"; rec = of } \
X { rec = rec \" \" \$$0 } \
X END { print \"`dirname $$i`/\" rec ; \
X print \" $$(CC) $$(CFLAGS) -c $$i\" ; \
X print \" mv `basename $$i .c`.o `dirname $$i`\" }" \
X >> makedep ; \
X done
X @echo '$$r makedep' >>eddep
X @echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >>eddep
X @echo '$$r makedep' >>eddep
X @echo 'w' >>eddep
X @cp Makefile Makefile.bak
X @ed - Makefile < eddep
X @rm -f eddep makedep
X
# DO NOT DELETE THIS LINE -- make depend uses it
ch/value.o: ch/ch.h ch/ph.h ch/value.c
X $(CC) $(CFLAGS) -c ch/value.c
X mv value.o ch
ch/main.o: ch/ch.h ch/main.c
X $(CC) $(CFLAGS) -c ch/main.c
X mv main.o ch
ch/move.o: ch/ch.h ch/move.c
X $(CC) $(CFLAGS) -c ch/move.c
X mv move.o ch
ch/comp.o: ch/ch.h ch/comp.c
X $(CC) $(CFLAGS) -c ch/comp.c
X mv comp.o ch
ch/utility.o: ch/ch.h ch/utility.c
X $(CC) $(CFLAGS) -c ch/utility.c
X mv utility.o ch
ch/threat.o: ch/ch.h ch/threat.c
X $(CC) $(CFLAGS) -c ch/threat.c
X mv threat.o ch
ch/init.o: ch/ch.h ch/init.c
X $(CC) $(CFLAGS) -c ch/init.c
X mv init.o ch
ch/list.o: ch/ch.h ch/list.c
X $(CC) $(CFLAGS) -c ch/list.c
X mv list.o ch
ch/archiv.o: ch/archiv.c ch/ch.h
X $(CC) $(CFLAGS) -c ch/archiv.c
X mv archiv.o ch
ch/open.o: ch/ch.h ch/open.c ch/ph.h
X $(CC) $(CFLAGS) -c ch/open.c
X mv open.o ch
ch/stat.o: ch/ch.h ch/ph.h ch/stat.c
X $(CC) $(CFLAGS) -c ch/stat.c
X mv stat.o ch
ad/main.o: ad/ad.h ad/main.c
X $(CC) $(CFLAGS) -c ad/main.c
X mv main.o ad
ad/init.o: ad/ad.h ad/init.c
X $(CC) $(CFLAGS) -c ad/init.c
X mv init.o ad
ad/utility.o: ad/ad.h ad/utility.c
X $(CC) $(CFLAGS) -c ad/utility.c
X mv utility.o ad
ad/monitor.o: ad/ad.h ad/monitor.c
X $(CC) $(CFLAGS) -c ad/monitor.c
X mv monitor.o ad
ad/window.o: ad/ad.h ad/window.c
X $(CC) $(CFLAGS) -c ad/window.c
X mv window.o ad
ad/move.o: ad/ad.h ad/move.c
X $(CC) $(CFLAGS) -c ad/move.c
X mv move.o ad
ad/interrupt.o: ad/ad.h ad/interrupt.c
X $(CC) $(CFLAGS) -c ad/interrupt.c
X mv interrupt.o ad
ad/load.o: ad/ad.h ad/load.c
X $(CC) $(CFLAGS) -c ad/load.c
X mv load.o ad
ad/menu.o: ad/ad.h ad/menu.c
X $(CC) $(CFLAGS) -c ad/menu.c
X mv menu.o ad
ad/lock.o: ad/ad.h ad/lock.c
X $(CC) $(CFLAGS) -c ad/lock.c
X mv lock.o ad
ad/admin.o: ad/ad.h ad/admin.c
X $(CC) $(CFLAGS) -c ad/admin.c
X mv admin.o ad
ad/screen.o: ad/ad.h ad/patchlevel.h ad/screen.c
X $(CC) $(CFLAGS) -c ad/screen.c
X mv screen.o ad
ad/id.o: ad/ad.h ad/id.c
X $(CC) $(CFLAGS) -c ad/id.c
X mv id.o ad
ad/score.o: ad/ad.h ad/score.c
X $(CC) $(CFLAGS) -c ad/score.c
X mv score.o ad
ad/training.o: ad/ad.h ad/training.c
X $(CC) $(CFLAGS) -c ad/training.c
X mv training.o ad
ad/tour_user.o: ad/ad.h ad/tour_user.c
X $(CC) $(CFLAGS) -c ad/tour_user.c
X mv tour_user.o ad
ad/tour_comp.o: ad/ad.h ad/tour_comp.c
X $(CC) $(CFLAGS) -c ad/tour_comp.c
X mv tour_comp.o ad
ad/expire.o: ad/ad.h ad/expire.c
X $(CC) $(CFLAGS) -c ad/expire.c
X mv expire.o ad
ad/setup.o: ad/ad.h ad/setup.c
X $(CC) $(CFLAGS) -c ad/setup.c
X mv setup.o ad
br/break.o: br/break.c
X $(CC) $(CFLAGS) -c br/break.c
X mv break.o br
SHAR_EOF
chmod 0644 Makefile ||
echo 'restore of Makefile failed'
Wc_c="`wc -c < 'Makefile'`"
test 11920 -eq "$Wc_c" ||
echo 'Makefile: original size 11920, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
rm -f _shar_seq_.tmp
echo You have unpacked the last part
exit 0
--
/ | -: Marc Laukien :- |
/__ | | _ _ __
/ \ /_ / / | ml at brumuc.muc.sub.org | / \/ | / / /
/____/ / /__/ | sigma at salyko.doit.sub.org | / | /__/ /__
More information about the Alt.sources
mailing list