有火柴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______________
网友评论