Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tc_info:tpa1 [2018/10/22 22:04] – [Pandas] edauce | tc_info:tpa1 [2019/12/09 16:49] (Version actuelle) – cjazzar | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====TPA2 : Tic tac toe ==== | ||
+ | |||
+ | |||
+ | Le but de ce TP en autonomie est programmer le jeu du Tic tac toe : un joueur contre l' | ||
+ | < | ||
+ | Nous allons progresser pas à pas : | ||
+ | * tout d' | ||
+ | * puis la stratégie et les fonctions associées | ||
+ | * le programme principal | ||
+ | </ | ||
+ | < | ||
+ | <color # | ||
+ | Les neuf cases du jeu se trouvent aux indices de 1 à 9, l' | ||
+ | </ | ||
+ | ===Affichage=== | ||
+ | < | ||
+ | voilà ce qu'on doit afficher comme représentation du jeu: | ||
+ | {{: | ||
+ | * les cases sont numérotées comme sur le clavier: jeu[1] en bas à gauche ... jeu[9] en haut à droite | ||
+ | {{: | ||
+ | </ | ||
+ | ===Fonctions de base=== | ||
+ | <code python> | ||
+ | def trace_jeu(jeu): | ||
+ | ''' | ||
+ | </ | ||
+ | <code python> | ||
+ | def saisie_lettre_joueur(): | ||
+ | ''' | ||
+ | retourne une liste avec en premier la lettre du joueur puis en second la lettre de l' | ||
+ | </ | ||
+ | <code python> | ||
+ | def qui_commence(): | ||
+ | ''' | ||
+ | </ | ||
+ | <code python> | ||
+ | def rejoue(): | ||
+ | ''' | ||
+ | </ | ||
+ | <code python> | ||
+ | def joue(jeu, | ||
+ | ''' | ||
+ | </ | ||
+ | <code python> | ||
+ | def a_gagne(jeu, | ||
+ | ''' | ||
+ | </ | ||
+ | <code python> | ||
+ | def copieJeu(jeu): | ||
+ | ''' | ||
+ | </ | ||
+ | <code python> | ||
+ | def place_libre(jeu, | ||
+ | ''' | ||
+ | </ | ||
+ | <code python> | ||
+ | def saisie_coup_suivant(jeu): | ||
+ | ''' | ||
+ | </ | ||
+ | <code python> | ||
+ | def choix_coup_dans_ liste(jeu, | ||
+ | ''' | ||
+ | </ | ||
+ | <code python> | ||
+ | def jeu_complet(jeu): | ||
+ | ''' | ||
+ | </ | ||
+ | ===Stratégie=== | ||
+ | < | ||
+ | Stratégie de l' | ||
+ | * regarde d' | ||
+ | * 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 | ||
+ | </ | ||
+ | <code python> | ||
+ | def coup_ordinateur(jeu, | ||
+ | ''' | ||
+ | </ | ||
+ | ===Programme principal=== | ||
+ | < | ||
+ | Algo général: | ||
+ | |||
+ | * <color # | ||
+ | * demande au joueur quelle lettre il veut | ||
+ | * décide qui commence | ||
+ | * <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' | ||
+ | * sinon ( ordinateur) | ||
+ | * détermine quel coup doit jouer l' | ||
+ | * place la lettre de l' | ||
+ | * regarde si l' | ||
+ | * regarde si le jeu est plein : match nul et partie finie | ||
+ | * si ni l'un ni l' | ||
+ | * si partie finie: demande au joueur s'il veut faire une autre partie: | ||
+ | * si oui on recommence la BOUCLE EXTERNE | ||
+ | * sinon on s' | ||
+ | </ | ||
+ | |||
+ | |||