美文网首页
Python小游戏:抢21游戏

Python小游戏:抢21游戏

作者: splinzer | 来源:发表于2018-07-14 14:15 被阅读172次

    小时候和伙伴们玩过一个数字游戏:

    两个人玩,从小到大轮流数数,一个人每次只能数1-3个数,谁先数到21算输。

    当时琢磨出了这个游戏的制胜诀窍,然后凭借这个游戏赢了伙伴不少零食。今天用Python写出来,让不明真相的同学试试,哈哈。

    def game(step = 3, count = 5):  
        '''两人轮流从1开始从小到大数数,每次只能数1-3个数,谁数到21谁就输
        泛化一下:
            n 为每次最大步数
            max = (n + 1) * m + 1
            制胜诀窍是抢n + 1的倍数
        '''
        current_number = 0
        target = (step + 1) * count + 1
        
        print('-------游戏规则-------')
        print('''人和电脑轮流从1开始从小到大数数,每次只能数1-%d个数,
              谁数先到%d谁就输''' % (step, target))
        while True:
            n = input('走几步?')
    
            if n.isdigit():
                n = int(n)
                if not 0 < n < (step + 1):
                    print('-------只能输入1和%d之间的数-------' % step)
                    continue
            else:
                print('-------只能输入数字-------')
                continue
            #玩家走
            print('-------您选择走%d步-------' % n)
            for i in range(1,n + 1): 
                current_number += 1
                print('您>', current_number)
                if current_number >= target:
                    print('-------Game Over! 您输了!-------')
                    return
            #电脑走
            m = step + 1 - n
            print('-------电脑选择走%d步-------' % m)
            for i in range(1,m + 1): 
                current_number += 1
                print('电脑>', current_number)
                
    game()
    

    相关文章

      网友评论

          本文标题:Python小游戏:抢21游戏

          本文链接:https://www.haomeiwen.com/subject/cjhypftx.html