Installation

Installation

The game is implemented completely in Tcl/Tk. This means, that despite of its Unix history you can also use it with Windows and on a MacIntosh.

Below there is a section for every of the mentioned systems; the both for Windows and MacIntosh are rather short. If someone knows better ways to install a tcl program on these systems, I would appreciate a mail to krischan@cs.tu-berlin.de.

Installation on Unix

The choice, where the executable program and the associated library directory are located, is a matter of taste. For me there are a few candidates, which are listed in table Possible Path names for binDir and libDir.

Executable program Library directory
/usr/games/patience /usr/games/lib/patience-1.9
/usr/bin/X11/patience /usr/lib/X11/patience-1.9
/usr/local/bin/patience /usr/local/lib/patience-1.9
/home/krischan/bin/patience /home/krischan/patience-1.9
Possible Path names for binDir and libDir

Who ever installs the solitaire, must have write access to both of the choosen directories. Then the solitaire can be installed by the following few steps, replacing binDir and libDir with the choosen directories.

  1. Making the directory superior to the choosen library directory the current one, e.g. by cd /usr/local/lib
  2. Download the installations disk by tar xvzf /dev/fd0. That is at least the way, it works out at my system. Maybe you must give another name like /dev/floppy or /dev/rfd0H1440ds. If the installation file is already on disk or on a mounted cd, you can unpack it with e.g tar xvzf /tmp/patience-1.9.tar.gz. Who owns a tar without the handy z option for uncompress, must use something like the following: gzip -cd /cdrom/longPathName/patience-1.9.tar.gz | tar xvf -
  3. Change into the newly created directory: cd patience-1.9
  4. If you have already a wish of version 4.1, you can start right now the installation tool wish4.1 install. It is an english spoken Tk program, which offers all the following items as menu entries. Start with browsing through the Configure and Configure/patience.ad menus. You can create the patience executable by Make Patience. A test game can be played by Make/(Make then) Start. An installation of the whole thing is launched by Make Installation.
  5. If there is no new wish available or no X display is near or other reasons are against a graphical interface, you can continue with the installation by following the next items.
  6. Using the editor of choise change the Makefile; around line 15 set the following variables according to the local machine and/or to the personal taste.
    WISH:
    This variable contains the complete path of the Tcl/Tk interpreter. You can find it out (in Bourne-, Korn- or compliant shells) by means of calling type wish. At my system the line goes like WISH = /usr/bin/X11/wish.

    For using the functions described in chapter Battle solitaires with remote hosts, you must give the name of an interpreter shell, which has at least version 4.1

    LIB_DIR:
    This is the choosen libDir; at my system currently the line goes like LIB_DIR = /home/krischan/patience-1.9.
    BIN_DIR:
    This is the choosen binDir, at my system currently the line goes like BIN_DIR = /home/krischan/patience-1.9.
  7. Now call make patience; after five to ten seconds everything should be ready to take off.
  8. Default language is english; who read the text until this point, shouldn't switch to another language. The language can be chosen by a resource (see section X Resources).
  9. A test game can be started right now by calling ./patience. For playing it from every directory without typing the complete path, enter make install.

Installation on Windows

Sorry, but I can't give many clues on this one. I always copy all that stuff directly from Unix onto my Windows-Partition, call (still on the unix side) make and edit manually the third line of patience with its assignment of the directory, where all resides.

Further I have a shortcut on my desktop, which points to Wish4.1 and got the complete path of the game as parameter.

Installation on a MacIntosh

My test installation at a friend is long time gone; I only remember, that we have a public domain tar program unpacking the archiv and I called Wish4.1 (a alpha version then) by clicking its icon, and then entered the following stuff on the tcl console: set patiencePath [pwd]; source patience.tcl

The extended interpreter

Who likes (and owns Tcl version 7.5), can compile a c program Pat.c; this happens by means of the Makefile and a call of make shlib.

Making shlib creates a shared library called Pat.so, Pat.sl or the like; it contains a procedure for merging the cards and some central functions for checking the rules, which are now implemented in C and therefore a little bit faster.

For a successful compilation it is essential to fiddle with the variables in Makefile, which start with TCL_. The original values are valid for my Linux box. In the directory, in which resides tcl_library (for me this is /usr/local/lib), exists a file tclConfig.sh. In it tcl wrote during its installation the correct values of this variables. The install program has a menu entry Configure/Optional.../Refresh from .../tclConfig.sh, which updates the Makefile according to this file.

Calling with different names

If the program has the intern name of a known set of rules (e.g. canfield), the game will start according to this rules. Who likes, can play immediate a Little Harp solitaire after execution of the following commands.

  ln -s patience canfield

This works also with the intern names of other, possible self made sets of rules.

The name of the wanted set of rules can be given as parameter, too. The battle solitaire e.g. can be started directly by calling

  patience -name streit

This way it is possible to create a submenu for the window manager, which starts the game with any set of rules. In the initialization file .fvwmrc of the fvwm window mananger it goes like:

   Popup "Patience 1.9"
     Exec "Standard"    exec patience &
     Exec "Little Harp" exec patience -name klHarfe  &
     Exec "Canfield"    exec patience -name canfield &
     Exec "Spider"      exec patience -name spider   &
     Exec "Battle Sol." exec patience -name streit   &
     Exec "Seahaven"    exec patience -name seahaven &
   EndPopup

X Resources

The program uses a few X resource variables, which can configure the user interface. The following is a listing of names, their default values and their significance.

warteZeit (10)
Default of Games/Wait n sec
rot (IndianRed4)
Foreground color of Diamonds and Hearts
grau (gray80)
Gray background color of stacks
weiss (gray95)
White background color of cards
sprPath (libDir/spiel)
Directories to look for rule files
mitMischComic (True)
Default of With comics/Shuffle
mitBewegComic (True)
Default of With comics/Movements
schatten (5)
Default of With comics/Shadow height
mitStreitbar (False)
Default of Games/Ready to compete
kartenFont (normal)
Default of the card bitmaps
sprache (deutsch)
the language (deutsch or english
mitNetscape (False)
Default of Help/Use Netscape
daemonPort (4567)
Port number of the patience daemon patd

The resources concerning colors (rot, weiss and grau) only have effects on cards displayed as bitmaps; for cards displayed as gif or pixmaps they have no effect.

The resources will be looked up at the following places with increasing priority:

  1. the defaults given by the program itself, as given in list above;
  2. the systemwide installed resource file libDir/app-default;
  3. the resource file ~/.Xdefaults configured by the player;
  4. all resources set by xrdb -merge

In a resource file every assignment of a value to the resource goes like this:

*patience.resourcename: value

E.g., the Black/White-Font as default for the card bitmaps can be set by

  *patience.kartenFont: sw

Known errors

Future Improvements