用户:
屑雷神索尔查看:0 回复:0 评论:0 创建时间:2021-01-10T09:40:20
【作品展示】

【作品介绍】
什么?学校的功课太简单了?需要一种更有效的方式来训练你的大脑?(划掉)经典游戏,再加上超强AI,让你玩得一脸懵逼!(?????????)
【作品源代码】
import random,time
#简单易明的规则
rules='''《捡石头游戏》
游戏有两名玩家,每回合取走1/2/3颗石子。
取走最后一组石子的玩家获胜,没有石子可拿的玩家输。
'''
print(rules)
#基础设定
allowed=(1,2,3)
win_2=[]
#基础建设
def computer(stone,allowed):
if stone <= 3:
move = stone
elif stone <= 7 and stone >= 5:
move = stone-4
elif stone <= 11 and stone >= 9:
move = stone-8
elif stone <= 15 and stone >= 13:
move = stone-12
else:
move = 1
return move
def human(stone,allowed):
while True:
try:
move = int(input('请问你要取走多少颗石子? '))
except:
print('输入不符合规格,请重新输入~')
continue
#检查输入是否允许
if move in allowed and move <= stone:
break
print('输入不符合规格,请重新输入~')
return move
#游戏主体
def game(allowed):
cnt_stones = random.randint(12,30)
if cnt_stones % 4 == 0:
player = 1
else:
player = 2
while True:
time.sleep(1)
#打印剩下的石子
print(f'目前有{cnt_stones}颗石子:{"○"*cnt_stones}')
#获取选择
if player==1: pick_stones=computer(cnt_stones,allowed)
else: pick_stones=human(cnt_stones,allowed)
#取走石子
cnt_stones-=pick_stones
time.sleep(1)
print(f'玩家{player}取走了{pick_stones}颗石子。')
#游戏结束
if cnt_stones==0:
print(f'玩家{player}获胜!')
break
#改变玩家
if player==1:
player=2
else:
player=1
return player
n=10
for a in range(n):
print(f'————————————————第{a+1}轮游戏————————————————————————')
winner=game(allowed)
if winner==2:
win_2.append(winner)
print('总局数:'+str(n)+'获胜次数:'+str(len(win_2))+'获胜率:'+str(len(win_2)/n*100)+'%')
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn