Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Dominique Newsgroups: fr.rec.jeux.enigmes Subject: Re: F-Nim Date: Fri, 21 Oct 2022 17:13:09 +0200 Organization: A noiseless patient Spider Lines: 69 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Fri, 21 Oct 2022 15:13:09 -0000 (UTC) Injection-Info: reader01.eternal-september.org; posting-host="ada60eb4fe28210ebf3d7d17fe4e095f"; logging-data="700738"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX191bxNb6ZslpTTjQYtV15wMo9NvZwYhLhI=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Cancel-Lock: sha1:kiiiXbIveywxnEEj0e3E7udsAOk= Content-Language: fr In-Reply-To: Bytes: 3075 Le 21/10/2022 à 11:10, Olivier Miakinen a écrit : > [diapublication, suivi vers fr.rec.jeux.enigmes] > > Bonjour, > > Voici un autre jeu qui, une fois résolu stratégiquement, pourra fournir > le sujet d'une programmation en Python[¹]. > > Comme dans le(s) jeu(x) de Nim, c'est un jeu à deux joueurs dans lequel > il s'agit de retirer des allumettes jusqu'à ce qu'il n'en reste plus. > Bonsoir, J'avais une variante. À partir d'un nombre N de frites, mais c'est comme les allumettes, on décide du nombre maximum de frites qu'on peut retirer, depuis 2 jusqu'à... N-1. Chaque joueur retire le nombre de frites qu'il veut, entre 1 et le nombre maximum qu'on peut prendre. Le gagnant est celui qui prélève la dernière frite. Il y a une stratégie gagnante à tous les coups, si l'adversaire commet une unique erreur. Autrement, celui qui commence peut gagner : import random cx=int(random.uniform(1,3)) if cx==1: choix=False else: choix=True #choix=False nbf=int(input('Combien de frites au départ ? ')) nbm=int(input('Combien de frites pouvons-nous manger à chaque tour ? ')) print('Tirage au sort de celui qui commence ') if choix == False: print('Vous commencez') else: print('Je commence ') while nbf!=0: if choix==False: prel=int(input('Combien de frites mangez-vous ?')) if prel>nbm: prel=nbm print('Vous avez trop prélevé de frites. Je ramène votre jeu à' ,nbm,' frites') if prel<1: prel=1 print('Vous n\'avez pas prélevé suffisamment de frites. Je ramène votre jeu à 1 frite') else: if nbf%(nbm+1)==0: prel=nbm else: prel=nbf%(nbm+1) print('Je prends ',prel,' frites.') nbf-=prel print('Il reste', nbf,' frites') choix=choix==False choix=choix==False if choix==True: print('J\'ai gagné ') else: print('Vous avez gagné')