Exemples:
entry .comand -textvariable comande -width 40 -state normal -bg white -justify center
button .enter -text "Enter" -command calculExpr
label .result -textvariable res -width 40
pack .comand .result .enter -side topRaccourcis claviers:
bind . <Escape> exit bind . <Return> calculExprOn force le focus dans la zone de saisie pour pouvoir écrire directement au clavier dans cette zone:
focus -force .comand
proc calculExpr {} {
#Variables globales:
global comande res
if { [ catch {set res [expr $comande]} msg ] } {
set res $msg ;# ou set res "Synthax error"
}
}
|
![]() |
La commande "catch {set res [expr $comande]} msg" tente d'exécuter la commande comprise entre les accolades {}
Si cette commande provoque une erreur (division par zéro ou erreur de synthaxe),
catch retourne un code d'erreur différent de zéro et un message d'erreur est affecté à la variable msg.
Cela permet d'éviter que le programme plante
lorsqu'on tente de calculer une expression qui contient une erreur de synthaxe.
Le message d'erreur renvoyer par l'interpréteur étant trop long on peut tout simplement le remplacer par "synthaxe error":
set res "Synthax error"
Si vous avez le plugin tcl vous pouvez tester ce programme sur cette page.
Sinon, vous pouvez télécharger le fichier source ici.
On peu si l'on veut rajouter des boutons pour chaque chiffres et opérateurs:
frame .fbt ;# frame qui contiendra les boutons
pack .fbt
set t 2
button .fbt.b7 -width $t -text "7" -command {set comande "${comande}7" }
button .fbt.b8 -width $t -text "8" -command {set comande "${comande}8" }
button .fbt.b9 -width $t -text "9" -command {set comande "${comande}7" }
...
Même chose pour chaque boutons.grid .fbt.b7 .fbt.b8 .fbt.b9 -row 0 -padx 2 grid .fbt.b4 .fbt.b5 .fbt.b6 -row 1 -padx 2 grid .fbt.b1 .fbt.b2 .fbt.b3 -row 2 -padx 2 ...La commande grid permet de placer les widgets par ligne (option -row) et/ou par colomnes (-column).
Voici un jeu de bataille navale à jouer contre l'ordinateur
(cliquez sur l'image pour agrandir).
Pour y jouer, cliquez sur "jeu->nouvelle partie", puis placer les bateaux:
Ce jeu peut se jouer à 2 ou contre l'ordinateur et
possède deux modes possible: un mode ou le vainqueur
est le premier qui aligne 4 pions et un mode ou le vainqueur est celui
qui réalise le plus grand nombre d'alignement.
Pour des raison de
performance, ce programme utilise à la fois les langages tcl
et c. En effet le mode de jeu contre l'ordinateur utilise un algorithme
d'intelligence artificielle particulièrement gourmand en
cycle cpu.
La partie tcl/tk se charge de l'interface et de l'affichage, tandis que
la détection d'un alignement de 4 pions ou la recherche du
meilleurs coup a jouer (en mode contre l'ordinateur) se font dans la
partie programmée en c.
Voici un jeu de pendu
avec trois niveau de difficultés: Facile, moyen et difficile.
En réalité les niveaux de difficultés
correspondent à la longueur des mots.
Les mots sont pris au hasard dans des fichiers (1 par niveaux).
Le niveau Facile utilise des mots de 3 à 5
lettres, le niveau moyen donnera des mots de longeur comprise entre 6
et 8 caractères et le niveau difficle: des mots de plus de 8
caractères.
Bien sûr la difficulté des
mots n'est pas toujours proportionnelle a leur longueur, mais le
classement par longueur avait l'avantage de pouvoir être fait
automatiquement et donc de créer plus facillement une grande
base de mots.
Télécharger

Un convertisseur francs<-->euros: La conversion s'affiche automatiquement au fur et à mesure que l'on entre le chiffre.
tkOhms: Un programme pour lire le code des couleurs d'une résistance.