2007年7月14日星期六

Python 猜数字 for S60

无聊小游戏一个,
等时间的时候拿出手机来玩下也不错~~
这回笨重的QD总算派上点用场,
不过写程序时没有模拟器可真是折腾呀,
存储卡取出装上,反反复复……

#猜数字 for S60
#玩法按照文曲星上的(印象中)
#4个数字,不重复,范围(1-9)

import appuifw
from random import randint

def initializeSecret():
secret = []
for i in range(4):
num = randint(1, 9)
while num in secret:
num = randint(1, 9)
secret = secret + [num]
return secret

def checkGuess(secret, guess):
bulls, cows = 0, 0
for i in range(4):
if guess[i] in secret:
if guess[i] == secret[i]:
bulls = bulls + 1
else:
cows = cows + 1
return (bulls, cows)

def processGuess(gue):
guess = []
if len(gue) != 4:
return guess
for i in range(4):
digit = gue[i]
try:
num = int(digit)
if not 1 <= num <= 9:
return guess
except:
return guess
if not num in guess:
guess = guess + [num]
return guess

goon = True
while goon:
secret = initializeSecret()
guessTime = 0
while guessTime < 8:
gue = appuifw.query(u'Please input four digits:', 'number')
guess = processGuess(str(gue))
if len(guess) != 4:
appuifw.note(u"Invalid input")
continue
print guess
guessTime = guessTime + 1
result = checkGuess(secret, guess)
if result[0] == 4:
appuifw.note(u"You guess it! Congratulations!")
guessTime = 0
break
print result
appuifw.note(u'%dA%dB'%(result[0], result[1]))
if guessTime >= 8:
appuifw.note(u"Sorry, you failed!")
goon = appuifw.query(u"Next Number?", 'query')

没有评论: