Ralf Sternberg 100% Free Software
wikileode-endmozpro-linuxheisebookzilla Donnerstag, 24. Juli 2014, 08:24
Der Rabe Ralf baut ein Vogelhaus.

 

Home

Scripts

Tcl/Tk

Links

Photo

 

Tcl/Tk.

Was ist Tcl/Tk?

Tcl [sprich "tickle"], die "Tool Command Language" ist eine einfache Scriptsprache, die aus einer Handvoll paramerisierbarer Befehle besteht. Tcl/Tk ist eine Erweiterung um einen Toolkit (Tk) für X-Windows. Mit Tcl/Tk können sehr einfach Motif-ähnliche graphische Oberflächen, bestehend aus Knöpfen, Schaltern, Listboxen Eingabefelder usw., erstellt werden. Tcl/Tk ist frei erhältlich und plattformunabhängig.

Hallo Welt!

Hello World! Tcl/Tk Scripte definieren die anzuzeigenden graphischen Komponenten mittels in die Sprache Tcl eingebetteter Tk-Befehle. Ein Manual, in dem alle Tcl- und Tk-Befehle ausführlich beschrieben sind, gibt es auf der Tcl/Tk-Homepage (s.u.). So könnte ein "Hello-World"-Programm in Tcl/Tk aussehen:

#!/usr/bin/wish
wm title . Hello
label .la -text "Hello World!"
button .bu -text Hello -command exit
pack .la .bu

Hallo Welt! (Windows) Tcl/Tk-Scripte können unter Unix/Linux, Windows und MacOS ausgeführt werden. Voraussetzung ist, daß das Tcl/Tk Paket auf dem jeweiligen System installiert ist. Bei Unix/Linux-Systemen ist das in der Regel bereits der Fall (Download s.u.). Bei Unix-Systemen muß das Script ausführbar sein (chmod 755) oder direkt vom Interpreter (wish) aufgerufen werden. Der Pfad in der ersten Zeile nach dem '#!' gibt das Programm an, welches das Script ausführen soll, das wird normalerweise das Programm 'wish' sein. Windows erkennt Tcl/Tk-Scripte an der Dateiendung '.tcl', sobald das Tcl/Tk Paket installiert ist.

Programmbeispiele:

Hier einige meiner z.T. noch etwas unfertigen Tcl-Scripte. Vielleicht sind sie dem einen oder anderen als Anregungen nützlich. Ich habe immer die Tcl/Tk-Version 8.3 benutzt, einige Sachen funktionieren nicht mit 8.4.

Puzzle
Puzzle Dieses Puzzle habe ich in der Tk "Widget Tour" gefunden und ein wenig verbessert. Ich habe z.B. einen Mechanismus hinzugefügt, der das Puzzle zum Anfang durchmischt. Außerdem habe ich es mit Farben versehen, denn so ungefähr kenne ich diese Plastik-Puzzle noch von früher.
Mich hat dieses Spiel (früher wie heute) schon oft zur Verzweiflung gebracht. Die ersten drei Zeilen gehen ganz schnell, aber dann ist es eine Frage des Glücks, ob die Reihenfolge der 3 letzten drei Knöpfe stimmt. Leider habe ich bis jetzt noch keinen Algorithmus gefunden, nach dem man das Puzzle vollständig lösen kann. Wenn jemand einen solchen Algorithmus kennt oder findet, wäre ich sehr gespannt, davon zu hören. Vielleicht ist es ja ganz einfach.
Tcl/Tk-Code
Nachtrag: Tatsächlich ist es ganz einfach, aber von selbst wäre ich wohl nie drauf gekommen. Wie mir Herr Fichte, ein schlauer Ingenieur aus Leipzig erklärte, ergibt nicht jede randomisierte Anordnung ein lösbares Puzzle. Die Hälfte aller Anordnungen sind lösbar, die andere Hälfte nicht. Herr Fichte beschreibt das als zwei Welten, zwischen denen man mit jeder Vertauschung zweier Steine hin- und herspringt. Daran lag es also, daß es manchmal zum Schluß einfach nicht mehr paßte. In einem interessanten Briefwechsel haben wir auch eine schöne Methode gefunden, zu entscheiden, ob ein Spiel lösbar ist oder nicht und so schließlich eine neue Version entwickelt, die immer lösbar ist. Neuer Tcl/Tk-Code

