Coder un tableau

Le cours

Les tableaux.

Un tableau est un type de données qui peut contenir plusieurs éléments (aussi appelés items) classés dans un certain ordre.

Python comprend deux types de tableaux : les listes (type python list) et les tuples (type python tuple).

On définit un tableau en donnant ses éléments, séparés par des virgules. Une liste est encadrée par des crochets, un tuple n'est pas encadré, ou est encadré par des parenthèses.

Exemple

Voici quelques tableaux en python. Observez bien la syntaxe.

Les espaces avant ou après les virgules sont facultatifs, ils servent uniquement à faciliter la lecture par les personnes qui lisent le code, sans influence sur son exécution. Traditionnellement, on ne met pas d'espace avant une virgule, mais on en met un après, comme en français. Comme les tableaux peuvent être assez longs, il est autorisé d'aller à la ligne entre deux items. Ainsi, le code suivant est valide :

Exercices

Coordonnées de Céret

Céret se trouve à une latitude de 42,49 degrés et une longitude 2,75 degrés.

Affectez à une variable ceret un tuple comprenant deux items : d'abord la latitude, puis la longitude de Céret.

La couleur de mon site préféré

Le système RGB (rouge, vert, bleu) permet d'exprimer une couleur à l'aide de trois composantes : le rouge, le vert et le bleu, dans cet ordre.

La couleur dominante de mon site préféré est F66400. Cela signifie que la valeur du rouge est, en écriture décimale, 246, celle du vert est 100 et celle du bleu est 0.

Créez une variable couleur qui est un tableau de type list comprenant trois items. Ces trois items doivent être, dans l'ordre, les valeurs des composantes rouge, puis verte, puis bleue de la couleur F66400, écrites en écriture décimale.

Division entière

La division euclidienne (ou division entière) est une manière de partager un nombre entier naturel en deux nombres : le quotient et le reste.

Imaginez que vous voulez partager 17 objets équitablement entre 5 amis.

Vous pouvez donner 3 objets à chacun : le quotient de la division euclidienne de 17 par 5 est 3.

Il vous reste alors 2 objets : le reste de la division euclidienne de 17 par 5 est 2.

En python, on calcule le quotient de la division euclidienne de n par p avec : n // p (deux "slash") et le reste par n % p.

Programmez une fonction division qui prend en paramètre deux nombres entiers n et p et qui renvoie un tuple constitué du quotient et du reste de la division euclidienne de n par p.

Fil rouge : Picus

Picus sharpei, Parque de El Retiro, Madrid - 01

Picus est un oiseau. Sur son territoire, il y a des arbres qu'il visite chaque jour pour y chercher des insectes à manger.

Dans la tête de Picus, les arbres sont numérotés : il y a le premier arbre, le deuxième, etc. toujours dans le même ordre.

Vous aller simuler cette situation avec des tableaux : pour Picus, un "territoire" est un tableau qui ne contient que des booléens, chacun de ces booléens représentant un arbre. Chaque élément d'un "territoire" est égal à True si Picus a déjà visité l'abre aujourd'hui, False sinon. Vous pouvez remplacer ces booléens par des 0 et des 1 comme vu dans le cours sur les booléens.

Par exemple, un territoire de trois arbres dont seul le premier a été visité sera codé par (1, 0, 0) ou [1, 0, 0].

Picus : premier exemple

Supposons qu'il y ait six arbres dans le territoire de Picus.

Écrivez une programme Python qui affecte à une variable picus un tableau (type list ou tuple, au choix).

La variable picus doit coder les visites du jour de Picus, sachant qu'il a aujourd'hui déjà visité uniquement deux arbres : le deuxième et le dernier.

Fil rouge : Jeu de Tic-tac-toe

Le tic-tac-toe est un jeu de réflexion qui se joue à deux sur une grille carrée de 9 cases.

La grille comporte 3 lignes de 3 cases. Les deux joueurs, appelés "X" et "O", doivent chacun à leur tour remplir une case vide avec le symbole qui leur est attribué.

Le joueur gagnant est le premier qui réussit à aligner trois symboles sur la même ligne, la même colonne ou la même diagonale.

Ci-dessous se trouvent les étapes d'une partie où "X" gagne.

Sur cette image, on voit que "X" commence à jouer sur la case de la première ligne et troisième colonne. Puis "O" joue sur la case de la première ligne, première colonne, etc.

"X" gagne en alignant trois "X" sur la troisième ligne.

Nous choisissons de coder l'état d'une grille par une variable grille qui est une liste python de 9 éléments qui sont chacun une chaîne de caractères parmi " ", "X" ou "O". Chaque élément est égal au symbole présent dans la grille. Les 9 éléments sont codés dans l'ordre, de gauche à droite et de haut en bas.

Par exemple, la deuxième grille de l'image ci-dessus sera codée par :

grille = ["O", " ", "X", " ", " ", " ", " ", " ", " "]

Grille vide

Affectez à une variable grille une liste codant une grille vide de tic-tac-toe, c'est-à-dire une liste composée de 9 éléments égaux à " "

Quatrième étape

Affectez à une variable grille une liste codant la grille de tic-tac-toe de la quatrième étape de l'exemple : celle qui contient deux "O" et deux "X".