python求解共有五个硬币,你可以选择拿一个,或者拿两个,最后一个把硬币拿完的获胜

问题遇到的现象和发生背景
问题相关代码,请

img


勿粘贴截图

img

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

求正确的代码

1.首先你语法上就错误。既然是分支条件,那里面的变量应该用同一个啊,不要a是true给c赋值,a是false给d赋值,统一都赋值给c后面不就不报错了吗
2.你得先会玩这个游戏,然后用代码实现,不要瞎搞乱搞
不管初始有几个硬币,最后一个拿的人获胜,那么先拿的人要让剩余硬币是3的倍数
这样如果对方拿1个,你就拿2个,对方拿2个,你就拿1个,这样硬币始终是3的倍数,不管重复多少次局面都不会发生变化,这是必胜法
如果初始就是3的倍数,先手必败

python还是2.7的,该升升级了,不过就冲你用python,idle,我支持你,



coin=5
print("游戏开始,最后拿走硬币的人获胜")
player = input("请输入谁先拿硬币a或者b:")
while True:
    if player == 'a':
        num = int(input("A选手请输入拿走硬币个数:"))
        player='b'
    elif player=='b':
        num = int(input("B选手请输入拿走硬币个数:"))
        player='a'
    else:
        print("请正确输入选手号码a或b")
        break
    coin = coin-num
    if coin==1 or coin==2:
        print("剩余金币{},{}获胜".format(coin,player))
        break

```