小编Mik*_*ike的帖子

Mastermind minimax算法

我试图在python中实现Donald Knuth的算法,用于在不超过5个动作中进行密码破解.我已经多次检查了我的代码,它似乎遵循算法,如下所述:http: //en.wikipedia.org/wiki/Mastermind_(board_game)#Five-guess_algorithm

但是,我知道一些秘密需要7甚至8个动作来完成.这是代码:

#returns how many bulls and cows there are
def HowManyBc(guess,secret):
    invalid=max(guess)+1
    bulls=0
    cows=0
    r=0
    while r<4:
        if guess[r]==secret[r]:
            bulls=bulls+1
            secret[r]=invalid
            guess[r]=invalid
        r=r+1
    r=0
    while r<4:
        p=0
        while p<4:
            if guess[r]==secret[p] and guess[r]!=invalid:
                cows=cows+1
                secret[p]=invalid
                break
            p=p+1
        r=r+1    
    return [bulls,cows]

# sends every BC to its index in HMList
def Adjustment(BC1):
    if BC1==[0,0]:
        return 0
    elif BC1==[0,1]:
        return 1
    elif BC1==[0,2]:
        return 2
    elif BC1==[0,3]:
       return 3
    elif BC1==[0,4]:
        return 4
    elif BC1==[1,0]:
        return 5 …
Run Code Online (Sandbox Code Playgroud)

python algorithm minimax

4
推荐指数
1
解决办法
3794
查看次数

python中的输入异常

运行以下代码时:

try:
   key=int(input())
except ValueError as string:
   print("Error is within:",string)
Run Code Online (Sandbox Code Playgroud)

例如,如果一个放'rrr',这个异常会上升,因为'rrr'不支持(int)

但是,不是把实际的字符串放在一起,而是:"对于基数为10的int()的无效文字:'rrr'"

如何让它工作,以便变量'string'实际上得到用户给出的错误输入(在这个例子中,我希望它打印:'错误在:rrr')

非常感谢

exception python-3.x

0
推荐指数
2
解决办法
323
查看次数

标签 统计

algorithm ×1

exception ×1

minimax ×1

python ×1

python-3.x ×1