python每日小程序1 24点游戏

24点游戏说明

  • 随机选取四张牌,1-K 对于 1-13
  • 你要使用+ - * / 还有() 进行基本的四则运算,使得它们的值为24

思路

  • 利用random模块提供的random.randint()函数随机产生四张牌
  • 利用python提供的eval()可以执行在字符串中表达式的功能,可能读取输入并且计算得到的值
  • 因为eval()函数可能不安全,所以需要使用python的集合类型进行判断,保证输入的字符串只含有数字和符号
'''
24点游戏
'''
import random

class Game(object):
    def __init__(self):
        self.curCard = []

    def getCard(self):
        #获得四张牌
        for i in range(4):
            self.curCard.append(str(random.randint(1,13))) #获得随机的,1到K

    def start(self):
        #开始游戏
        self.curCard = []
        self.getCard()
        self.showCard()
        self.answer()

    def showCard(self):
        #查看当前拿到的牌
        print(f'你拿到的牌是:{self.curCard[0]} {self.curCard[1]} {self.curCard[2]} {self.curCard[3]}')

    def answer(self):
        #输入答案区域
        print('-->>请在下面输入答案,你的输入只能包含数字和这些运算符: + - * / ( ) ')
        print('-->>输入-1为放弃(拿到的牌不一定可以组成24)')
        a = input('答案:')
        if a == '-1':
            print('你放弃了游戏')
        else:
            if set(a) - set(self.curCard) - set(['+','-','*','/','(',')']) == set():
                b = eval(a)
                if b == 24:
                    print('你的结果为24,你赢了')
                else:
                    print(f'你的结果为{b}')
            else:
                print('你的输入含有非法字符')


if __name__ == "__main__":
    a = Game()
    a.start()

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值