★ AlgoPower ★

Jeu python

Apprendre l'algorithmique en s'amusant, ça te dit ?


Comment jouer ?

01234
A
B
C

Il faut déterminer les nouvelles coordonnées de l'étoile ★ en utilisant l'algorithme fourni.

Rassure-toi, les algorithmes ne sont pas compliqués (au début !).


Si un algorithme vous pose problème, il est conseillé d'utiliser de quoi écrire.


Exemple :

L'étoile ★ est aux coordonnées A0. Grace à l'algorithme, l'étoile va se déplacer jusqu'aux coordonnées C3.

01234
A
B
C

droite()

droite()

droite()

bas()

bas()



Accès rapide :

Tutoriel

0123456
A

droite()

droite()

droite()

droite()

droite()

droite()


Les coordonnées de l'étoile :

0123
A
B
C
D

haut()

droite()

bas()

gauche()


Les coordonnées de l'étoile :

012
A
B
C

haut()

droite()

droite()

bas()

bas()


Les coordonnées de l'étoile :

Compléter le programme pour que l'étoile ★ se déplace jusqu'à la case A1 ☆.

0123
A
B
C

gauche()

gauche()

haut()


Compléter le programme pour que l'étoile ★ se déplace dans la case A3 ☆.

012345
A

droite()

gauche()


Les conditions (if/elif/else)

L'instruction if

Si la condition décrite par if est vraie, les instructions indentées (décalées à droite) seront exécutées.

Dans le cas contraire, elles seront ignorées.

01
A
B

haut()

if :

bas()

droite()


Les coordonnées de l'étoile :

0123
A
B
C
D

droite()

if :

droite()

bas()

if :

gauche()

bas()


Les coordonnées de l'étoile :

L'instruction else

Si la condition décrite par if est vraie, les instructions indentées seront exécutées.

Sinon else, d'autres instructions indentées seront exécutées.

012
A
B
C

bas()

if :

droite()

else :

gauche()

bas()


Les coordonnées de l'étoile :

0123
A
B
C

bas()

if :

droite()

else :

gauche()

bas()

if :

gauche()

else :

droite()

haut()


Les coordonnées de l'étoile :

L'instruction elif

Si la condition décrite par if est vraie, les instructions indentées seront exécutées.

Sinon, si la condition décrite par elif est vraie, d'autres instructions indentées seront exécutées.

Sinon else, d'autres instructions indentées seront exécutées.

012
A
B
C

bas()

if :

droite()

elif :

gauche()

else :

bas()

haut()


Les coordonnées de l'étoile :

Les variables

Les variables

Pour vulgariser, une variable est le nom d'une case mémoire dans l'ordinateur.

Une variable peut contenir toute sorte de valeur, comme des nombres ou encore du texte.

Les types de données

Il existe 4 principaux types de données :

- Les entiers (int) : des nombres positifs ou négatifs entiers ;

- Les nombres à virgules (float) : des nombres positifs ou négatifs à virgules (la virgule est remplacé par un point) ;

- Les chaînes de caractères (str) : des lettres et des symboles (du texte) ;

- Les booléens (bool) : True et False.

Les calculs

Il existe 4 principaux symboles pour les calculs :

- Le symbole + pour l'addition ;

- Le symbole - pour la soustraction ;

- Le symbole * pour la multiplication ;

- Le symbole / pour la division (le résultat est toujours un nombre à virgule).

La fonction print

La fonction print permet d'afficher des valeurs.

Qu'affiche ce programme ?

trois = 3

print(trois)


Les nombres n'affichent sans guillemets, sauf s'ils sont dans un texte.

Ici, 'trois' est une variable qui contient le nombre 3. Si on avait souhaité afficher le texte "trois", il aurrait fallut mettre des guillemets.

Qu'affiche ce programme ?

x = 4

x = x + 3

print(x)


Le programmage affiche :

Qu'affiche ce programme ?

x = 21

reponse = x / 7

print(reponse)


Le programmage affiche :

La bonne réponse est 3.0 car la division crée toujours un nombre à virgule.

Qu'affiche ce programme ?

x = 4

y = x * 5

reponse = y - 1

print(reponse)


Le programmage affiche :

