NAME
xskat - a card game for 1 to 3 players.
SYNOPSIS
xskat [-display|-d display] [-geometry|-g geometry] [-font|-fn font]
[-iconic|-i] [-title|-T string] [-name prog] [-fg color] [-bg color]
[-bt color] [-mark color] [-3d] [-2d] [-3dtop color] [-3dbot color]
[-mb button#] [-keyboard number] [-tdelay seconds] [-fastdeal]
[-slowdeal] [-help|-h] [-frenchcards] [-french4cards] [-germancards]
[-german4cards] [-color] [-mono] [-color1 color] .. [-color4 color]
[-large] [-small] [-up] [-down] [-alt] [-seq] [-list|-l file] [-alist]
[-nlist] [-tlist] [-log file] [-dolog] [-nolog] [-fmt] [-unfmt] [-game
file] [-briefmsg] [-verbosemsg] [-trickl2r] [-notrickl2r] [-lang
language] [-start player#] [-s1 number] [-s2 number] [-s3 number]
[-ramsch] [-noramsch] [-ramschonly] [-sramsch] [-nosramsch]
[-skattolast] [-skattoloser] [-kontra] [-nokontra] [-kontra18] [-bock]
[-nobock] [-bockramsch] [-bockevents number] [-resumebock]
[-noresumebock] [-spitze] [-spitze2] [-nospitze] [-revolution]
[-norevolution] [-klopfen] [-noklopfen] [-schenken] [-noschenken]
[-hint] [-nohint] [-newrules] [-oldrules] [-shortcut] [-noshortcut]
[-askshortcut] [-irc] [-noirc] [-irctelnet program] [-ircserver
hostname] [-ircport number] [-ircchannel name] [-ircnick name]
[-ircuser name] [-ircrealname name] [-ircpos number] [-irclog file]
[-irclogappend] [-irclogoverwrite] [-auto #ofgames] [-opt file] [-pk]
[player@display...]
DESCRIPTION
XSkat lets you play the card game Skat as defined by the official Skat
Order.
Up to 3 players may be simulated by the computer.
After starting the game a mouse click or ESC/F1 will bring up a menu.
Other useful keys are: Space, Return, Tab, Cursor left/right/up/down.
The rest of the game controls should be fairly obvious.
An introduction to Skat can be found at
http://www.xskat.de/xskat.html
OPTIONS
In the following descriptions, the player starting XSkat is called
player1.
-display display name
-geometry geometry specification
-font font name (default: 9x15 or 10x20)
-iconic
-title window title
-name application resource name
-fg foreground color
-bg background color
The usual X toolkit options.
-bt color
The color of dialog buttons.
-mark color
The color of the marks that indicate
who is forehand (during bidding),
who is the Soloist,
which card the computer would play,
or the keyboard focus
(default: red or black).
-3d Use a 3D look for dialogs (default).
-2d Use the old, flat style (default on monochrome screens).
-3dtop color
The color used for the lines around the top and left sides of 3D
buttons (default: white).
-3dbot color
The color used for the lines around the bottom and right sides
of 3D buttons (default: black).
-mb menu button
The number of the mouse button that brings up the menu (default:
0 = any button).
-keyboard number
Define how much of the user interface may be controlled by the
keyboard. The number has the following meaning:
0 : Nothing.
1 : More (default).
2 : Everything.
-tdelay seconds
Specifies how long the last trick will be visible. A delay of
more than 10 seconds means that the trick will be removed after
pressing a mouse button. In multiplayer mode the largest
specified value is used (default: 0.7).
-fastdeal
Deal the cards without any time consuming animation.
-slowdeal
Deal the cards slowly (default).
-help Show a short help text.
-frenchcards
Play with French suited cards.
-french4cards
Change the colors of diamond and spade to orange and green, so
that the 4 suits have easily distinguishable colors (default).
-germancards
Use German cards.
-german4cards
Change the color of acorns to brown, so that the 4 suits have
easily distinguishable colors.
-color Use colored cards. If there are not enough colors left, the
number of colors used to draw the cards will be reduced
appropriately (default).
-mono Use b&w cards.
-color1 .. -color4
Redefine the colors of the suits diamond, heart, spade and club.
Selecting -french4cards overrides the colors for diamond and
spade.
-large and -small
Select the size of the main window (default: as large as
possible).
-down Sort cards downwards (default).
-up Sort cards upwards.
-alt Sort cards in alternating order.
-seq Sort cards in sequential order (default).
-list filename
The file for saving/restoring the game list (default:
$HOME/.xskat.lst or ./xskat.lst if HOME isn’t set. For IRC
games: .irc instead of .lst).
-alist Alternative form of listing.
-nlist Normal form of listing (default).
-tlist Listing with tournament scoring.
-log filename
Turn on automatic logging, i.e. append logs of all games to
filename (- means stdout).
-dolog Turn on automatic logging (default file: $HOME/.xskat.log or
./xskat.log).
-nolog Turn off automatic logging (default). Logs of individual games
may still be saved during the game.
-fmt Write formatted log files, i.e. use backspaces for underlining
and boldface.
-unfmt Write unformatted log files (default).
-game filename
Read predefined games from filename (- means stdin). Not
available for IRC play. See also section FILES below.
-briefmsg
Indicate who is forehand (during bidding) and who is the Soloist
by displaying a small mark on the back of the cards.
-verbosemsg
Additionally print out everyones position and what is being
played (default).
-trickl2r
Put down the cards of a trick from left to right (default).
-notrickl2r
Place the cards corresponding to the players positions.
-lang language
Currently available: English and German (default:
$LANG/$LANGUAGE is tried first. Then: see Imakefile/Makefile).
-start number
The player who starts dealing cards (default: 2).
-s1 number
-s2 number
-s3 number
Change the playing strenght of the computer players.
s1 corresponds to the left computer in single player mode or to
the one and only computer in two player mode.
s2 corresponds to the right computer in single player mode.
s3 is only useful with -auto.
The number must be between -4 (weak) and 0 (default).
-ramsch
Play a game of Ramsch when all players pass.
The following rules are currently implemented:
The Skat remains face down until it goes to the winner of the
last trick (or to the loser of the game, s.b.). The amount lost
is the number of card points taken. If two players tie for most
card points, they both lose. If all tie, the score is 0. If
one player takes no tricks (a virgin) the amount lost by the
loser is doubled. Someone taking all the tricks (forced march)
wins 120 points.
-noramsch
Don’t play Ramsch (default).
-ramschonly
Play Ramsch each game.
-sramsch
Play Schieberamsch instead of simple Ramsch.
The rules are:
Each player in turn, starting with Forehand, may pick up the
Skat and discard two cards face down. It’s not allowed to pass
on jacks. The score is doubled each time a player doesn’t pick
up the Skat.
-nosramsch
Don’t play Schieberamsch (default).
-skattoloser
At the end of a Ramsch game the Skat is awarded to the loser(s).
This will increase the loss.
-skattolast
The Skat goes to the winner of the last trick (default).
-kontra
Allow opponents to say ’Kontra’ which doubles the score of the
game. The Soloist may reply ’Re’ to double the score again.
-nokontra
Disallow Kontra (default).
-kontra18
Only an opponent who said at least 18 may say ’Kontra’.
-bock Play a Bockround after some special event. The score is doubled
in the next 3 games. If an event causing a new Bockround
happens before the current Bockround is over or several
Bockround events happen at the same time, the number of
Bockrounds still to play is increased appropriately.
-nobock
Don’t play Bockrounds (default).
-bockramsch
Play a round of compulsory Ramsch after each Bockround. Before
a game of Ramsch begins, each player in turn, starting with
Forehand, may declare to play Grand Hand instead. After a Grand
Hand the same player deals again because this game does not
count towards completing the Ramschround.
-bockevents number
Specify the events that cause a Bockround.
(1) A game is lost with 60 points.
(2) A successful Grand Hand.
(4) A successful Kontra (opponents win).
(8) A game with Kontra & Re.
(16) A player’s score ends in 3 equal digits.
(32) A player’s score is a multiple of 100.
(64) A game value of +72 or more.
(128) A game value of +96 or more.
Add up the numbers in parentheses to specify the desired events
(default: 0).
Notes:
A Kontra where the Soloist said Re but lost counts as one event
not two (events 4 and 8).
To check a player’s score, the current listing options of
player1 are used (events 16 and 32). A score that is a multiple
of 1000 counts as one event.
The game value (events 64 and 128) is the normal value without
considering any doubling caused by Ramsch, Kontra or Bock.
-resumebock
Resume unfinished Bockrounds after quitting and restarting
XSkat. The number of games to play is read from the game list
file.
-noresumebock
Don’t resume Bockrounds (default).
-spitze
Allow the Soloist to declare Spitze. This means that the last
trick must be made with the lowest trump to win the game. This
will be indicated to the other players by displaying the lowest
trump. The game multiplier is increased by 1. It’s not allowed
to say Spitze in a Grand with 4 jacks.
-spitze2
Declaring Spitze increases the multiplier by 2.
-nospitze
Don’t allow Spitze (default).
-revolution
Enable a special variation of Null ouvert. After the Soloist’s
cards are exposed the opponents can look at each other’s cards
and rearrange the cards between their two hands in any way they
wish before the start of the play. Revolution is worth 92
points.
-norevolution
Don’t allow Revolution (default).
-klopfen
During a Ramschround you may knock (klopfen) at the beginning of
a game to indicate that you think you won’t lose. This will
double the score of the game. Klopfen is not possible if you
don’t pick up the Skat in Schieberamsch.
-noklopfen
Don’t allow Klopfen (default).
-schenken
If the opponents decide at the start of the play that they
cannot defeat the Soloist, they can give up. This is done by
selecting Schenken from the main menu during the first trick
when it’s your turn. If the Soloist accepts, the score is as
though the game was won simply. The Soloist can insist on
playing on, but in that case has to make the opponents Schneider
to win. The score in this case is as for an announced Schneider
(the multiplier is increased by 2). If the Soloist goes on the
opponents can schenken again, giving the Soloist the Schneider.
The Soloist can accept Schneider or insist on playing on for
Schwarz.
-noschenken
Don’t allow Schenken (default).
-hint Put a mark over the card the computer would play.
-nohint
Don’t show computer hints (default).
-newrules
Use the official rules of 01/01/1999:
Lost Hand games count double.
The Grand Ouvert multiplier is 24.
(default)
-oldrules
Lost Hand games count simple.
The Grand Ouvert multiplier is 36.
-shortcut
Always finish the game when the remaining tricks will all go to
one side.
-noshortcut
Play each trick.
-askshortcut
Ask whether a shortcut should be taken (default).
-irc Play via Internet Relay Chat. This option will establish a
connection to an IRC server where you can join other people for
a game of Skat.
How it works:
Start XSkat from an xterm. Wait until the server has printed the
welcome message. You are now on channel #xskat where new games
should be planned. Everything you type into the xterm will be
sent to everyone else on this channel. After you have found one
or two other players and agreed upon the name of a new channel
(say #xskat123), you should type /join #xskat123. When all
players are on the new channel, exactly one player has to type
/go (or /go2 if there are only 2 players) to start the game. Now
you can play and talk.
-noirc Don’t use IRC (default).
-irctelnet program
Specify the program that will be used to connect to the IRC
server. If you are sitting behind a firewall, a program like
rtelnet must be used and you may have to set $SOCKS_SERVER to
the name of your firewall host (default: telnet).
-ircserver host-name
Select an IRC server near you! (default: $IRCSERVER or irc.fu-
berlin.de, if not changed in the Imakefile/Makefile)
-ircport number
The port of the IRC server to connect to (default: $IRCPORT or
6667).
-ircchannel name
The channel to join initially (default: #xskat).
-ircnick name
Your IRC nickname. If your nick is already used by someone else,
a different nick will be generated automatically. Some servers
allow a nick length of 30, others limit it to 9 characters.
(default: $IRCNICK or $IRCUSER or $LOGNAME or xskatNNNN).
-ircuser name
Your user/login name. Note: most servers don’t like faked user
names (default: $IRCUSER or $LOGNAME).
-ircrealname name
Your real name (default: $IRCNAME or the entry from the passwd
file or ’XSkat player’).
-ircpos number
Select your position relative to the other players. Positions
are numbered clockwise 1, 2 and 3. Player 2 will start dealing
if not specified otherwise with -start or /start. If you don’t
specify your position or there is a conflict with someone else’s
choice or you give an invalid number (3 in a 2 player game),
this will be fixed automatically. Choosing the right positions
is important if you want to continue with a saved game list
(default: 0 = I don’t care).
-irclog file
Everything sent to or received from the IRC server is saved to
this file (- means stdout). It may be useful for debugging
(default: $HOME/.xskat.ilg or ./xskat.ilg).
-irclogappend
Append output to the log file.
-irclogoverwrite
Overwrite existing log file (default).
IRC commands:
/nick name, /nick - change or display your nickname.
/who - is on the current channel ?
/list, /list string - show all channels that match the word
xskat or the specified string. This will take some time on
networks with a large number of channels. Trying to stop the
listing will terminate the program.
/pos number - see -ircpos.
/bell - toggle the alarm bell. When on, the bell will ring each
time someone joins your channel or sends a message to you. The
bell is off initially.
/quit - terminate XSkat.
/sync - if messages get lost due to a net-split (or because
someone left the channel during play), XSkat will detect this
and in most cases should be able to synchronize automatically
(within 30 seconds) after the connection is reestablished.
Typing /sync will try this immediately.
/quote command args - for those who know what they are doing.
The following commands are only useful for the player who will
start the game by typing /go because that player will determine
the rules of the game.
/default - set the official rules.
/ramsch, /sramsch, /skattoloser, /kontra, /bock, /resumebock,
/spitze, /revolution, /klopfen, /schenken, /oldrules,
/bockevents, /alist, /tlist, /start, /s1 - change the rules of
the game. All of these require an argument (a number or
True/False) just like the resources with the same name.
/rules - show the current rules to everyone on your channel.
Notes: The version numbers of all participating programs must be equal.
Most options cannot be changed during the game. Options that
can be changed are not saved to a file.
The game list can only be cleared during bidding or when it’s
your turn to play a card. There is a different default game
list for IRC games (see -list).
It’s possible to type into the xterm or the game window (which
is recommended), but changing input sources in the middle of a
line won’t work.
If you want better input line editing and a split screen try the
program ssfe. It is used like this: ssfe -raw xskat -irc
You can omit -irc when you specify any of the other IRC options.
-auto #ofgames
Three computers play the specified number of games without human
interaction. The resulting scores are printed.
With this option, no resources are read, and the game list is
saved only if -list is specified.
-opt filename
The file for saving/restoring all interactively changeable
options of all players (default: $HOME/.xskat.opt or
./xskat.opt). Command line options take precedence over options
specified in this file which in turn override resource
specifications. This may be changed with the useoptfile
resource.
-pk If you want the computer to deal a Good Hand every time. (as
requested by Petra K.) Alternatively, pressing F6 three times
will result in a Good Hand for the next game. Does not work in
multiplayer mode.
player@display
Specifies the display of the second and third player (but is
ignored for IRC games). The player@ part may be omitted if the
alias resource is set on display.
RESOURCES
Command line options take precedence over resource specifications for
player1.
geometry, font, title, foreground, background
The usual X11 resources.
mark (see -mark).
button (used for 2D buttons, see -bt).
3dbutton
(used for 3D buttons, see -bt, default: a shade of gray).
3dbackground
(used for 3D dialogs, see -bg, default: a different shade of
gray).
3d True or False (see -3d and -2d).
3dtop (see -3dtop).
3dbot (see -3dbot).
menubutton
(see -mb).
keyboard
(see -keyboard).
tdelay (see -tdelay).
fastdeal
True or False (see -fastdeal and -slowdeal).(#)
cards 0, 1, 2 or 3 (see -frenchcards, -french4cards, -germancards and
-german4cards).
color True or False (see -color and -mono).
color1 .. color4
(see -color1 .. -color4).
large True or False (see -large and -small).
down True or False (see -down and -up).
alt True or False (see -alt and -seq).
list (see -list).(#)
alist True or False (see -alist and -nlist).
tlist True or False (see -tlist and -nlist).
log (see -log).(#)
dolog True or False (see -dolog and -nolog).(#)
formatted
True or False (see -fmt and -unfmt).(#)
game (see -game).(#)
briefmsg
True or False (see -briefmsg and -verbosemsg).
trickl2r
True or False (see -trickl2r and -notrickl2r).
language
(see -lang).
start (see -start).(#)
s1, s2 (see -s1, -s2).(#)
ramsch 0, 1 or 2 (see -noramsch, -ramsch and -ramschonly).(#)
sramsch
True or False (see -sramsch and -nosramsch).(#)
skattoloser
True or False (see -skattoloser and -skattolast).(#)
kontra 0, 1 or 2 (see -nokontra, -kontra and -kontra18).(#)
bock 0, 1 or 2 (see -nobock, -bock and -bockramsch).(#)
bockevents
(see -bockevents).(#)
resumebock
True or False (see -resumebock and -noresumebock).(#)
spitze 0, 1 or 2 (see -nospitze, -spitze and -spitze2).(#)
revolution
True or False (see -revolution and -norevolution).(#)
klopfen
True or False (see -klopfen and -noklopfen).(#)
schenken
True or False (see -schenken and -noschenken).(#)
hint True or False (see -hint and -nohint).
oldrules
True or False (see -oldrules and -newrules).(#)
shortcut
0, 1 or 2 (see -noshortcut, -askshortcut and -shortcut).
irc True or False (see -irc and -noirc).(#)
irctelnet
(see -irctelnet).(#)
ircserver
(see -ircserver).(#)
ircport
(see -ircport).(#)
ircchannel
(see -ircchannel).(#)
ircnick
(see -ircnick).(#)
ircuser
(see -ircuser).(#)
ircrealname
(see -ircrealname).(#)
ircpos (see -ircpos).(#)
irclist
(see -list).(#)
irclog (see -irclog).(#)
irclogappend
True or False (see -irclogappend and -irclogoverwrite).(#)
opt (see -opt).(#)
useoptfile
True or False (default: False). This is a resource for
multiplayer mode (but not for IRC). It is ignored for player1.
If set to True, the contents of the option file, which is owned
by player1, are used. This means that you may end up with
someone else’s preferred settings if player1 used this file in a
different multiplayer game.
alias The player’s real name (max. 2 words of 9 characters, default:
$LOGNAME).
Only player1 may specify the resources marked with (#).
Filenames starting with ~/ are interpreted correctly if HOME is set.
FILES
An example of a file specifying predefined games:
# The following block specifies the distribution
# of cards for player1, 2, 3 and Skat(0).
# A 10 K Q J 9 8 7
2 2 2 2 2 0 3 3 # Diamond
2 2 2 2 2 3 3 3 # Heart
1 1 1 1 1 3 3 3 # Spade
1 1 1 1 1 0 3 3 # Club
# The following is not the same game !
# Player numbers rotate 3 -> 2 -> 1 -> 3
# (and depend on the start option).
2 2 2 2 2 0 3 3
2 2 2 2 2 3 3 3
1 1 1 1 1 3 3 3
1 1 1 1 1 0 3 3
repeat
# Repeat the above games forever.
# The following lines take effect only
# when you delete the ’repeat’.
random_seed 123456 0 2
# Specifies the random number which determines
# card distribution for all following games.
# The second number lets you skip that many
# games in the sequence.
# The third (optional) number defines
# who will start dealing cards (see -start).
# An additional L or R following this number will
# rotate the cards left or right.
# The random_seed will be shown in game logs
# to allow easy replay. Just type:
# echo random_seed 123456 0 2 | xskat -game -
NOTES
There are no official rules for the variations Ramsch, Kontra, Bock,
Spitze, Revolution, Klopfen and Schenken.
If executing xskat player@otherhost:0 on yourhost gives an error
message you could try the command xhost yourhost on otherhost to grant
yourhost access to otherhost’s display.
If you replay a game with your own cards, it doesn’t matter whether
’Forehand changes’ is set to ’yes’ or ’no’.
Some versions of telnet have a bug, that prevents them from reading
input from a pipe correctly. See README.IRC for a fix or put this into
your ~/.telnetrc:
irc.fu-berlin.de
set echo off
set escape off
set rlogin off
set flushoutput off
set interrupt off
set quit off
set eof off
set erase off
set kill off
set lnext off
set susp off
set reprint off
set worderase off
set start off
set stop off
set forw1 off
set forw2 off
set ayt off
Leading blanks are important! Change the irc server line
appropriately.
AUTHOR
Gunter Gerhardt
The latest version is always available at
http://www.xskat.de/xskat.html
This program is free software; you can redistribute it freely.
Use it at your own risk; there is NO WARRANTY.
Redistribution of modified versions is permitted
provided that the following conditions are met:
1. All copyright & permission notices are preserved.
2.a) Only changes required for packaging or porting are made.
or
2.b) It is clearly stated who last changed the program.
The program is renamed or
the version number is of the form x.y.z,
where x.y is the version of the original program
and z is an arbitrary suffix.
Card images used with permission by
Spielkartenfabrik Altenburg GmbH, Marke ASS Altenburger
Leipziger Strasse 7, 04600 Altenburg, Germany
May 2004