# ex11030_jeu_nim.py ''' Variante du jeu de Nim, Il y a deux joueurs. Un tas commence avec 30 allumettes. Chacun à leur tour, un joueur doit enlever 1, 2 ou 3 allumettes du tas. Celui qui ne peux plus prendre d'allumettes a perdu. La variante est qu'il est interdit de prendre le même nombre d'allumettes que le joueur précédent. ''' nb_allumettes = 30 nb_precedent = 0 # nombre d'allumettes prise par le joueur précédent #joueur1 = "Alice"; joueur2 = "Bob"; nb_alumettes = 7 # Utile lors du développement joueur1 = input( ' Quel est ton nom joueur 1 ? ' ) joueur2 = input( ' Quel est ton nom joueur 2 ? ' ) while ( nb_allumettes > 1) or ((nb_allumettes == 1) and (nb_enleve > 1)) : print ( '−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−' ) print ( ' Information : Il reste ', nb_allumettes, 'allumettes.' ) print ( '−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−' ) reteste = True while reteste: try: nb_enleve = int(input(joueur1 + " : combien enleves−tu d’allumettes ? " )) if ( nb_enleve > 3): print ('Tu ne peux pas enlever plus que 3 allumettes !' ) elif ( nb_enleve < 1): print ('Il faut enlever au moins une allumette !' ) elif ( nb_enleve == nb_precedent): print ('Tu ne peux pas prendre le même nombre d''allumette que le joueur précédent !' ) elif ( nb_enleve > nb_allumettes ): print ("Tu ne peux pas enlever autant d’allumettes !" ) else: nb_allumettes = nb_allumettes - nb_enleve joueur1, joueur2 = joueur2, joueur1 # échange le nom des joueurs. nb_precedent = nb_enleve # mémorise le nombre d'allumettes prises par le joueur précédent. reteste = False; if (nb_allumettes == 0): print ( "******************** \n \n \n \n " ) print ( joueur2, "a gagné ! ", joueur1, "a perdu, car il n'y a plus d'allumette.") break if (nb_allumettes == 1) and (nb_enleve == 1): print ( "******************** \n \n \n \n " ) print ( joueur2, "a gagné ! ", joueur1, "a perdu, car il ne peut pas prendre autant d'allumette que le précédent.") break except: print("Entre un chiffre entre 1 et 3")