Qu'affiche ce programme ?

x = 6

y = 5

x = y

y = x

print(y)


Le programmage affiche :

Chaque instruction s'exécute dans l'ordre.

A la troisème ligne, x prend la valeur de y, soit 5, et à la quatrième ligne, y prend la valeur de x, mais puisque x a été précédemment modifiée, y va prendre la nouvelle valeur de x, soit 5.

Qu'affiche ce programme ?

texte = "Bravo d'être arrivé jusqu'ici."

print(texte)


Ici, 'texte' est une variable qui contient une phrase. C'est donc cette phrase qui est affichée. Si on avait souhaité afficher le texte "texte", il aurrait fallut mettre des guillemets.

Qu'affiche ce programme ?

texte = "Le jeu continue !"

print("texte")


Qu'affiche ce programme ?

x = "Note:"

print(x + 10)


Il est impossible d'additionner du texte et un nombre !

Pour afficher "Note:10", il faut que le nombre 10 soit entre guillemets.

Les conditions (not/and/or)

Les comparaisons

Il existe plusieurs moyens pour comparer deux valeurs :

x == y : la valeur de la variable x est égale à celle de la variable y

x != y : la valeur de x est différente de celle de y

x <= y : x est inférieure ou égale à y

x < y : x est strictement inférieure à y

x >= y : x est supérieure ou égale à y

x > y : x est strictement supérieure à y

01234
A

x = 5

y = 9

if x == y :

droite()

else :

gauche()


Les coordonnées de l'étoile :

01234
A

x = "Bon"

y = "soir"

if x + y != "Bonjour" :

droite()

else :

gauche()


Les coordonnées de l'étoile :

Lorsque deux textes sont additionnés, ils sont "concaténés" (fusionnés). "Bon"+"soir" donne donc "Bonsoir".

Puisque "Bonsoir" n'est pas égal à "Bonjour", l'étoile va à droite.

012
A
B
C

x = 1

y = 10

if x <= 0 :

droite()

elif y > 10 :

gauche()

elif x + y >= 11 :

haut()

else :

bas()


Les coordonnées de l'étoile :

L'opérateur not

Cette opérateur exprime l'inverse d'une condition : si la condition est fausse, des instructions seront exécutées.

01
A
B

droite()

if not :

haut()

gauche()


Les coordonnées de l'étoile :

0123
A
B
C

droite()

if not :

haut()

droite()

if not :

bas()

gauche()


Les coordonnées de l'étoile :

L'opérateur and

Cette opérateur indique que plusieurs conditions doivent être vraies pour que des instructions soient exécutées.

Si une seule de ces conditions est fausse, les instructions ne sont pas exécutées.

01234
A

x = 3

if and x > 0 :

droite()

else :

gauche()


Les coordonnées de l'étoile :

L'opérateur or

Cette opérateur indique qu'aux moins une des conditions doit être vraie pour que des instructions soient exécutées.

012
A
B

x = -5

if and x != 0 :

droite()

elif or x == 0 :

haut()

else :

gauche()


Les coordonnées de l'étoile :

Les boucles bornées (for _)

L'instruction for

for indique que les instructions indentées (décalées à droite) seront exécutées plusieurs fois.

for _ in range(x) indique que les instructions seront exécutées x fois.

01234
A
B
C
D

haut()

haut()

for _ in range(3):

gauche()

bas()


Les coordonnées de l'étoile :

012345
A
B
C
D
E

haut()

for _ in range(4):

gauche()

bas()

droite()


Les coordonnées de l'étoile :

01234
A
B
C
D

for _ in range(2):

gauche()

bas()

for _ in range(3):

droite()


Les coordonnées de l'étoile :

0
A
B
C
D
E
F
G

for _ in range(3):

haut()

for _ in range(5):

bas()


Les coordonnées de l'étoile :

0
A
B
C
D
E
F
G
H
I
J

for _ in range(4):

haut()

for _ in range(2):

bas()


Les coordonnées de l'étoile :

01234567
A
B
C
D

bas()

for _ in range(2):

for _ in range(3):

droite()

haut()


Les coordonnées de l'étoile :

0123
A
B
C
D
E
F

for _ in range(4):

