Afficher la pageAnciennes révisionsLiens de retourAjouter au livre.Exporter en PDFHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====TPA2 : Tic tac toe ==== Le but de ce TP en autonomie est programmer le jeu du Tic tac toe : un joueur contre l'ordinateur. <note> Nous allons progresser pas à pas : * tout d'abord : les fonctions de base * puis la stratégie et les fonctions associées * le programme principal </note> <note> <color #ed1c24>Le jeu est représenté dans le programme par une liste de 10 ' '. Les neuf cases du jeu se trouvent aux indices de 1 à 9, l'indice 0 ne sert pas.</color> </note> ===Affichage=== <note> voilà ce qu'on doit afficher comme représentation du jeu: {{:tc_info:capture.png?400|}} * les cases sont numérotées comme sur le clavier: jeu[1] en bas à gauche ... jeu[9] en haut à droite {{:tc_info:capture3.png?400|}} </note> ===Fonctions de base=== <code python> def trace_jeu(jeu): '''cette fonction affiche le jeu passé en paramètre''' </code> <code python> def saisie_lettre_joueur(): '''saisie au clavier de la lettre choisie par le joueur 'X' ou 'O' retourne une liste avec en premier la lettre du joueur puis en second la lettre de l'ordinateur''' </code> <code python> def qui_commence(): ''' choisit par un random qui commence à jouer ''' </code> <code python> def rejoue(): '''cette fonction retourne True si le joueur veut rejouer, False sinon''' </code> <code python> def joue(jeu,lettre,lieu): '''met dans la liste jeu la lettre à la place lieu''' </code> <code python> def a_gagne(jeu, lettre): '''retourne True si le joueur représenté par la lettre agané le jeu''' </code> <code python> def copieJeu(jeu): '''retourne une copie de la liste jeu''' </code> <code python> def place_libre(jeu,place): ''' retourne True si la place est libre sur le jeu''' </code> <code python> def saisie_coup_suivant(jeu): ''' saisit le coup suivant du joueur''' </code> <code python> def choix_coup_dans_ liste(jeu,liste_coups): '''retourne un coup possible de la liste liste_coups (choisi au hasard si plusieurs possibles)''' </code> <code python> def jeu_complet(jeu): ''' retourne True s'il n'y a plus de place dans le jeu''' </code> ===Stratégie=== <note> Stratégie de l'ordinateur * regarde d'abord si il y a un coup qui peut le faire gagner * sinon si il y a un coup qui peut faire gagner le joueur alors il le bloque * sinon, s'il y a un coin de libre, y joue * sinon, si le centre est libre, y joue * sinon joue sur un des côtés </note> <code python> def coup_ordinateur(jeu, lettre_ordinateur): '''détermine quel coup doit jouer l'ordinateur''' </code> ===Programme principal=== <note> Algo général: * <color #ff7f27>BOUCLE EXTERNE:</color> * demande au joueur quelle lettre il veut * décide qui commence * <color #ffc90e>BOUCLE</color> * si c'est le joueur * montre le jeu * saisit le coup du joueur * place la lettre du joueur dans le jeu * regarde si le joueur a gagné : partie finie * regarde si le jeu est plein : match nul et partie finie * si ni l'un ni l'autre c'est au tour de l'ordinateur: on recommence la BOUCLE * sinon ( ordinateur) * détermine quel coup doit jouer l'ordinateur * place la lettre de l'ordinateur dans le jeu * regarde si l'ordinateur a gagné partie finie * regarde si le jeu est plein : match nul et partie finie * si ni l'un ni l'autre c'est au tour du joueur: on recommence la BOUCLE * si partie finie: demande au joueur s'il veut faire une autre partie: * si oui on recommence la BOUCLE EXTERNE * sinon on s'arrête </note> tc_info/tpa1.txt Dernière modification : 2019/12/09 16:49de cjazzar