猫史档案馆


【Python作品分享】狼人杀【作品秀】

用户:温顺的彗星猫W5pw温顺的彗星猫W5pw查看:0 回复:5 评论:0 创建时间:2023-03-04T23:07:58


【作品展示】

center_image

 

【作品介绍】

这是我制作以来最麻烦的作品。

 

【作品源代码】

import easygui
import ybc_speech as sp
import ybc_box as box
import random


choose = box.buttonbox('你们有多少人?',['3人','4人','5人'])
if (choose == '3人'):
    users = ['狼人', '平民', '平民']
    users2 = ['1号', '2号', '3号']
    random.shuffle(users)
    sp.speak('请1号来!')
    easygui.msgbox('你好1号!')
    easygui.msgbox(('你是' + users[0]))
    sp.speak('请2号来!')
    easygui.msgbox('你好2号!')
    easygui.msgbox(('你是' + users[1]))
    sp.speak('请3号来!')
    easygui.msgbox('你好3号!')
    easygui.msgbox(('你是' + users[2]))
    sp.speak('开始投票!')
    one = 0
    two = 0
    three = 0
    sp.speak('请1号来投票!')
    a = box.buttonbox('投给谁?',users2)
    if (a == '1号'):
        one = (one + 1)
    elif (a == '2号'):
        two = (two + 1)
    elif (a == '3号'):
        three = (three + 1)
    else:
        pass
    sp.speak('请2号来投票!')
    b = box.buttonbox('投给谁?',users2)
    if (b == '1号'):
        one = (one + 1)
    elif (b == '2号'):
        two = (two + 1)
    elif (b == '3号'):
        three = (three + 1)
    else:
        pass
    sp.speak('请3号来投票!')
    c = box.buttonbox('投给谁?',users2)
    if (c == '1号'):
        one = (one + 1)
    elif (c == '2号'):
        two = (two + 1)
    elif (c == '3号'):
        three = (three + 1)
    else:
        pass
    if (one >= 2):
        sp.speak('1号出局,他是' + users[0])
        if (users[1] == '狼人'):
            sp.speak('2号是狼人!狼人胜利!')
        elif (users[2] == '狼人'):
            sp.speak('3号是狼人!狼人胜利!')
        else:
            sp.speak('平民胜利!')
    elif (two >= 2):
        sp.speak('2号出局,他是' + users[1])
        if (users[0] == '狼人'):
            sp.speak('1号是狼人!狼人胜利!')
        elif (users[2] == '狼人'):
            sp.speak('3号是狼人!狼人胜利!')
        else:
            sp.speak('平民胜利!')
    elif (three >= 2):
        sp.speak('3号出局,他是' + users[2])
        if (users[0] == '狼人'):
            sp.speak('1号是狼人!狼人胜利!')
        elif (users[1] == '狼人'):
            sp.speak('2号是狼人!狼人胜利!')
        else:
            sp.speak('平民胜利!')
    else:
        sp.speak('平局!')
        if (users[0] == '狼人'):
            sp.speak('1号是狼人!')
        elif (users[1] == '狼人'):
            sp.speak('2号是狼人!')
        elif (users[2] == '狼人'):
            sp.speak('3号是狼人!')
        else:
            pass