if :

droite()

else :

gauche()

bas()

bas()


Les coordonnées de l'étoile :

0123456
A
B
C
D
E
F
G

for _ in range(6):

gauche()

if :

haut()

haut()


Les coordonnées de l'étoile :

012345
A
B

for _ in range(5):

haut()

if :

droite()

bas()


Les coordonnées de l'étoile :

0123456
A
B
C
D
E
F
G

for _ in range(22):

if :

bas()

haut()

gauche()


Les coordonnées de l'étoile :

012345
A
B

for _ in range(10):

if :

droite()

haut()

gauche()


Les coordonnées de l'étoile :

01234567
A
B

for _ in range(5):

if :

haut()

if :

bas()

droite()


Les coordonnées de l'étoile :

01234
A
B
C
D
E

for _ in range(6):

if :

gauche()

else :

bas()


Les coordonnées de l'étoile :

01234
A
B
C
D
E
F
G

for _ in range(5):

if :

gauche()

else :

droite()

haut()


Les coordonnées de l'étoile :

01234567
A
B

for _ in range(5):

if :

haut()

elif :

bas()

droite()


Les coordonnées de l'étoile :

0123
A
B
C
D

for _ in range(3):

if not :

droite()

bas()


Les coordonnées de l'étoile :

012345
A
B

for _ in range(5):

if not :

droite()

haut()


Les coordonnées de l'étoile :

01234
A
B
C
D

x = 0

for _ in range(5):

x = x + 1

if and x > 2 :

droite()

else :

haut()


Les coordonnées de l'étoile :

Les boucles non-bornées (while)

L'instruction while

while indique que les instructions indentées (décalées à droite) seront exécutées tant que la condition est vraie.

0123456
A
B

while :

droite()

haut()


Les coordonnées de l'étoile :

0123456
A
B
C
D
E

while :

gauche()

haut()

gauche()

bas()


Les coordonnées de l'étoile :

0123456
A
B
C
D
E
F
G

while :

droite()

if :

bas()

gauche()

gauche()


Les coordonnées de l'étoile :

0123456
A
B
C
D
E
F
G
H

while :

droite()

haut()

while :

gauche()


Les coordonnées de l'étoile :

01234
A
B
C
D
E
F
G
H

for _ in range(3) :

while :

droite()

bas()

while :

gauche()

bas()


Les coordonnées de l'étoile :

01234567
A
B
C
D
E

while :

for _ in range(3) :

droite()

haut()

while :

gauche()


Les coordonnées de l'étoile :

01234
A
B

while not :

gauche()

bas()


Les coordonnées de l'étoile :

012345678
A
B
C
D
E
F

while not :

if :

droite()

bas()

elif :

droite()

haut()

elif :

while not :

bas()

elif :

gauche()


Les coordonnées de l'étoile :

Les boucles bornées (for i)

L'instruction for i

for indique que les instructions indentées (décalées à droite) seront exécutées plusieurs fois.

On peut utiliser une variable (souvent i) à la place du tiret-bas. Cette variable va changé de valeur à chaque boucle.

Exemple : for i range(100)

Par défaut, lors du premier tour de boucle, la variable i prend la valeur 0.

Lors du deuxième tour, i prend la valeur 1, puis la valeur 2... et ainsi de suite jusqu'à 99 (100 est exclu car on boucle 100 fois).

Conseil : Prenez de quoi noter pour vous aider !

Qu'affiche ce programme ?

total = 0

for i in range(4):

total = total + i

print(total)


Le programmage affiche :

La variable i va prendre prendre la valaur 0 lors de la première itération. Puis, la valeur 1, 2 et enfin 3 (4 tours de boucles).

Alors, total = 0 + 1 + 2 + 3, le programme affiche donc de 6.

0
A
B
C
D
E
F
G
H

for i in range(7):

if i < 4

bas()


Les coordonnées de l'étoile :

012345
A
B
C
D
E
F

for i in range(7):

if i < 4 :

haut()

else :

droite()


Les coordonnées de l'étoile :

0123456789
A

x = 0

for i in range(10):

if i == x:

x = x + 3

else :

gauche()


Les coordonnées de l'étoile :

