python复刻三国志11武将诊断

        三国志11,曾经最爱的游戏,其中的武将诊断更是别有一番趣味。下面复刻了一下武将诊断的小游戏,喜欢三国志的友友不妨来试试看,也欢迎对代码提出宝贵意见。

        开头引入的问题字典见附件

from san11questionlist import questions     #导入问题字典

currentPoint = "1"      #初始化当前节点为1
isOver = False      #游戏结束标记
print("欢迎来到三国志武将测试,快来测试你是三国的哪个人物吧!\n")
#问题跳转函数,currentP为母节点, nextP1为选择1时的子节点, nextP2为选择2时的子节点, finalResult1为到达末端节点后选择1时的答案, finalResult2为到达末端节点后选择2时的答案
def checkPoint(currentP, nextP1=None, nextP2=None, finalResult1=None, finalResult2=None):
    global currentPoint
    global isOver
    if currentPoint == currentP:        #如果当前节点是指定母节点
        userCheck = input(questions[currentPoint])      #显示当前节点的问题
        while True:     #检验用户的输入
            if userCheck == "1" or userCheck == "2":
                break
            else:
                userCheck = input("请按1或2!\n")
        match userCheck:
            case "1":
                if nextP1 is None:      #如果没有指定下一子节点,说明到达末端节点,输出答案
                    print(f"测试结果:最符合你的三国人物是{finalResult1}")
                    payAgain()      #询问用户重开或者结束
                elif nextP1.isdigit():      #如果母节点的答案选择了1,则指定nextP1为下一母节点
                    currentPoint = nextP1
            case "2":
                if nextP2 is None:
                    print(f"测试结果:最符合你的三国人物是{finalResult2}")
                    payAgain()
                elif nextP2.isdigit():
                    currentPoint = nextP2
    # print(f"cp is {currentPoint}")
def payAgain():
    global  currentPoint
    global isOver
    playAgain = input("再次测试按r,退出按q\n")
    while True:
        if playAgain == "r" or playAgain == "q":
            break
        else:
            playAgain = input("请按r或q!\n")
    match playAgain:
        case "r":
            currentPoint = "1"
            isOver = False
            mainGame()
        case "q":
            isOver = True