elif (choose == '4人'):
    users = ['狼人', '平民', '平民', '平民']
    users2 = ['1号', '2号', '3号', '4号']
    random.shuffle(users)
    users1 = users
    sp.speak('请1号来!')
    easygui.msgbox('你好1号!')
    easygui.msgbox(('你是' + users[0]))
    sp.speak('请2号来!')
    easygui.msgbox('你好2号!')
    easygui.msgbox(('你是' + users[1]))
    sp.speak('请3号来!')
    easygui.msgbox('你好3号!')
    easygui.msgbox(('你是' + users[2]))
    sp.speak('请4号来!')
    easygui.msgbox('你好4号!')
    easygui.msgbox(('你是' + users[3]))
    while True:
        if (len(users2) == 2):
            sp.speak('狼人胜利!')
            break
        sp.speak('开始投票!')
        one = 0
        two = 0
        three = 0
        four = 0
        if ('1号' in users2):
            sp.speak('请1号来投票!')
            a = box.buttonbox('投给谁?',users2)
            if (a == '1号'):
                one = (one + 1)
            elif (a == '2号'):
                two = (two + 1)
            elif (a == '3号'):
                three = (three + 1)
            elif (a == '4号'):
                four = (four + 1)
            else:
                pass
        if ('2号' in users2):
            sp.speak('请2号来投票!')
            b = box.buttonbox('投给谁?',users2)
            if (b == '1号'):
                one = (one + 1)
            elif (b == '2号'):
                two = (two + 1)
            elif (b == '3号'):
                three = (three + 1)
            elif (b == '4号'):
                four = (four + 1)
            else:
                pass
        if ('3号' in users2):
            sp.speak('请3号来投票!')
            c = box.buttonbox('投给谁?',users2)
            if (c == '1号'):
                one = (one + 1)
            elif (c == '2号'):
                two = (two + 1)
            elif (c == '3号'):
                three = (three + 1)
            elif (c == '4号'):
                four = (four + 1)
            else:
                pass
        if ('4号' in users2):
            sp.speak('请4号来投票!')
            d = box.buttonbox('投给谁?',users2)
            if (d == '1号'):
                one = (one + 1)
            elif (d == '2号'):
                two = (two + 1)
            elif (d == '3号'):
                three = (three + 1)
            elif (d == '4号'):
                four = (four + 1)
            else:
                pass
        if (one >= 2):
            sp.speak('1号出局,他是' + users1[0])
            if (users[0] == '狼人'):
                sp.speak('平民胜利!')
                break
            else:
                users2.remove('1号')
        if (two >= 2):
            sp.speak('2号出局,他是' + users1[1])
            if (users[1] == '狼人'):
                sp.speak('平民胜利!')
                break
            else:
                users2.remove('2号')
        if (three >= 2):
            sp.speak('3号出局,他是' + users1[2])
            if (users[2] == '狼人'):
                sp.speak('平民胜利!')
                break
            else:
                users2.remove('3号')
        if (four >= 2):
            sp.speak('4号出局,他是' + users[3])
            if (users[3] == '狼人'):
                sp.speak('平民胜利!')
                break
            else:
                users2.remove('4号')
