常胜将军是一个非常有意思的智力游戏趣题。常胜将军的大意:A和B两个人玩抽取火柴的游戏,共有21根火柴。每个人每次最多取四根火柴,最少取一根火柴。如果某个人取到最后一根火柴则判定为失败方。A让B先抽取,结果每次都是A胜利。
代码:
import random
def game(match):
idx=0
while match>1:
idx+=1
if idx%2==1:
gamer='A'
choice=random.choice(range(1,5)) if match>=5 else random.choice(range(1,match+1))
else:
gamer='B'
if match>5:
for x in range(1,5):
if (match-x)%5==1:
choice=x
break
else:
choice=match-1
match-=choice
print(gamer,choice,match)
another='A' if gamer=='B'else 'B'
loser=gamer if match==0else another
print('%s 胜利!'%loser)
if __name__ == '__main__':
game(21)
运行结果:
A 2 19
B 3 16
A 2 14
B 3 11
A 3 8
B 2 6
A 4 2
B 1 1
A 胜利!
留言与评论(共有 0 条评论) “” |