Licence Informatique
Info0101 – 2012/2013
Travaux dirigés n
˚6
Tableaux à deux dimensions
Exercice 1 (Les matrices)
Dans cet exercice, les matrices sont représentées par des tableaux à 2 dimensions.
1
˚
) Écrivez une fonction prenant en paramètre une largeur et une hauteur, et retournant une matrice de ces dimensions.
2
˚
) Écrivez une fonction prenant en paramètre n, et retournant la matrice identité In.
3
˚
) Écrivez une fonction prenant en paramètre une matrice m, deux indices iet j, et inversant les deux lignes iet j
de m. Quelle modifications sont à apporter pour inverser deux colonnes ?
4
˚
) Écrivez une fonction prenant en paramètre deux matrices et retournant la somme de ces deux matrices. Quelles
conditions sont à poser sur les matrices ?
5
˚
) Même chose avec la multiplication de deux matrices passées en paramètre.
Exercice 2 (Parcours d’une grille)
On considère une grille de 10 x 10 cases, chaque case contenant un caractère. Les cases sont numérotées par un numéro
de ligne et un numéro de colonne.
1
˚
) On désire lire le contenu de la grille dans l’ordre usuel : ligne par ligne de haut en bas et sur chaque ligne de gauche
à droite.
a) Quelle sera la première case ? La dernière case ?
b) Si (l, c) est la case courante, quelle sera la case suivante ?
c) Écrivez l’algorithme de parcours complet.
2
˚
) En réalité, la grille contient un texte écrit en ancienne langue étrusque : arrivé à la fin d’une ligne, on change de
sens pour la ligne suivante.
a) Quelle sera la première case ? La dernière case ?
b) Si (l, c) est la case courante, quelle sera la case suivante ?
c) Récrivez l’algorithme de parcours complet.
3
˚
) Fatale erreur : ce sont des hiéroglyphes égyptiens ! Les anciens égyptiens écrivaient souvent sur des colonnes de
haut en bas et la première colonne était celle de droite.
a) Quelle sera la première case ? La dernière case ?
b) Si (l, c) est la case courante, quelle sera la case suivante ?
c) Récrivez l’algorithme de parcours complet.
4
˚
) Et si, finalement, le texte était écrit en spirale ? Écrivez l’algorithme.
Licence Informatique Info0101
Exercice 3 (Tic-tac-toe)
L’article de Wikipédia décrit les règles du jeu comme suit : “Le Tic-tac-toe se joue sur une grille carrée de 3x3 cases.
Deux joueurs s’affrontent. Ils doivent remplir chacun à leur tour une case de la grille avec le symbole qui leur est
attribué : O ou X. Le gagnant est celui qui arrive à aligner trois symboles identiques, horizontalement, verticalement
ou en diagonale.”.
1
˚
) Nous souhaitons écrire l’algorithme du jeu du Tic-tac-toe. Pour cela, on souhaite utiliser un tableau à 2 dimensions.
À votre avis, quel est le type de ce tableau ?
2
˚
) On suppose disposer de la fonction gagne(grille : tableau de tableaux d’entiers) : entier qui retourne
0 si aucun joueur n’a gagné, 1 si c’est le joueur 1 qui a gagné et 2 si c’est le joueur 2. Écrivez l’algorithme principal
du jeu.
3
˚
) Nous souhaitons écrire la fonction gagne.
a) Combien y’a-t-il de combinaisons gagnantes dans ce jeu ?
b) Proposez un algorithme simple pour vérifier si la première ligne de la grille contient 3 symboles identiques.
c) Généralisez cet algorithme pour toutes les lignes.
d) Idem pour les colonnes.
e) À l’aide des questions précédentes, écrivez la fonction gagne. N’oubliez pas de vérifier les 2 diagonales !
4
˚
) Écrivez le jeu du Tic-tac-toe en Java.
Exercice 4 (Le jeu des petits carrés)
Le jeu des petits carrés se joue à deux joueurs. Le but du jeu est le suivant : à chaque tour, chaque joueur trace un
petit trait suivant le quadrillage de la feuille afin de fermer des carrés. Le gagnant est celui qui en a fermé le plus. Pour
cet exercice, on choisit de représenter la grille de jeu sous la forme d’un tableau à 2 dimensions. Ce tableau contient
les informations concernant les carrés (déjà formés ou non) et les traits (tracés ou non). Si une case correspondant
à un carré est à 0, le carré n’est pas encore formé. Dans le cas contraire, la case est à 1. De même, pour les cases
correspondant aux traits.
0 0 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 1 1 1
0 0 0 1 0
0 0
0 1
0 0
0 1 0
0 1
0 1 1
0 1
. . .
|
. . — .
| |
. . — .
Représentation du jeu Cases pour les carrés Cases pour les traits Le jeu
1
˚
) En prenant un quadrillage de l×h, combien peut-on faire de carrés ? Écrivez un algorithme permettant de parcourir
uniquement les cases correspondant aux carrés.
2
˚
) Écrivez l’algorithme permettant de mettre à jour la valeur de la case (i,j) correspondant à un carré, en fonction
de ses traits.
3
˚
) Écrivez l’algorithme permettant de mettre à jour les cases correspondant aux carrés lorsqu’un trait est tracé sur
la case (i,j) (ie lorsque la case (i,j) est mise à 1).
4
˚
) Écrivez le jeu des petits carrés en Java.
2012/2013 – Travaux dirigés n
˚6page 2/2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !