Le Tic Tac Toe C’est le jeu de morpion limité à un tableau de 3 cases sur trois cases. Il y a deux joueurs, chacun marquant une case par sa marque O ou X ; le but est d’aligner trois marques identiques. Le plateau de jeu devra se présenter ainsi |?|?|?| |?|?|?| |?|?|?| les ? étant remplacés au fur et à mesure du jeu par X ou bien O. # Une classe Jeu contiendra le plateau de jeu, les deux joueurs et le joueur en train de jouer. # Une interface Joueur a une méthode jouer(Jeu j). # Une classe abstraite JoueurLambda définit un Joueur par son nom, sa marque et implémente Joueur # Une classe JoueurOrdi hérite de JoueurLambda et implémente la méthode jouer # Une classe JoueurHumain hérite de JoueurLambda et implémente la méthode jouer (un joueur humain doit donner les coordonnées de la case où il veut jouer : prévoir des exceptions sur la saisie) () Programmation Orientée Objet avec Java 25 novembre 2013 1/6 Exercices ArrayList Écrire un programme qui accepte, sur la ligne de commande, une suite de nombres et qui stocke dans un ArrayList ceux qui sont positifs Écrire un programme qui accepte, sur la ligne de commande, une suite de chaı̂nes de caractères et qui stocke dans un ArrayList celles qui contiennent au moins une fois le caractère ’a’ Faire afficher à l’écran toutes les chaı̂nes ainsi stockées dans la structure ArrayList Ecrire une méthode qui classe le ArrayList par ordre de longueur de chaı̂nes croissantes () Programmation Orientée Objet avec Java 25 novembre 2013 2/6 la structure de Tas pour implémenter une file de priorité Une file de priorité a pour spécifications : type file de priorité utilise type Booléen, type Elément signature init : → file de priorité insérer : (file de priorité, Elément)→ file de priorité supprimer : file de priorité → file de priorité premier : file de priorité → Elément vide : file de priorité → booléen et vérifie les axiomes suivants premier(insérer(f,E)) = ( E si vide(f) ou E a priorité sur premier(f) premier (f ) sinon supprimer(insérer(f,E))= ( f si vide(f)ou E a priorité sur premier(f) insérer (supprimer (f ), E ) sinon () Programmation Orientée Objet avec Java 25 novembre 2013 3/6 Tas Définition Un tas est un arbre binaire ayant les deux caractéristiques suivantes : arbre parfait : c’est un arbre binaire dont tous les niveaux hiérarchiques sont remplis, sauf éventuellement le dernier dans lequel toutes les feuilles sont le plus à gauche possible. arbre tournoi : c’est un arbre binaire dont toutes les valeurs sont croissantes depuis la racine vers les feuilles. Un tas (heap en anglais) est un arbre binaire parfait et tournoi. () Programmation Orientée Objet avec Java 25 novembre 2013 4/6 Représentation physique Le gros avantage d’un arbre parfait est sa compacité qui permet d’utiliser la numérotation hiérarchique pour représenter cet arbre dans un tableau dont l’indexage correspond au numéro hiérarchique. Exemple : 2 5 4 12 15 7 21 9 6 10 14 L’arbre ci-dessus est représenté par le tableau suivant : i t(i) 1 2 2 5 () 3 4 4 12 5 7 6 6 7 10 8 15 9 21 10 9 Programmation Orientée Objet avec Java 11 14 12 ... ... ... 25 novembre 2013 5/6 Interface et implémentation avec ArrayList # Ecrire une interface Tas # Ecrire une classe TasDEntiers implémentant l’interface Tas en utilisant la collection ArrayList () Programmation Orientée Objet avec Java 25 novembre 2013 6/6