08/01/2009

Mastermind, quick and dirty as it gets.

Hop, en vitesse le temps que l'eau chauffe pour un thé, un petit jeu de quasi-Mastermind pondu d'un seul trait en Python. Le principe est le même que celui du jeu original, mais avec un gameplay un peu adapté: le code est composé de 4 chiffres entre 0 et 9 inclus, on dispose de 5 essais pour le trouver. A chaque essai le jeu donne un indice pour raffiner l'essai suivant: un "o" pour un bon chiffre à la bonne place, un "x" pour un bon chiffre à la mauvaise place, un "_" pour un mauvais chiffre. Nettement plus sympathique que le "vrai" Mastermind, pour ça qu'on a beaucoup moins d'essais :)

Pas de vérification, on suppose que l'utilisateur sait ce qu'il fait.

#! /usr/bin/env python

# 2009/01/08 - mastermind-0.py
# Jeu de Mastermind, premier jet
# Jean Karim Bockstael - jkb@jkbockstael.be

from random import randint

print """Code de 4 chiffres, entre 0 et 9 inclus, a trouver en 5 essais max.
  o : bon chiffre, bonne place
  x : bon chiffre, mauvaise place
  _ : mauvais chiffre
"""
code = ''
for i in range(0,4):
    code = code + str(randint(0,9))
trycode = ''
trynum = 0
while trynum < 5:
    trynum = trynum + 1
    trycode = raw_input('Essai: ')
    hint = ''
    for i in range(0,4):
        if trycode[i] == code[i]:
            hint = hint + 'o'
        elif code.find(trycode[i]) != -1:
            hint = hint + 'x'
        else:
            hint = hint + '_'
    if hint == 'oooo':
        break
    print trycode, ':', hint
if hint == 'oooo':
    print "Gagne!"
else:
    print "Perdu! Le code etait:", code

Tags:

cc-by-nc | code (python) | jeux


Tranche ronde de vie (19/01/2009)Project Euler : Solution au problème 10, en Python (07/01/2009)