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