自学编程Python日更成长营

自学Python:无法打败的机器人游戏

2022-01-20  本文已影响0人  小强聊成长

有火柴21根,两人依次取,每次每人只可取走1~4根,不能多取,也不能不取,谁取到最后一根火柴谁输。

那么问题来了,请编写一个人机对弈程序,要求人先取,计算机后取;计算机永远获胜。

要计算机永远获胜,那么这个游戏就只能是最后保留一根火柴给人来取。

下面直接上代码:

########################

if __name__ == "__main__":

    huocai = 21  # 21根火柴

    print("--------你不能战胜我,不信试试--------")

    print("开始游戏: ")

    while 1:

        print("--------目前还有火柴 %d 根--------" %huocai)

        ren = int(input("人取火柴:"))  # 人取火柴

        if ren < 1 or ren > 4 or ren > huocai:

            print("你违规了,你取的火柴数有问题!")

            continue

        huocai = huocai - ren  # 人取后,剩余的火柴数

        # 人取后,剩余的火柴数为0,则计算机获胜,跳出循环

        if huocai == 0:

            print("计算机获胜,游戏结束!")

            break

        # 计算机取火柴

        computer = 5 - ren

        huocai = huocai - computer

        print("计算机取火柴:%d" %computer)

        # 计算机取后,剩余的火柴数为0,则人获胜,跳出循环

        if huocai == 0:

            print("人获胜,游戏结束!")

            break

########################

执行结果如下:

--------你不能战胜我,不信试试--------

开始游戏:

--------目前还有火柴 21 根--------

人取火柴:4

计算机取火柴:1

--------目前还有火柴 16 根--------

人取火柴:1

计算机取火柴:4

--------目前还有火柴 11 根--------

人取火柴:4

计算机取火柴:1

--------目前还有火柴 6 根--------

人取火柴:3

计算机取火柴:2

--------目前还有火柴 1 根--------

人取火柴:1

计算机获胜,游戏结束!

________________END______________

上一篇下一篇

猜你喜欢

热点阅读