这是一个有趣的数学游戏,你可以控制输赢的游戏,规则如下:
桌子上有21根火柴,两人轮流取,每人每次取1根或者两根,谁拿到最后一根谁就获胜!
这样的游戏孩子特别爱玩,玩的时候,如果没有火柴,可以用牙签、扑克卡牌来代替,能让孩子在玩的过程中学会数学,学会从中寻找规律。
(后面揭露可以必胜的方法!你先提前思考一下吧!!)
python 制作21根棍子游戏
这个游戏可以两个人玩,也可以多个人玩,更可以用python做个程序逗你玩!!!
以上是现实版的,以下咱们就做一下这个数学游戏的python版!
python电脑智障版这一版为傻瓜版,电脑在傻乎乎地“玩”游戏,为了便于理解,按逻辑直接写的代码,没有使用函数等,不够精简。
部分知识点:
import random 为导入随机库
continue 为跳出本次循环,break为打断整个循环
randint(1,2,)生成一个1-2的随机数
'下一回合'.center(20,'-') 文字居中对齐,两边用 - 填充,总字数为20
import random
sticks = 21
print("桌面上有共有你根棍子,请拿取 1 根或 2 根")
print("谁拿到最后一根就获胜!")
while True:
#玩家拿
print('请拿 1 根或 2 根棍子!')
user = int(input('>>>'))#获取玩家输入
if user<0 or user>2:#如果输入的数量不符合要求
continue#就退出去重新输入
else:
sticks-=user #总数减去玩家拿走的
if sticks==1 or sticks==2:
print('你输了,电脑赢得了游戏!')
break #彻底打断循环,游戏结束
elif sticks==3 or sticks==0:
print('恭喜!这局你战胜了电脑!')
break
else:
print(f"你拿了{user}根棍子,当前剩余{sticks}根")
#电脑拿
#电脑随机生成一个1-2的整数
computer = random.randint(1,2)
print(f'电脑拿了{computer}根棍子。')
sticks-=computer #总数减去电脑拿的
if sticks==1 or sticks==2:
print('恭喜,你赢了这局游戏!')
break
elif sticks==3 or sticks==0:
print('你输了!')
break
else:
print(f"当前剩余{sticks}根")
print()
print('下一回合'.center(20,'-')) #输入一个分割线
必胜的方法
有没有必胜的方法,答案是肯定的。因为每人每次只能拿1根或是2根,所以只要每次能拿到第3根,也就是3的倍数,第3、6、9、12、15、18、21根,那么肯定就能获胜,你明白了吗?
电脑高级版这一版为电脑高级版,电脑会根据你出的数字,计算出自己拿几根,也就是,玩家必输!
只需将 computer = random.randint(1,2) 一行,改为下面的代码即可!
% 为求余数的意思,
if sticks%3==0:
computer = random.randint(1,2)
else:
computer=sticks%3
你学到了吗?
这个游戏其实还可以好多玩法?先拿的输还是后拿的输?如果你先拿会赢吗?如果根子总数换了,如果每次可以拿的数量变多了,你还会赢吗?
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved