文曲星上的经典“猜数字”游戏,伴我度过了多少个无聊的时该,今天回想起来,依然心潮澎湃。前几天将这个游戏做到到Winodows Mobile上。今天赶上有空,又将它写成了Python。哈哈,Python不愧为Python,只用到前者1/3左右的代码就搞定了。
说一下游戏规则吧,很简单:程序随机生成一个数字不重复的四位数(如1234),要求玩家在8次机会内猜出这个答案。每次竞猜,程序会以“XAXB”的形式提示玩家,其中“A”表示数字和位置都正确,“B"表示位置不正确但数字正确,“X”表示相应的个数。如玩家猜“5678”,那么提示为“0A0B”,猜“4321”则“0A4B”,当“4A0B”时,即4个数的位置的数字都正确了,才算胜利!
怎么样?你敢挑战一下自己的智商吗?以下是源码:(欢迎帮助改进,最好能改成PYS60上的)
import random
class Bingle:
"""
Generate a random answer,and record guess times,and judge it
"""
A,B=(0,0) #Match falg
AttemptTimes=8 #Geuss times
Answer=[0,0,0,0] #The Answer
def BuildAnswer(self):
random.seed()
while 1:
digit = random.randint(0, 9999