elif (choose == '5人'):
    users = ['狼人', '平民', '平民', '平民', '猎人']
    users2 = ['1号', '2号', '3号', '4号', '5号']
    dic = {'1号': users[0], '2号': users[1], '3号': users[2], '4号': users[3], '5号': users[4]}
    random.shuffle(users)
    users1 = users
    sp.speak('请1号来!')
    easygui.msgbox('你好1号!')
    easygui.msgbox(('你是' + users[0]))
    sp.speak('请2号来!')
    easygui.msgbox('你好2号!')
    easygui.msgbox(('你是' + users[1]))
    sp.speak('请3号来!')
    easygui.msgbox('你好3号!')
    easygui.msgbox(('你是' + users[2]))
    sp.speak('请4号来!')
    easygui.msgbox('你好4号!')
    easygui.msgbox(('你是' + users[3]))
    sp.speak('请5号来!')
    easygui.msgbox('你好5号!')
    easygui.msgbox(('你是' + users[4]))
    while True:
        if (len(users2) <= 2 and ('狼人' in users)):
            sp.speak('狼人胜利!')
            break
        sp.speak('开始投票!')
        one = 0
        two = 0
        three = 0
        four = 0
        five = 0
        if ('1号' in users2):
            sp.speak('请1号来投票!')
            a = box.buttonbox('投给谁?',users2)
            if (a == '1号'):
                one = (one + 1)
            elif (a == '2号'):
                two = (two + 1)
            elif (a == '3号'):
                three = (three + 1)
            elif (a == '4号'):
                four = (four + 1)
            elif (a == '5号'):
                five = (five + 1)
            else:
                pass
        if ('2号' in users2):
            sp.speak('请2号来投票!')
            b = box.buttonbox('投给谁?',users2)
            if (b == '1号'):
                one = (one + 1)
            elif (b == '2号'):
                two = (two + 1)
            elif (b == '3号'):
                three = (three + 1)
            elif (b == '4号'):
                four = (four + 1)
            elif (b == '5号'):
                five = (five + 1)
            else:
                pass
        if ('3号' in users2):
            sp.speak('请3号来投票!')
            c = box.buttonbox('投给谁?',users2)
            if (c == '1号'):
                one = (one + 1)
            elif (c == '2号'):
                two = (two + 1)
            elif (c == '3号'):
                three = (three + 1)
            elif (c == '4号'):
                four = (four + 1)
            elif (c == '5号'):
                five = (five + 1)
            else:
                pass
        if ('4号' in users2):
            sp.speak('请4号来投票!')
            d = box.buttonbox('投给谁?',users2)
            if (d == '1号'):
                one = (one + 1)
            elif (d == '2号'):
                two = (two + 1)
            elif (d == '3号'):
                three = (three + 1)
            elif (d == '4号'):
                four = (four + 1)
            elif (d == '5号'):
                five = (five + 1)
            else:
                pass
        if ('5号' in users2):
            sp.speak('请5号来投票!')
            e = box.buttonbox('投给谁?',users2)
            if (e == '1号'):
                one = (one + 1)
            elif (e == '2号'):
                two = (two + 1)
            elif (e == '3号'):
                three = (three + 1)
            elif (e == '4号'):
                four = (four + 1)
            elif (e == '5号'):
                five = (five + 1)
            else:
                pass
        if (one >= 2):
            sp.speak('1号出局,他是' + users1[0])
            if (users1[0] == '狼人'):
                sp.speak('平民胜利!')
                break
            else:
                users2.remove('1号')
                if (users1[0] == '猎人'):
                    users.remove('猎人')
                    sp.speak('1号,请选择一个人和你同归于尽!')
                    choose2 = box.buttonbox('你要和谁同归于尽?',users2)
                    if (dic[choose2] == '狼人'):
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是狼人!')
                        sp.speak('平民胜利!')
                        break
                    else:
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是平民!')
                        users2.remove(choose2)
                        users.remove('平民')
                else:
                    users.remove('平民')
        if (two >= 2):
            sp.speak('2号出局,他是' + users1[1])
            if (users1[1] == '狼人'):
                sp.speak('平民胜利!')
                break
            else:
                users2.remove('2号')
                if (users1[1] == '猎人'):
                    users.remove('猎人')
                    sp.speak('2号,请选择一个人和你同归于尽!')
                    choose2 = box.buttonbox('你要和谁同归于尽?',users2)
                    if (dic[choose2] == '狼人'):
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是狼人!')
                        sp.speak('平民胜利!')
                        break
                    else:
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是平民!')
                        users2.remove(choose2)
                        users.remove('平民')
                else:
                    users.remove('平民')
        if (three >= 2):
            sp.speak('3号出局,他是' + users1[2])
            if (users1[2] == '狼人'):
                sp.speak('平民胜利!')
                break
            else:
                users2.remove('3号')
                if (users1[2] == '猎人'):
                    users.remove('猎人')
                    sp.speak('3号,请选择一个人和你同归于尽!')
                    choose2 = box.buttonbox('你要和谁同归于尽?',users2)
                    if (dic[choose2] == '狼人'):
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是狼人!')
                        sp.speak('平民胜利!')
                        break
                    else:
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是平民!')
                        users2.remove(choose2)
                        users.remove('平民')
                else:
                    users.remove('平民')
        if (four >= 2):
            sp.speak('4号出局,他是' + users1[3])
            if (users1[3] == '狼人'):
                sp.speak('平民胜利!')
                break
            else:
                users2.remove('4号')
                if (users1[3] == '猎人'):
                    users.remove('猎人')
                    sp.speak('4号,请选择一个人和你同归于尽!')
                    choose2 = box.buttonbox('你要和谁同归于尽?',users2)
                    if (dic[choose2] == '狼人'):
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是狼人!')
                        sp.speak('平民胜利!')
                        break
                    else:
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是平民!')
                        users2.remove(choose2)
                        users.remove('平民')
                else:
                    users.remove('平民')
        if (five >= 2):
            sp.speak('5号出局,他是' + users1[3])
            if (users1[3] == '狼人'):
                sp.speak('平民胜利!')
                break
            else:
                users2.remove('5号')
                if (users1[3] == '猎人'):
                    users.remove('猎人')
                    sp.speak('5号,请选择一个人和你同归于尽!')
                    choose2 = box.buttonbox('你要和谁同归于尽?',users2)
                    if (dic[choose2] == '狼人'):
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是狼人!')
                        sp.speak('平民胜利!')
                        break
                    else:
                        sp.speak('猎人和'+ choose2 + '同归于尽,他是平民!')
                        users2.remove(choose2)
                        users.remove('平民')
                else:
                    users.remove('平民')
else:
    pass

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
ZH咲咲ZH咲咲

大佬,太恐怖了。

点赞0


评论


无光黑洞无光黑洞

狼人杀,用代码做其实还挺简单

但是佩服你的毅力

点赞0


评论


oWuGi7s6oWuGi7s6

呃()

 

点赞0


评论


1111111111111111211111111111111112

代码复杂但技术力不算很高

点赞0


评论


Chen_nChen_n

这得花多少天

点赞0


评论