012345
A
B
C
D
E
F
G

for x in range(5):

haut()

if x == 0:

bas()

elif x == 3:

gauche()

else :

droite()


Les coordonnées de l'étoile :

012345678
A
B
C
D

for i in range(3):

for j in range(i+1):

gauche()

bas()


Les coordonnées de l'étoile :

01234567
A
B
C
D
E

for i in range(4):

for _ in range(2):

gauche()

for j in range(3):

if i < j:

droite()

elif i == j:

bas()


Les coordonnées de l'étoile :

Les bornes

Par défaut, i commence toujours à la valeur 0, mais on peut changer cette valeur par défaut.

Avec l'instructionfor i range(x, y), i prend les valeurs de x (inclue) à y (exclue).

compteur = 0

for i in range(3, 7):

compteur = compteur + 1

print(compteur)


Le programmage affiche :

La variable i va prendre les valeurs de 3 (incluse) à 7 (exclue). Il y aura donc 4 tours de boucles : le programme affiche 4.

x = 0

for i in range(10, 15):

x = x + i

print(x)


Le programmage affiche :

x = 10 + 11 + 12 + 13 + 14, alors le programme affiche 60.

Le pas

Par défaut, i va augmenter de 1 à chaque tour de boucle, mais on peut changer cette valeur par défaut.

Avec l'instructionfor i range(x, y, z), i prend les valeurs de x (inclue) à y (exclue) avec un pas de z (i augmente de +z à chaque tour de boucle).

compteur = 0

for i in range(2, 16, 5):

compteur = compteur + 1

print(compteur)


Le programmage affiche :

La variable i va de la valeur 2 à la valeur 16, avec un pas de 5. i contient 2, puis 7 et enfin 12. Le compteur va s'incrémenté 3 fois, donc le programme affiche 3.

total = 0

for i in range(2, 12, 2):

total = total + i

print(total)


Le programmage affiche :

total = 2 + 4 + 6 + 8 + 10, alors le programme affiche 30.

Les listes

Les listes

Une liste est une suite de valeurs entre crochets.

Chaque valeur a pour adresse un "indice", le premier indice étant toujours 0.

Pour récupérer une valeur dans une liste, on utilise cet indice.

Pour obtenir le nombre de valeurs dans la liste, on utilise la fonction len.

Qu'affiche ce programme ?

liste = [5, 9, 7, 1]

print(liste[0])


Le programmage affiche :

La valeur à l'indice 0 de la liste est 5.

Qu'affiche ce programme ?

liste = [5, 9, 7, 1]

print(liste[2])


Le programmage affiche :

Qu'affiche ce programme ?

liste = [5, 9, 7, 1, 2, 7, 6, 0]

print(len(liste))


Le programmage affiche :

Qu'affiche ce programme ?

liste = [5, 2, 9, 4, 8, 7, 9, 1, 3, 0]

n = len(liste)

total = 0

for i in range(n):

total = total + liste[i]

print(total)


Le programmage affiche :

Qu'affiche ce programme ?

liste = [5, 2, 9, 4, 8, 7, 9, 1, 3, 0]

n = len(liste)

total = 0

for i in range(2):

total = total + liste[i]

print(total)


Le programmage affiche :

Qu'affiche ce programme ?

liste = [5, 2, 9, 4, 8, 7, 9, 1, 3, 0]

n = len(liste)

total = 0

for i in range(2, 5):

total = total + liste[i]

print(total)


Le programmage affiche :

Qu'affiche ce programme ?

liste = [5, 2, 9, 4, 8, 7, 9, 1, 3, 0]

n = len(liste)

total = 0

for i in range(n):

if i > 4:

total = total + liste[i]

print(total)


Le programmage affiche :

012345
A

liste = [3, 7, 9, 5, 8, 2, 4, 1, 6, 9]

n = len(liste)

total = 0

for i in range(n):

if i > 4 and liste[i] < 5:

droite()


Les coordonnées de l'étoile :

012345
A
B
C

liste = [, , , , , ]

n = len(liste)

total = 0

for i in range(n):

if liste[i]:

droite()

else:

bas()


Les coordonnées de l'étoile :

Les fonctions

Les fonctions