def mainGame():
    while not isOver:
        checkPoint("1", "2", "70")
        checkPoint("2", "3", "37")
        checkPoint("3", "4", "29")
        checkPoint("4", "5", "16")
        checkPoint("5", "6", "9")
        checkPoint("6", "7", "8")
        checkPoint("7", finalResult1="关羽", finalResult2="姜维")
        checkPoint("8", finalResult1="张辽", finalResult2="赵云")
        checkPoint("9", "10", "13")
        checkPoint("10", "11", "12")
        checkPoint("11", finalResult1="孙策", finalResult2="曹操")
        checkPoint("12", finalResult1="马超", finalResult2="孙坚")
        checkPoint("13", "14", "15")
        checkPoint("14", finalResult1="夏侯渊", finalResult2="曹仁")
        checkPoint("15", finalResult1="吕蒙", nextP2="8")
        checkPoint("16", "17", "24")
        checkPoint("17", "18", "21")
        checkPoint("18", "19", "20")
        checkPoint("19", finalResult1="太史慈", finalResult2="徐晃")
        checkPoint("20", finalResult1="太史慈", finalResult2="夏侯惇")
        checkPoint("21", "22", "23")
        checkPoint("22", finalResult1="张任", finalResult2="曹真")
        checkPoint("23", finalResult1="徐盛", finalResult2="黄忠")
        checkPoint("24", "25", "26")
        checkPoint("25", finalResult1="甘宁", finalResult2="朱桓")
        checkPoint("26", "27", "28")
        checkPoint("27", finalResult1="公孙瓒", finalResult2="邓艾")
        checkPoint("28", finalResult1="张郃", finalResult2="邓艾")
        checkPoint("29", "16", "30")
        checkPoint("30", "31", "34")
        checkPoint("31", "32", "33")
        checkPoint("32", finalResult1="张飞", nextP2="27")
        checkPoint("33", finalResult1="典韦", finalResult2="许褚")
        checkPoint("34", "35", "36")
        checkPoint("35", finalResult1="魏延", finalResult2="吕布")
        checkPoint("36", finalResult1="高顺", nextP2="33")
        checkPoint("37", "38", "60")
        checkPoint("38", "39", "50")
        checkPoint("39", "40", "46")
        checkPoint("40", "41", "44")
        checkPoint("41", "42", "43")
        checkPoint("42", finalResult1="陆抗", finalResult2="诸葛亮")
        checkPoint("43", finalResult1="周瑜", finalResult2="羊祜")
        checkPoint("44", finalResult1="徐庶", nextP2="45")
        checkPoint("45", finalResult1="陆逊", finalResult2="鲁肃")
        checkPoint("46", "47", "48")
        checkPoint("47", finalResult1="张角", finalResult2="司马懿")
        checkPoint("48", finalResult1="杜预", nextP2="49")
        checkPoint("49", finalResult1="袁绍", finalResult2="庞统")
        checkPoint("50", "51", "57")
        checkPoint("51", "52", "54")
        checkPoint("52", "53", finalResult2="马忠")
        checkPoint("53", finalResult1="马岱", finalResult2="关平")
        checkPoint("54", "55", "56")
        checkPoint("55", finalResult1="黄盖", finalResult2="刘备")
        checkPoint("56", finalResult1="马腾", finalResult2="凌统")
        checkPoint("57", "58", "49")
        checkPoint("58", finalResult1="孟获", nextP2="59")
        checkPoint("59", finalResult1="孙权", finalResult2="满宠")
        checkPoint("60", "50", "61")
        checkPoint("61", "62", "66")
        checkPoint("62", "63", "65")
        checkPoint("63", finalResult1="周泰", nextP2="64")
        checkPoint("64", finalResult1="庞德", finalResult2="廖化")
        checkPoint("65", finalResult1="审配", finalResult2="郝昭")
        checkPoint("66", "67", "68")
        checkPoint("67", finalResult1="董卓", finalResult2="王平")
        checkPoint("68", finalResult1="夏侯霸", nextP2="69")
        checkPoint("69", finalResult1="乐进", finalResult2="张翼")
        checkPoint("70", "37", "71")
        checkPoint("71", "72", "92")
        checkPoint("72", "73", "83")
        checkPoint("73", "74", "78")
        checkPoint("74", "75", "76")
        checkPoint("75", finalResult1="田丰", finalResult2="沮授")
        checkPoint("76", "77", finalResult2="马良")
        checkPoint("77", finalResult1="马谡", finalResult2="荀彧")
        checkPoint("78", "79", "81")
        checkPoint("79", "80", finalResult2="法正")
        checkPoint("80", finalResult1="陈群", finalResult2="曹丕")
        checkPoint("81", finalResult1="郭嘉", nextP2="82")
        checkPoint("82", finalResult1="贾诩", finalResult2="陈宫")
        checkPoint("83", "84", "87")
        checkPoint("84", "85", "86")
        checkPoint("85", finalResult1="诸葛瑾", finalResult2="曹昂")
        checkPoint("86", finalResult1="孙乾", finalResult2="邓芝")
        checkPoint("87", "88", "90")
        checkPoint("88", "89", finalResult2="何进")
        checkPoint("89", finalResult1="刘璋", finalResult2="刘表")
        checkPoint("90", finalResult1="陶谦", nextP2="91")
        checkPoint("91", finalResult1="司马炎", finalResult2="张鲁")
        checkPoint("92", "83", "93")
        checkPoint("93", "94", "97")
        checkPoint("94", "95", "96")
        checkPoint("95", finalResult1="袁术", nextP2="87")
        checkPoint("96", "89", finalResult2="金旋")
        checkPoint("97", "98", "99")
        checkPoint("98", finalResult1="金旋", finalResult2="刘禅")
        checkPoint("99", "85", finalResult2="孔融")
mainGame()







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值