一个python猜数字小游戏

一个猜数字游戏

遇到一个小问题,对于python新手来说,想着尝试尝试…
首先来看一下猜数字游戏的题目,猜一个密码锁:
条件一:6,8,2 一个号码正确,而且位置正确
条件二:6,1,4 一个号码正确,但是位置不正确
条件三:2,0,6 两个号码正确,但是位置都不正确
条件四:7,3,8 没有一个号码正确
条件五:8,7,0 一个号码正确,但是位置不正确

话不多说开始解决,上代码

lis = [[6,8,2],[6,1,4],[2,0,6],[7,3,8],[8,7,0]]#创建一个列表存储这五个条件
class Func:
    def condition_1(self):#条件一
        for z in range(0, 10):
            for y in range(0, 10):
                for x in range(0, 10):
                    if z == lis[0][0] or y == lis[0][1] or x == lis[0][2]:
                        self.condition_2(x,y,z)
    def condition_2(self,x,y,z):#条件二
        if (z == lis[1][1] or z == lis[1][2] and z != lis[1][0]) \
                or (y == lis[1][0] or y == lis[1][2] and y != lis[1][1]) \
                or (x == lis[1][0] or x == lis[1][1] and x != lis[1][2]):
            self.condition_3(x,y,z)
    def condition_3(self,x,y,z):#条件三
        if ((z == lis[2][1] and y == lis[2][2] and x != lis[2][0]) or (
                z == lis[2][1] and y == lis[2][0] and x != lis[2][2]) or (
                    z == lis[2][2] and y == lis[2][0] and x != lis[2][2])) or \
                ((z == lis[2][2] and x == lis[2][1] and y != lis[2][0]) or (
                        z == lis[2][2] and x == lis[2][0] and y != lis[2][1]) or (
                         z == lis[2][1] and x == lis[2][0] and y != lis[2][2])) \
                or ((y == lis[2][2] and x == lis[2][1] and z != lis[2][0]) or (
                y == lis[2][2] and x == lis[2][0] and z != lis[2][1]) or (
                            y == lis[2][0] and x == lis[2][1] and z != lis[2][2])) \
                and (z != lis[2][0] and y != lis[2][1] and x != lis[2][2]):
            self.condition_4(x,y,z)
    def condition_4(self,x,y,z):#条件四
        if (z != lis[3][0] and z != lis[3][1] and z != lis[3][2]) and \
                (y != lis[3][0] and y != lis[3][1] and y != lis[3][2]) and \
                (x != lis[3][0] and x != lis[3][1] and x != lis[3][2]):
            self.condition_5(x,y,z)
    def condition_5(self,x,y,z):#条件五
        if (z == lis[4][1] or z == lis[4][2]) or (y == lis[4][0] or y == lis[4][2]) or (
                x == lis[4][0] or x == lis[4][1]) and (z != lis[4][0] and y != lis[4][1] and x != lis[4][2]):
            print(z, y, x)
cal = Func()
cal.condition_1()

运行结果如下:

>>> 0 4 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值