Une fonction est un bloc d'instructions définie. Ce bloc d'instructions peut être utilisé lorsque l'on appelle la fonction dans un programme.

0123
A

def aller_a_droite() :

droite()

droite()

droite()


aller_a_droite()


Les coordonnées de l'étoile :

0123456
A

def aller_a_droite() :

droite()

droite()

droite()


aller_a_droite()

gauche()

aller_a_droite()


Les coordonnées de l'étoile :

01234
A
B
C
D
E

def escalier() :

haut()

gauche()


for _ in range(3):

escalier()


Les coordonnées de l'étoile :

0123456
A
B
C
D

def aller_a_gauche() :

for _ in range(2):

gauche()

def grand_escalier() :

haut()

aller_a_gauche()


for _ in range(3):

grand_escalier()


Les coordonnées de l'étoile :

0123456
A
B
C
D
E
F
G

def aller_a_gauche() :

for _ in range(2):

gauche()

def grand_escalier() :

haut()

if :

haut()

aller_a_gauche()


for _ in range(3):

grand_escalier()


Les coordonnées de l'étoile :

0123456
A
B
C
D
E
F
G

def escalier() :

haut()

gauche()

if :

escalier()


escalier()


Les coordonnées de l'étoile :

Les paramètres

Il est possible de passer des valeurs du programme vers une fonction.

Lorsque l'on définie la fonction, on ajoute des "paramètres" : des variables que l'on va utiliser dans cette fonction.

Lorsque l'on appelle la fonction dans le programme, on associe à chaque variable une valeur.

Exemple : Supposons une fonction afficher(texte) qui affiche le contenu de la variable texte

L'instruction afficher("Bonjour") dans le programme va afficher "Bonjour".

L'instruction return

Il est aussi possible de passer des valeurs d'une fonction vers le programme.

On place l'instruction return suivie de la ou les valeurs à envoyer au programme.

A noter que lorsque l'on croise l'instruction return, la fonction est stoppée et se termine aussitôt.

Qu'affiche ce programme ?

def calcul(x, y) :

return x + y


print(calcul(3, 5))


Le programmage affiche :

Les variables x et y de la fonction calcul prennent les valeurs 3 et 5. La fonction retourne donc 3+5, soit 8.

Qu'affiche ce programme ?

def calcul(x, y) :

total = 0

for i in range(x):

total = total + y

return total


print(calcul(3, 7))


Le programmage affiche :

012345678910
A
B
C
D
E
F
G

def echelle() :

haut()

def tobogan() :

bas()

def afficher(texte) :

print(texte)

def marcher() :

droite()


def jeu() :

while not and not :

if :

echelle()

elif :

tobogan()

elif :

afficher("Game over...")

elif :

afficher("You win !")

else :

marcher()

jeu()


Les coordonnées de l'étoile :

Qu'affiche ce programme ?

Challenges

0123456789101112
A
B
C
D
E
F
G
H

while or or or or :

if :

gauche()

gauche()

bas()

bas()

elif :

haut()

droite()

droite()

elif :

gauche()

haut()

elif :

haut()

gauche()

elif :

bas()

droite()

droite()


Les coordonnées de l'étoile :

0123456789101112
A
B
C
D
E
F
G
H
I
J

def deplacement():

for _ in range(4):

bas()

droite()

mystere()


def mystere():

if :

gauche()

elif :

deplacement()

elif :

droite()

mystere()

else :

droite()

haut()

mystere()


while :

haut()

gauche()

gauche()

mystere()


Les coordonnées de l'étoile :

012345678
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
W

def teleporter(n, mouv):

for _ in range(n):

if mouv == "b" :

bas()

else :

haut()


def jeu(x):

while not( or or or ) :

if x == "d" :

droite()

else :

gauche()

direction = "d"

if :

teleporter(3, "b")

elif :

teleporter(6, "b")

direction = "g"

elif :

teleporter(3, "h")

if not :

jeu(direction)


direction = "d"

jeu(direction)


Les coordonnées de l'étoile :

Félicitations !

Vous êtes arrivées au bout de tous les programmes !

Revenir en arrière :

0 /84tableaux réussis
0 tentatives
0 /200 score final
option daltonien