Schachuhr
Schachuhr Die Bedienung der Uhr funktioniert über die beiden Ctrl-Tasten.
Mit der Leertaste kann die Uhr angehalten, und mit Escape zurückgestellt werden.
Für Blitzschach können die Zeiger auch mit der F5-Taste 5 Minuten zurückgestellt werden.

Tcl/Tk-Code

Die Türme von Hanoi
Tuerme von Hanoi Ein Spielbrett mit bis zu 10 Scheiben für das Spiel "Türme von Hanoi".
Optionen via rechte Maustaste.

Tcl/Tk-Code
Die Legende erzählt von Mönchen, deren Aufgabe es ist, 64 verschieden große goldene Scheiben, die auf einem Pfahl stecken, unter Zuhilfenahme eines zweiten Pfahles auf einen dritten Pfahl zu befördern. Sie dürfen aber immer nur eine Scheibe bewegen, und niemals darf eine größere auf einer kleineren Scheibe liegen. Es wird gesagt daß, wenn sie mit dieser Aufgabe fertig sind, die Zeit zu Ende ist.
Man kann leicht errechnen: wenn diese Mönche es geschickt anstellen, kommen sie mit 18.446.744.073.709.551.615 Zügen aus. (Bei sieben Scheiben braucht man nur 127 Züge).
Mehr Hintergrund zum Hanoi-Puzzle gibt es z.B. hier.

Sudoku
sudoku Diese Tcl-Version des beliebten Sudoku-Spiels stammt von Herrn Fichte, meinem unermüdlichen Mitstreiter, der schon das Rätsel um das obige Puzzle gelöst hat. Danke!

Tcl/Tk-Code (Update 25.2.2006)
Tcl/Tk-Code (abgespeckte Rätsel: 6x6, 4x4)


Bücher:
  • John K. Ousterhout - Tcl und Tk, Addison-Wesley
    Eine kompletter Überblick über Tcl und Tk vom Erfinder himself. Enthält eine Beschreibung der C-Schnittstelle, die es ermöglicht, neue Funktionalität zu Tcl/Tk hinzuzufügen. Das Buch gilt als Standardwerk, ist aber stellenweise etwas trocken und theoretisch. Zum Einstieg würde ich eher das folgende Buch empfehlen:

  • Mark Harrison, Michael McLennan - Effektiv Tcl/Tk programmieren, Addison-Wesley
    Einführung in die Tcl/Tk-Programmierung mit vielen praktischen Beispielen und Tricks. Interessante Themen wie Netzwerkprogrammierung und Platformunabhängigkeit werden ebenfalls besprochen. Grundlage ist Tcl/Tk Version 8.0.

  • Paul Raines - Tcl/Tk kurz & gut, O' Reilly (Taschenbuch)
    Eine Kurzübersicht über die wichtigsten Tcl/Tk-Befehle in O'Reilly's handlichem Kleinformat. Das Büchlein eignet sich gut zum schnellen Nachschlagen. Die umfangreichere (und schnellere) HTML-Dokumentation zu Tcl/Tk macht es allerdings etwas entbehrlich.

  • Brent B. Welch - Praktisches Programmieren in Tcl und Tk, Prentice Hall
    Dieses Buch kenne ich nicht. In einer Leserwertung bei Amazon ist zu lesen, daß es inhaltlich gut, aber z.T sinnentstellend übersetzt ist. Zugrunde gelegt wird die (nicht mehr ganz taufrische) Version Tcl 7.4 sowie Tk 4.0.

Links:
Viewable with any browser
Valid XHTML 1.0!
Valid CSS!
Letzte Änderung: 25. Feb. 2006Impressum© 2003 Ralf Sternberg