TkGames.SF.Net

Author: Steven A
Last updated: 5 June 2008


After playing PySol... i found inspiration to make a nice version of Tripeaks.

Several of the games also have new Help menus. They use code (from Mike's Hearts) which i made a little more elegant and portable.

Wish 8.5.0 has been released... It looks like a nice release and the fonts are beautiful, though there are still some minor issues with tkgames. (Specifically, there are math precision issues which are affecting canvas co-ordinates).

1. General

2. Games

3. Front-ends

4. Utilities

5. Links

6. Author


1. General

1.1 About TkGames

Welcome to my SourceForge Tk Games page.

This page is a compiler free zone. All you'll need to hack my programs is a text editor!

The last few years I've learnt the powerful Tcl/Tk programming language. In the process I've adopted several abandoned projects, refined a couple from the Tk Game Wiki and coded a few widgets of my own.

I've also included links to other cool Tcl/Tk projects on the web, including the great TkDiff utility.

1.2 About Tcl

Tcl/Tk is a powerful computer language - available on Windows, Linux and Macs - which was popular on early Unix systems, especially in commercial and scientific fields.

It's first part is Tcl - an elegant scripting language whose only data structure is a string(!) and uses lists extensively. This allows for very readable and deeply nested code. It is also reminiscent of functional computer languages (as opposed to procedural languages like C and Bourne Shell) and, as such, can be hard for beginners to understand.

Tk is the powerful graphics library that the user sees on the computer screen. It has a slightly unpolished look and feel - which may be the reason it never gained more popularity - but allows for very rapid and correct application development. A simple Tcl/Tk application takes a single line:

#!/usr/bin/wish
pack [button .b -text Finish -command {destroy .} -activeforeground RoyalBlue]

Another feature of Tcl is that it is designed to interface with other languages such as C and Perl, allowing best use to made of (for example) C's speed and Tk's easy to build interface.

1.3 Download

You can download the games as a single tarball or visit the file archive at the project page for the latest releases.

1.4 Installation

Unix

Linux and FreeBSD should have Tcl/Tk installed by default.

To verify this, look for a command named wish or wish8.4. Users needing to install Tcl should visit Tcl.Tk for the source code, or try RpmFind or Active State for binary packages.

Sometimes the symbolic link "wish" is not created. To do this, type: cd /usr/bin (or /usr/local/bin) and ln -s wish8.4 wish.

Building from source is fairly easy, with parallel installation of different versions no problem. For example, if "wish8.4" is in "/usr/bin", you can install wish8.5 in "/usr/local/bin". After downloading and uncompressing the tcl-8.5.2 and tk-8.5.2 source code:

    cd tcl8.5.2/unix && ./configure --prefix=/usr/local && make install
    cd tk8.5.2/unix && ./configure --prefix=/usr/local && make install

Windows

To run on Windows boxes, install Tcl/Tk, and rename each program with a ".tcl" extension (eg. rename tksol tksol.tcl). I recommend using Active State Tcl.

MacOSX

Mac users can install a standard version of Tcl/Tk from either Aqua Tcl/Tk or Active State, or try the Batteries-Included version.

The standard OSX installations of Tcl do not allow programs to be launched from the Finder. They must be run from the command line by typing

cd {directory where program is}
wish {program name}
Alternatively, you can install the Mac Tcl/Tk Launcher, which is also included with the "batteries-included" version.


2. Games

These programs require Tcl/Tk 8.4, but may work with earlier versions. For more info see the installation section.

2.1 PolyPuzzle

Based on a tesselation puzzle named Beat the Computer, this is my first "original" Tk program. Over the last couple of years, I've implemented most of the different puzzles. Download. Version 1.8.1 has attractive Help, Changelog and About widgets.

You can find photos of the original puzzles and some mathematical background at Pascal's web page.

2.2 TkHearts

Mike Griffiths coded this great Hearts clone. My latest version is 0.90 which includes a few changes.

I had a look at resizing this game, but doing so breaks up the nice clean look of the face-up cards in the player's hand... Instead i have added an auto-raise feature. It helps a little, and looks cool too.

2.3 TkSpider

This thoughtful game of solitaire is played with the equivalent of two packs of cards. I recently removed the poor quality sound support till Snack is working better. On the plus side , at http://www.fotosearch.com i found some great art work and made a few nice card-backs. (One of which is also in TkTk and Hearts).
Download

2.4 TkTk

Tk Time Killer is a geat little solitaire written by Greg Bacon. Unfortunately, I really hate Perl. And while Greg's version used Tk, it espoused Tcl for Larry Wall's bride-of-frankenstein creation.

Anyway, it wasn't much effort to re-use plenty of TkSpider and code this game. Features include full undo, configurable decorations, a modest tally box and a few fancy mouse bindings.

More thanks to Greg for letting me borrow the name TkTk.

Download

2.5 TkTp

Tk TriPeaks is an easier variation of TkTk.

Download

2.6 TkYahtzee

This is another program I found at tcl.tk which was mostly complete but had playability issues. I've made a few changes, including the addition of high-score and help widgets, and redesigning the buttons and menus. Thanks to the original author, Kevin Kenny.
Download.

2.7 TkSol

Bao Trinh originally coded tksol for FreeBSD, and it had't been updated in 8 or 9 years. Over several point releases I've fixed quite a few bugs, added some features and really got my hands dirty learning Tcl. Recently some new artwork has been contributed, and the game is looking nice. Download

2.8 TkHangman

My first Tcl/Tk program - A half-working and abandoned hangman program I adopted from Ibiblio.org, and eventually rewrote. Download.

2.9 Other Games


3. Front-ends

3.1 Tk TiMidity++

Download

Linux midi support is such a mess. Very recently I gave the Tk interface an overhaul - see the readme in the tarball for details - fixing as few little bugs and giving the widget a QA overhaul. Hopefully someone will find this useful.

3.2 Mamex

Download

This is a nice front-end for an old verion (0.36) of the M.a.M.E arcade emulator. Unfortunately it won't work with any recent version of M.a.M.E. Their command line options seem to change quite a bit... but with a little work it ~could~ be brought up-todate.


4. Utilities

4.1 TkDiff

TkDiff -- A graphical front-end to diff for Unix and Windows by AccuRev Inc. and John M. Klassa. I love it.

TkDiff Home Page

4.2 TkCVS

Dorothy is a computing professional who shares with me a fondness of Macs, Fvwm, Tk and music :->. She is also the maintainer of TkCVS, a front-end for the revision-control software, CVS.

4.3 TkInfo

Yes, the GNU "info" files suck bigtime. This front-end makes the pain more bearable.

TkInfo Home Page

4.4 Tkvol and Tkgamma

Miminalist volume and screen brightness widgets. Tkvol requires the aumix program, and Tkgamma uses Xorg's xgamma command.

Download Tkvol
Download Tkgamma

4.5 Alert

# Steven.a's first tk script
# Modelled on beos' Alert
# No , I don't really know what I'm doing  ;->
# 13/5/02 : patched up a bit.....

A dialog widget modelled on the "alert" command from BeOS.

[I started using linux around 1999, with slackware 3.4, and from the comments it looks like I started learning Tcl in 2001.]

Usage: alert [-g] message response(s)..

Download

4.6 Tkexe

Small Tcl/Tk command launcher.

Download


5. Links

TkGames Project Page.

Tk Game Pack

Tk Game Wiki

Tcl/Tk Homepage

Active State Tcl

Aqua Tcl/Tk


6. Author

Steven A. is a uni graduate in math and computer science, who programs as a hobby in tcl/tk, bash and C. I live and work in rural australia, and enjoy beating up Lachlan at squash.

Projects

Email