Style de page

Exemples:

Convertisseur de base puissance4
pendu
bataille navale
Autres
Liens tcl/tk


phpMyVisites | Open source web analytics phpMyVisites

Exemples:

Programmes d'exemple:


Voici maintenant quelques exemples de programmes que j'ai réalisé avec tcl/tk. Pour les tester il vous faudra installer tcl/tk.
Grâce au plugin tcl vous pouvez tester certains de ces exemples directement sur cette page.

Une petite calculatrice


Voici un exemple de réalisation d'une calculatrice en tcl/tk.
Pour cela je vais utiliser la commande expr qui permet de calculer des expression mathematiques.

On déclare un widget entry de saisi de l'expression mathématique:
 entry .comand -textvariable comande -width 40 -state normal -bg white -justify center
	  

-textvariable comande: indique que la variable globale commande contiendra l'expression a calculer saisie dans le widget entry.

Un bouton pour lancer le calcul de l'expression:
 button .enter -text "Enter" -command calculExpr
	

Un label pour l'affichage du résultat:
 label .result -textvariable res -width 40

Puis on place les widget sur la fenêtre, avec la commande:
 pack .comand .result .enter -side top
	
Raccourcis claviers:
 bind . <Escape> exit
 bind . <Return> calculExpr
On force le focus dans la zone de saisie pour pouvoir écrire directement au clavier dans cette zone:
 focus -force .comand


Voici la procédure de calcul de l'expression:
proc calculExpr {} {	
   #Variables globales:	
   global comande res
   if { [ catch {set res [expr $comande]} msg ] } {    
	 set res $msg   ;# ou set res "Synthax error"	
   }
		
}
	
	  
tkalc

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.
Pour placer les boutons dans la frame .fbt, on peut utiliser grid:
	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).
La commande grid est très utile lorsqu'on veut aligner des boutons, comme pour cette calculatrice.
Voir le résultat avec le plugin tcl.
Télécharger le source.



BaseConvertor

Un programme pour convertir un nombre de la base 10 vers une autre.
Fichier source
Avec le plugin Tcl



Bataille navale

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:

Lorsque tous les bateaux sont placés la fenêtre de tir apparaît (à droite dans l'image ci-dessous).
Pour tirer cliquez sur la case voulue, dans la fenêtre de tir.
Le code source se trouve ici
On peut aussi y jouer depuis cette page grâce au plugin tcl.

apercu

Jeu de puissance 4

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.


apercu
Le module d'I.A. n'est pas très évolué: il n'est pas très difficile de battre l'ordinateur. Mais en attendant ce programme est plutôt a prendre comme un exemple de programmation mixte tcl/tk - C.

Téléchargez

 

Jeu du pendu

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



Autres programmes:

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.


Haut


phpMyVisites | Open source web analytics phpMyVisites