关于本站
1、基于Django+Bootstrap开发
2、主要发表本人的技术原创博客
3、本站于 2015-12-01 开始建站
闲着无聊,写个猜数字的小脚本玩一玩。
简单说一下猜数字的规则,玩家每次需要猜4位不同的数字(0~9)之后,会被告知一个类似于"1A2B"的结果。
1A代表有1个数字存在且其位置正确;
2B代表有2个数字存在但其位置不对。
让返回结果为"4A0B",则完全猜中数字。
这个代码也比较简单,我就不详细说明了。想玩的话,直接复制,玩一下。
#coding:utf-8
__author__ = 'Haddy Yang'
import random
class GuessNum():
"""猜数字类"""
anwser = ''
times = 0
def __init__(self):
pass
def get_new(self):
#随机生成4位不重复数字
self.anwser = ''.join(random.sample('0123456789', 4))
self.times = 0
return self.anwser
def check_num(self, num):
"""检查数字
num :string ,4 number char
"""
num = num[:4].ljust(4, ' ')
self.times += 1
a = b = 0
for i, n in enumerate(num):
if n == self.anwser[i]:
a+=1
elif n in self.anwser:
b+=1
return a, b
def main():
print u'欢迎来猜数字 version:1.0 | 2016-05-24'
guess = GuessNum()
while True:
guess.get_new()
while True:
num = raw_input(u'请输入4个数字:'.encode('gbk'))
a, b = guess.check_num(num)
if a == 4:
print u'恭喜你猜到了!答案是%s,猜了%s次。' % (guess.anwser, guess.times)
break
else:
print u'第%s次猜数字:%sA%sB' % (guess.times, a, b)
is_continue = raw_input(u'是否还继续玩?(y/n):'.encode('gbk')).lower()
if is_continue != 'y':
break
if __name__ == '__main__':
main()