关于本站
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()