Tout est permis en dedans.
En programmation, les commentaires sont des portions du code source ignorées par le compilateur ou l’interpréteur, car ils ne sont pas nécessaires à l’exécution du programme.
On commente un code source en Python pour en simplifier sa lisibilité, et gagner du temps dans la ré-utilisation de parties de code sur lesquelles on a déjà travaillé.
En Python le caractère # débute un commentaire.
Le code suivant est bien documenté. Essayez-le, analysez-le. Ensuite créez un fichier damier.py avec 100 cases bleues et jaunes de 45 pixels de largeur.
Code Python traduit en HTML:#L'échiquier version 1.0.0
#par wouf 11/2018
from turtle import *
# Les variables globales :________________________________________________________________
nombre_colonnes=8
nombre_lignes=8
cote_en_pixels=40
# Les fonctions : _______________________________________________________________________
def dessin_carre(x,couleur="aucune" ): #cette fonction est documenté en dessous entre les triples cotes:
""" x est le coté du carré en pixel
Option : la couleur de remplissage est facultative..."""
les_couleurs=("blue" ,"red" ,"green" ,"yellow" ,"brown" ,"black" ,"white" ,"pink" ,"orange" ,"purple" ,"grey" )
#cette liste est une variable locale, non connue à l'exterieur de la fonction dessin_carre()
if couleur not in les_couleurs: #si la couleur est "aucune" ou une couleur non existante...
couleur="white"
fillcolor(couleur)
begin_fill()
for c in range(4):
forward(x)
right(90)
end_fill()
# Les paramètres pour turtle : __________________________________________________________
speed("fastest" )#vitesse maximum
shape("blank" ) #pour ne pas voir le curseur
title("Echiquier de Wouf" ) #Titre de la fenêtre
# Dessin de l echiquier ________________________________________________________________
for i in range(nombre_colonnes):
for j in range(nombre_lignes): #avez vous remarqué les 2 boucles imbriquées ?
#positionnement :
up()
goto(i*cote_en_pixels-320,j*cote_en_pixels-220) #où placer la tortue avant de faire la case (i,j) ?
down()
if (i+j)%2==0:
#Si la case est paire
#(X%Y est le reste de la division
#euclidienne de X par Y)
#On apllique la couleur foncée (remplissage)
dessin_carre(cote_en_pixels,"brown" )
else: #Sinon on a une case paire de couleur claire
dessin_carre(cote_en_pixels,"grey" )
Pour vous donner un exemple simple, je vous propose le code qui suit.
Un feu tricolore s'offre à vous et la possibilités d'utiliser 3 touches du clavier :
#Le feu tricolore version 1.0.0
#par wouf 11/2018
#Utilisez les touches r(rouge) o(orange) et v(vert) pour changer la couleur du feu
from turtle import *
# Les paramètres pour turtle : __________________________________________________________
speed("fastest" )#vitesse maximum
shape("blank" ) #pour ne pas voir le curseur
title("Feu tricolore de Wouf" ) #Titre de la fenêtre
def rouge(): #Le feu est rouge
up()
goto(50,-50)
down()
color("red" )
dot(80)
up()
goto(50,-150)
down()
color("black" )
dot(80)
up()
goto(50,-250)
down()
dot(80)
def orange(): #Le feu est orange
up()
goto(50,-50)
down()
color("black" )
dot(80)
up()
goto(50,-150)
down()
color("orange" )
dot(80)
up()
goto(50,-250)
down()
color("black" )
dot(80)
def vert(): #Le feu est vert
up()
goto(50,-50)
down()
color("black" )
dot(80)
up()
goto(50,-150)
down()
color("black" )
dot(80)
up()
goto(50,-250)
down()
color("green" )
dot(80)
#Dessin du feu : _______________________________________________________________
fillcolor("brown" )
begin_fill()
forward(100)
right(90)
forward(400)
right(90)
forward(100)
right(90)
forward(400)
right(90)
end_fill()
up()
goto(50,-50)
down()
dot(80)
up()
goto(50,-150)
down()
dot(80)
up()
goto(50,-250)
down()
dot(80)
# la tortue écoute les entrées au clavier (listen) et associe :
#à la touche r la fonction rouge()
#à la touche o la fonction orange()
#à la touche v la fonction vert()
if __name__ == "__main__" :
listen()
onkeypress(rouge,"r" )
onkeypress(orange,"o" )
onkeypress(vert,"v" )
mainloop()
feu_tricolore
Quand le feu est rouge il serait bien qu'un appui sur la touche r éteigne l'ampoule (idem pour orange et vert)
Pouvez vous faire ça ?
Votre mission est de créer (après certaines recherches) le visuel d'un jeu de puissance 4.
Pourquoi ne pas travailler en équipe ?
Les plus rapide peuvent réfléchir à l'interaction avec l'utilisateur...
Au cycle 4, les élèves s'initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d'un langage ou d'un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s'entraînent au raisonnement.
Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. Programmer des scripts se déroulant en parallèle. - Notions d'algorithme et de programme. - Notion de variable informatique. - Déclenchement d'une action par un événement, séquences d'instructions, boucles, instructions conditionnelles.
Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l'aide d'un logiciel de programmation pour consolider les notions de longueur et d'angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII...). Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis... Calculs simples de calendrier. Calculs de répertoire (recherche, recherche inversée...). Calculs de fréquences d'apparition de chaque lettre dans un texte pour distinguer sa langue d'origine : français, anglais, italien, etc.
En 5e, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de variable informatique, en découvrant les boucles et les instructions conditionnelles qui complètent les structures de contrôle liées aux événements.
Blue-Bot est un robot autonome spécialement conçu pour une utilisation scolaire. Le robot : 125,00 €Pack 6 robots + station d'accueil : 759,00 €

