Studiere, nummeriere das Spiel mit Python

Studie, Zahlenschätzspiel aus Standardeingabe!

test.py



#! F:/Python/python.exe
# -*- coding: utf-8 -*-

import random
import re

#Anzahl an Ziffern
SCALE = 4

#Gibt ein zufälliges, nicht überlappendes Array von Zahlen zurück
def GetRandomNumbers(place):

	seed = range(0, 10)
	random.shuffle(seed)

	result = ""

	for i in range(0, place):
		result = result + str(seed.pop())

	return result

#Vergleichen Sie Antworten mit Antworten
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}


#Antwort generieren
solution = GetRandomNumbers(SCALE)

#Schleife zur richtigen Antwort
count = 0
history = []
while True :
	#Antwort Eingabe Anzahl
	count += 1
	
	#Antwort eingeben
	inputStr = "Turn "+str(count)+", Input Number:"
	inputStr = inputStr.decode('utf-8')
	ans = raw_input(inputStr)
	
	#Überprüfen Sie die Eingabe mit einem regulären Ausdruck
	checkMatch = re.match(r'^\d{'+str(SCALE)+'}$', ans)
	
	#Wenn die Eingabe nicht dem regulären Ausdruck entspricht, beginnen Sie von vorne
	if checkMatch is None :
		print u"Bad Input"
		continue
	
	#Vergleichen Sie die Antwort mit der richtigen Antwort
	result = CompareSolAns(solution, ans)
	
	#Wenn die Antwort richtig ist, beenden Sie
	if result["H"] == SCALE:
		break
	
	#Wenn die Antwort falsch ist, werden die Ergebnisse gestapelt und angezeigt sowie eine Schleife
	history.append(result)
	
	#Ergebnisse anzeigen
	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

Studiere, nummeriere das Spiel mit Python
Primzahl 2 in Python
Zahlenerkennung in Bildern mit Python
Implementierung eines Lebensspiels in Python
Projekt Euler # 7 "1000 1. Primzahl" in Python
Projekt Euler # 17 "Anzahl der Zeichen" in Python
Python & Machine Learning Study Memo ⑥: Zahlenerkennung
Quadtree in Python --2
CURL in Python
Python lernen note_002
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Python lernen note_000
Metaanalyse in Python
Unittest in Python
Python lernen note_004
Zwietracht in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
Python lernen note_003
Python lernen note_005
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
Python lernen note_001
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Erster Tag des Python-Studiums
Geben Sie die Anzahl der CPU-Kerne in Python aus
Projekt Euler # 8 "Maximales Produkt in Anzahl Zeichenfolge" in Python
Primzahlaufzählung und Primzahlbeurteilung in Python
Mach ein Janken-Spiel in einer Zeile (Python)
Projekt Euler # 12 "Hochangepasste Dreiecke" in Python
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python