猫史档案馆


【Python作品分享】气·喵你不偿·命的捡石子游戏【作品秀】

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


【作品展示】

center_image

 

【作品介绍】

什么?学校的功课太简单了?需要一种更有效的方式来训练你的大脑?(划掉)

经典游戏,再加上超强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


回复

上一页1 页 / 共 0下一页