Etude, jeu de numérotation avec Python

É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

Etude, jeu de numérotation avec Python
Premier nombre 2 en Python
Reconnaissance des nombres dans les images avec Python
Implémentation du jeu de vie en Python
Projet Euler # 7 "1000 1er nombre premier" en Python
Projet Euler # 17 "Nombre de caractères" en Python
Mémo d'étude Python & Machine Learning ⑥: Reconnaissance des nombres
Quadtree en Python --2
CURL en Python
Note d'apprentissage Python_002
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Note d'apprentissage Python_000
Méta-analyse en Python
Unittest en Python
Note d'apprentissage Python_004
Discord en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
Note d'apprentissage Python_003
Note d'apprentissage Python_005
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
Note d'apprentissage Python_001
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Premier jour d'étude de Python
Sortie du nombre de cœurs de processeur en Python
Projet Euler # 8 "Produit maximum en chaîne numérique" en Python
Énumération des nombres premiers et jugement des nombres premiers en Python
Créez un jeu Janken en une seule ligne (python)
Projet Euler n ° 12 "Triangles hautement ajustés" en Python
Liste triée en Python
AtCoder # 36 quotidien avec Python