Étude, jeu de devinettes à partir d'une entrée standard!
test.py
#! F:/Python/python.exe
# -*- coding: utf-8 -*-
import random
import re
#Nombre de chiffres
SCALE = 4
#Renvoie un tableau aléatoire de nombres sans chevauchement
def GetRandomNumbers(place):
seed = range(0, 10)
random.shuffle(seed)
result = ""
for i in range(0, place):
result = result + str(seed.pop())
return result
#Comparez les réponses aux réponses
def CompareSolAns(solution, answer):
h = 0
b = 0
for sIndex, sValue in enumerate(answer):
for aIndex, aValue in enumerate(solution):
if sValue == aValue :
if sIndex == aIndex :
h += 1
else :
b += 1
return {"H":h, "B":b, "A":answer}
#Générer une réponse
solution = GetRandomNumbers(SCALE)
#Boucle vers la bonne réponse
count = 0
history = []
while True :
#Décompte des entrées de réponse
count += 1
#Entrer la réponse
inputStr = "Turn "+str(count)+", Input Number:"
inputStr = inputStr.decode('utf-8')
ans = raw_input(inputStr)
#Vérifier l'entrée avec une expression régulière
checkMatch = re.match(r'^\d{'+str(SCALE)+'}$', ans)
#Si l'entrée n'est pas conforme à l'expression régulière, recommencez
if checkMatch is None :
print u"Bad Input"
continue
#Comparez la réponse avec la bonne réponse
result = CompareSolAns(solution, ans)
#Si la réponse est correcte, terminez
if result["H"] == SCALE:
break
#Si la réponse est incorrecte, les résultats sont empilés et affichés, et une boucle
history.append(result)
#Voir les résultats
print('------------------------------')
for i, val in enumerate(history) :
print "Turn "+str(i+1)+"\t"+val["A"]+"\t"+str(val["H"])+"H\t"+str(val["B"])+"B\t"
print('------------------------------')
print unicode("****** Exactly! ****** "+str(count)+" turn you are seikai")
Recommended Posts