Depuis plusieurs années, je conserve précieusement une collection de la revue Jeux & Stratégie. Ces magazines, publiés au début des années 1980 (J'avais à peine 13 ans), témoignent d’une époque charnière où les mathématiques, les jeux et l’informatique commençaient à se rencontrer dans le grand public.
On y parle aussi bien d’échecs que de logique, de probabilités, de programmation… parfois sur de simples calculatrices programmables.
En feuilletant un numéro de janvier 1980, je suis retombé sur un article qui mérite, à mon sens, une seconde vie :
Hier, l’ordinateur était un monstre d’un prix vertigineux que seuls des spécialistes pouvaient utiliser. Aujourd’hui, un amateur passionné peut s’acheter un « micro » pour quelque 6 000 francs et dialoguer avec lui après quelques heures d’entraînement. Totalement vulgarisé, l’ordinateur sera demain dans tous les foyers. Comptable, gardien ou secrétaire infatigable, on a assez dit qu’il s’acquittera de toutes les tâches ingrates. Nous préférons ici l’envisager comme un élément de loisir et, bien sûr, un partenaire de jeu.
En attendant qu’un large public dispose d’un tel matériel, nous vous présenterons dans cette rubrique des programmes de jeux pour des calculatrices de poche évoluées. Nous avons choisi pour l’instant des machines « haut de gamme » : la Hewlett-Packard HP-67 et la Texas Instruments TI-59. Encore chères, de 1 500 à 2 000 francs, elles offrent en effet de très larges possibilités et notamment des cartes magnétiques qui permettent de se constituer une bibliothèque de programmes.
Nous vous proposons même ici un programme pour la dernière née de Hewlett-Packard, la HP-41C, qui présente déjà de nombreux avantages propres aux ordinateurs, dont une imprimante et un affichage alphanumérique (lettres et chiffres).
À présent, à vous de jouer. Nous espérons que vous deviendrez vite des experts en « ludotique » et nous attendons avec impatience vos remarques… et vos programmes.

Comment faire passer les moutons de gauche à droite, et les moutons de droite à gauche ? Un mouton peut avancer sur une case vide ou sauter par-dessus un autre mouton de manière à retomber sur une case vide. Il ne peut en aucun cas reculer ni sauter par-dessus plusieurs moutons.

Pour cette première rubrique, vous ne jouerez pas vraiment contre les programmes, mais ils vous permettront de vous exercer agréablement à un joli casse-tête : le « saute-mouton ».
À votre gauche, les trois « 1 » représentent trois moutons bien maigres. À votre droite, les trois « 2 » sont des moutons bien gras. Chaque zéro indique une place vide, juste suffisante pour un mouton.
Ces petites bêtes se sont retrouvées face à face sur un sentier de montagne ; les trois moutons de gauche allant vers la droite et leurs congénères dans le sens opposé. Depuis l’histoire de Panurge, si ce n’est plus tôt, on sait leur caractère : ils peuvent avancer, sauter… mais jamais reculer.
Il vous appartient de permettre aux moutons de passer leur chemin sans encombre. Pour cela, il vous suffira d’indiquer le numéro de la case où se trouve le mouton que vous voulez voir se déplacer. En cas de manœuvre illégale, le programme redonne l’affichage de la situation sans modification.
La suite de l’article présentait le programme complet pour calculatrices programmables, que je n’ai volontairement pas reproduit ici.
Ce qui frappe à la lecture de cet article, plus de quarante ans plus tard, ce n’est pas seulement le matériel utilisé TI 59 ou HP 67, mais la démarche. Derrière ce jeu de moutons se cachent déjà des notions très modernes : état, règle de transition, coup légal, situation gagnante ou bloquée. Autrement dit, de l’algorithmique à l’état pur.

Logigramme généré automatiquement par logigw
Une fois le fonctionnement du jeu formalisé sous forme de logigramme, sa traduction en code devient presque naturelle.
Dans les années 1980, cette logique était déjà mise en œuvre sur des calculatrices programmables, avec une mémoire limitée et un affichage minimal, ce qui imposait une écriture extrêmement rigoureuse.
LBL A ; initialisation 0 STO 0 ; case 0 (bord gauche) 1 STO 1 1 STO 2 1 STO 3 0 STO 4 ; case centrale vide 2 STO 5 2 STO 6 2 STO 7 0 STO 8 ; case 8 (bord droit) RTN
Aujourd’hui, en Python, la représentation de l’état du jeu par une simple liste permet un code lisible et proche du raisonnement humain.
# 0 : case vide # 1 : mouton allant vers la droite # 2 : mouton allant vers la gauche etat = [0,1, 1, 1, 0, 2, 2, 2,0]
En JavaScript, la même logique s’applique, avec en plus l’interaction directe à l’écran. Les outils ont évolué, mais l’algorithme reste le même : seule sa traduction change selon le support.
// 0 : case vide // 1 : mouton allant vers la droite // 2 : mouton allant vers la gauche let etat = [1, 1, 1, 0, 2, 2, 2];

Vous cherchez un logiciel gratuit?

est joignable en cliquant sur "Liens" puis sur "Plus".