猫史档案馆


大富翁 字符串版(无需插件)

用户:李梓轩李梓轩查看:0 回复:8 评论:0 创建时间:2019-08-23T21:36:11


10000多行代码的巨作

可能有bug,请见谅

from time import sleep
from random import randint
class PeaPle:
    def __init__(self, name, I):
        self.name = name
        self.money = 12000
        self.something = []
        self.on = "v1"
        self.I = I
        self.stop = 0
        self.hospital_day = 0
        self.bleak_room_day = 0
        self.cut_boom = 0
        self.cut_self = 0
        self.room = []

    def run(self):
        on = self.on
        input("按回车投掷喵")
        r = randint(1, 6)
        print("点数为%s" % r)
        if len(on) == 2:
            mn = int(on[1])
        else:
            f = int(on[1])
            m = int(on[2])
            mn = 10 * f + m
        qp = mn + r
        if qp > 35:
            qp -= 35
            print("经过起点,送1000元")
            self.give_money(1000)
        self.on = "v%s" % qp
        return "v%s" % qp, on

    def com_run(self):
        on = self.on
        sleep(0.5)
        print("%s开始投掷喵" % self.name)
        r = randint(1, 6)
        sleep(1)
        print("点数为%s" % r)
        if len(on) == 2:
            mn = int(on[1])
        else:
            f = int(on[1])
            m = int(on[2])
            mn = 10 * f + m
        qp = mn + r
        if qp > 35:
            qp -= 35
            print("经过起点,送1000元")
            self.give_money(1000)
        self.on = "v%s" % qp
        return "v%s" % qp, on

    def buy(self, money):
        sleep(1)
        if money <= self.money:
            self.money -= money
        else:
            if self.money - money <= 50:
                print("钱不够了!")
                return "No_money"
            else:
                print("没有钱了!")
                return "No_money"
        print("""┌────────────────┐
│        %3s支出了%4s元           │
└────────────────┘""" % (self.name, money))
        print("%s还剩%s元" % (self.name, self.money))
        return " "

    def give_money(self, money):
        sleep(1)
        self.money += money
        print("""┌────────────────┐
│        %3s收入了%4s元           │
└────────────────┘""" % (self.name, money))
        print("%s还有%s元" % (self.name, self.money))

    def house(self, his_name, build, on):
        p = {"v1": "  ", "v2": "b1", "v3": "b2", "v4": "b3", "v5": "b4", "v6": "b5",
             "v7": "b6", "v8": "b7", "v9": "b8", "v10": "b9", "v11": "b10", "v12": "b11",
             "v13": "b12", "v14": "b13", "v15": "b14", "v16": "b15", "v17": "b16", "v18": "b17",
             "v19": "b18", "v20": "b19", "v21": "b20", "v22": "b21", "v23": "b22", "v24": "  ",
             "v25": "b23", "v26": "b24", "v27": "b25", "v28": "b26", "v29": "  ", "v30": "b27",
             "v31": "b28", "v32": "b29", "v33": "  ", "v34": "  ", "v35": "b30"}
        # 判断房子或空地是不是自己的
        if self.name != his_name:
            if build == "#":
                bu = "空地"
                mon = 200
            elif build == "^":
                bu = "小屋子"
                mon = 600
            elif build == "&":
                bu = "洋楼"
                mon = 1000
            elif build == "@":
                bu = "庭院别墅"
                mon = 2500
            else:
                if p[on] == "  ":
                    return 0, 0, 0
                print("这是一块荒地")
                print("您有%s元" % self.money)
                dm = input("您要买下它吗?(1000元) 1.要 2.下次再说")
                if dm == "1":
                    r = self.buy(1000)
                    if r == " ":
                        self.room.append(p[on])
                        return self.name, p[on], "#"
                    else:
                        return 0, p[on], 0
                else:
                    return 0, p[on], 0
            sleep(2)
            print("走到了%s的%s" % (his_name, bu))
            print("需纳过路费%s元" % mon)
            r = self.buy(mon)
            if r == " ":
                return his_name, mon, " "
            else:
                return "破产", " "," "
        else:
            print("这是自己的%s" % build)
            if build != " @":
                q = input("要升级它吗(升级一次需1000元,且只能升级一次)?1.是 2.否")
                if q == "1":
                    r = self.buy(1000)
                    if r == " ":
                        if build == "#":
                            print("成功将土地升级为小房子")
                            return self.name, p[on], "^"
                        elif build == "^":
                            print("成功将小房子升级为洋楼")
                            return self.name, p[on], "&"
                        else:
                            print("成功将洋楼升级为庭院别墅")
                            return self.name, p[on], "@"
                    else:
                        return self.name, p[on], build
                else:
                    return self.name, p[on], build
            else:
                print("已升到满级")
                return self.name, p[on], build

    def com_house(self, his_name, build, on):
        p = {"v1": "  ", "v2": "b1", "v3": "b2", "v4": "b3", "v5": "b4", "v6": "b5",
             "v7": "b6", "v8": "b7", "v9": "b8", "v10": "b9", "v11": "b10", "v12": "b11",
             "v13": "b12", "v14": "b13", "v15": "b14", "v16": "b15", "v17": "b16", "v18": "b17",
             "v19": "b18", "v20": "b19", "v21": "b20", "v22": "b21", "v23": "b22", "v24": "  ",
             "v25": "b23", "v26": "b24", "v27": "b25", "v28": "b26", "v29": "  ", "v30": "b27",
             "v31": "b28", "v32": "b29", "v33": "  ", "v34": "  ", "v35": "b30"}
        # 判断房子或空地是不是自己的
        if self.name != his_name:
            if build == "#":
                bu = "空地"
                mon = 200
            elif build == "^":
                bu = "小屋子"
                mon = 600
            elif build == "&":
                bu = "洋楼"
                mon = 1000
            elif build == "@":
                bu = "庭院别墅"
                mon = 2500
            else:
                if p[on] == "  ":
                    return 0, 0, 0
                dm = str(randint(1, 2))
                if dm == "1":
                    r = self.buy(1000)
                    if r == " ":
                        self.room.append(p[on])
                        print("%s买了一块地" % self.name)
                        return self.name, p[on], "#"
                    else:
                        return 0, p[on], 0
                else:
                    return 0, p[on], 0
            sleep(2)
            print("走到了%s的%s" % (his_name, bu))
            print("需纳过路费%s元" % mon)
            r = self.buy(mon)
            if r == " ":
                return his_name, mon, " "
            else:
                return "破产", " ", " "
        elif self.name == his_name:
            if build != 0:
                if build != "@":
                    q = str(randint(1, 2))
                    if q == "1":
                        r = self.buy(1000)
                        if r == " ":
                            if build == "#":
                                print("%s将土地升级为小房子" % self.name)
                                return self.name, p[on], "^"
                            elif build == "^":
                                print("%s将小房子升级为洋楼" % self.name)
                                return self.name, p[on], "&"
                            else:
                                print("%s将洋楼升级为庭院别墅" % self.name)
                                return self.name, p[on], "@"
                        else:
                            return self.name, p[on], build
                    else:
                        return (self.name, p[on], build)
                else:
                    return (self.name, p[on], build)

    def supermarket(self):
        print("道具超市")
        u = input("""欢迎来到超市,我们这里有
            1.喵 【300元】
            2.出狱卡 【400元】
            3.反喵器(只可用3天)【600元】
        请问你要什么呢?(填数字,按回车直接退出)""")
        if u == "1":
            r = self.buy(300)
            if r == " ":
                self.something.append("喵")
                sleep(1)
                print("支付成功!")
            else:
                return
        elif u == "2":
            r = self.buy(400)
            if r == " ":
                sleep(1)
                self.something.append("出狱卡")
                print("支付成功!")
        elif u == "3":
            r = self.buy(600)
            if r == " ":
                sleep(1)
                self.something.append("反喵器")
                print("支付成功!")
        else:
            return

    def com_supermarket(self):
        print("%s进入了道具超市" % self.name)
        sleep(2)
        h = randint(1, 50)
        if h <= 6:
            u = "1"
        elif h > 6 and h <= 10:
            u = "2"
        elif h > 10 and h <= 15:
            u = "3"
        else:
            u = 0
        if u == "1":
            r = self.buy(30)
            if r == " ":
                self.something.append("喵")
                print("%s买了喵" % self.name)
        elif u == "2":
            r = self.buy(40)
            if r == " ":
                self.something.append("出狱卡")
                print("%s买了出狱卡" % self.name)
        elif u == "3":
            r = self.buy(60)
            if r == " ":
                self.something.append("反喵器")
                print("%s买了反喵器" % self.name)
        else:
            return

    def go_out_bleak_room(self):
        if "出狱卡" not in self.something:
            return
        print("出狱卡让你自动出狱")
        self.bleak_room_day = 0
        self.something.remove("出狱卡")

    def bleak_room(self,day):
        print("%s进入了监狱" % self.name)
        print("将要在里面呆%s天" % day)
        self.bleak_room_day = day
        now = self.on
        self.on = "v33"
        tu = "v33"
        self.go_out_bleak_room()
        if a[tu] == 0:
            a[tu] = ming.I
        else:
            a[tu] = ":"
        if I.on != now and mei.on != now and now != 喵.on:
            a[now] = 0
        else:
            if I.on == now and (now != mei.on and 喵.on):
                a[now] = "I"
            elif mei.on == now and (now != I.on and 喵.on):
                a[now] = "~"
            elif now == 喵.on and (now != I.on and mei.on):
                a[now] = "G"
            else:
                a[now] = ":"

    def hospital(self, money):
        print("%s进入了医院" % self.name)
        print("将要住院3天")
        self.hospital_day = 3
        r = self.buy(money)
        if r == "No_money":
            print("由于付不起医药费,被迫破产")
            self.cut_self = 1
            self.money = 0

    def hospital_move(self):
        return "v34", self.on

    def live_card(self):
        print("您走到了命运卡的地方")
        input("按回车抽你的命运")
        card = [["在著名景点随地吐痰,罚50元!", 50], ["在广场中央游泳,喵100元!", 100],
                ["您在路边捡到500元。", 500],["出门被狗咬,花600元去医院打了狂犬疫苗", 600],
                ["被“高空抛物”砸到了头,需花200元住院三天", 200], ["获得喵一枚", "喵"],
                ["在银行抢劫,入牢5天!", 5], ["打架斗殴,在监狱拘留1天!", 1],
                ["捡到100块", 100], ["捡到50块", 50],
                "中喵5000元", "您在五星级酒店住了一晚,消费了3000元。"]
        w = randint(1, 50)
        if w >= 45:
            a = randint(10, 11)
            card[a]
            print(card[a])
            if a == 10:
                self.give_money(5000)
            else:
                r = self.buy(3000)
                if r == " ":
                    pass
                else:
                    print("您破产了")
                    self.cut_self = 1
        else:
            a = randint(0, 9)
            card[a]
            b = card[a]
            print(b[0])
            if a == 0 or a == 1 or a == 3 or a == 4:
                if a == 3 or a == 4:
                    self.hospital(b[1])
                else:
                    r = self.buy(b[1])
                    if r == " ":
                        pass
                    else:
                        print("您破产了")
                        self.cut_self = 1
            elif a == 2 or a == 8 or a == 9:
                self.give_money(b[1])
            else:
                if a == 6 or a == 7:
                    self.bleak_room(b[1])
                else:
                    self.something.append(b[1])

    def com_live_card(self):
        print("%s走到了命运卡的地方" % self.name)
        sleep(2)
        card = [["在著名景点随地吐痰,罚50元!", 50], ["在广场中央游泳,喵100元!", 100],
                ["您在路边捡到500元。", 500], ["出门被狗咬,花600元去医院打了狂犬疫苗", 600],
                ["被“高空抛物”砸到了头,需花200元住院三天", 200], ["获得喵一枚", "喵"],
                ["在银行抢劫,入牢5天!", 5], ["打架斗殴,在监狱拘留1天!", 1],
                ["捡到100块", 100], ["捡到50块", 50],
                "中喵5000元", "您在五星级酒店住了一晚,消费了3000元。"]
        w = randint(1, 50)
        if w >= 45:
            a = randint(10, 11)
            card[a]
            print(card[a])
            if a == 10:
                self.give_money(5000)
            else:
                r = self.buy(3000)
                if r == " ":
                    pass
                else:
                    print("%s破产了" % self.name)
                    self.cut_self = 1
        else:
            a = randint(0, 9)
            card[a]
            b = card[a]
            print(b[0])
            if a == 0 or a == 1 or a == 3 or a == 4:
                if a == 3 or a == 4:
                    self.hospital(b[1])
                else:
                    r = self.buy(b[1])
                    if r == " ":
                        pass
                    else:
                        print("%s破产了" % self.name)
                        self.cut_self = 1
            elif a == 2 or a == 8 or a == 9:
                self.give_money(b[1])
            else:
                if a == 6 or a == 7:
                    self.bleak_room(b[1])
                else:
                    self.something.append(b[1])
        sleep(2)

    def bag(self):
        print("打开道具包")
        if self.something == []:
            print("您还没有任何道具")
            sleep(2)
            return
        else:
            print("您有%s" % self.something)
            i = int(input("您想用哪种道具?(用数字选择,按“0”退出)"))
            if i == 0:
                return
            while i > len(self.something):
                print("没有此项,重新选择")
                i = int(input("您想用哪种道具?(用数字选择)"))
            i -= 1
            lis = self.something[i]
            if lis == "喵":
                boom()
            elif lis == "出狱卡":
                print("只能在入狱时自动使用")
            else:
                print("反喵器为您护航3天")
                self.cut_boom = 3

    def com_bag(self):
        print("%s打开了道具包" % self.name)
        if self.something == []:
            return
        else:
            t = len(self.something)
            i = randint(0, t)
            if i == 0:
                return
            i -= 1
            lis = self.something[i]
            if lis == "喵":
                com_boom(self.name, self.I)
            elif lis == "出狱卡":
                pass
            else:
                print("%s打开了反喵器" % self.name)
                self.cut_boom = 3

# 位置
a = {"v1": ":", "v2": 0, "v3": 0, "v4": 0, "v5": 0, "v6": 0,
     "v7": 0, "v8": 0, "v9": 0, "v10": 0, "v11": 0, "v12": 0,
     "v13": 0, "v14": 0, "v15": 0, "v16": 0, "v17": 0, "v18": 0,
     "v19": 0, "v20": 0, "v21": 0, "v22": 0, "v23": 0, "v24": 0,
     "v25": 0, "v26": 0, "v27": 0, "v28": 0, "v29": 0, "v30": 0,
     "v31": 0, "v32": 0, "v33": 0, "v34": 0, "v35": 0}
# 建筑
b = {"b1": 0, "b2": 0, "b3": 0, "b4": 0, "b5": 0, "b6": 0,
     "b7": 0, "b8": 0, "b9": 0, "b10": 0, "b11": 0, "b12": 0,
     "b13": 0, "b14": 0, "b15": 0, "b16": 0, "b17": 0, "b18": 0,
     "b19": 0, "b20": 0, "b21": 0, "b22": 0, "b23": 0, "b24": 0,
     "b25": 0, "b26": 0, "b27": 0, "b28": 0, "b29": 0, "b30": 0}
# 建筑主人
c = {"b1": 0, "b2": 0, "b3": 0, "b4": 0, "b5": 0, "b6": 0,
     "b7": 0, "b8": 0, "b9": 0, "b10": 0, "b11": 0, "b12": 0,
     "b13": 0, "b14": 0, "b15": 0, "b16": 0, "b17": 0, "b18": 0,
     "b19": 0, "b20": 0, "b21": 0, "b22": 0, "b23": 0, "b24": 0,
     "b25": 0, "b26": 0, "b27": 0, "b28": 0, "b29": 0, "b30": 0}
# 建筑位置
d = {"v1": "  ", "v2": "b1", "v3": "b2", "v4": "b3", "v5": "b4", "v6": "b5",
    "v7": "b6", "v8": "b7", "v9": "b8", "v10": "b9", "v11": "b10", "v12": "b11",
    "v13": "b12", "v14": "b13", "v15": "b14", "v16": "b15", "v17": "b16", "v18": "b17",
    "v19": "b18", "v20": "b19", "v21": "b20", "v22": "b21", "v23": "b22", "v24": "  ",
    "v25": "b23", "v26": "b24", "v27": "b25", "v28": "b26", "v29": "  ", "v30": "b27",
    "v31": "b28", "v32": "b29", "v33": "  ", "v34": "  ", "v35": "b30"}
def notzero(s):
    return s if s != 0 else '  '

def word():

    print("""┌停车场┬───┬───┬───┬───┬─命运卡─┬───┬───┬───┬─监狱─┐
│   %s    ┆   %s%s  ┊   %s%s  ┊   %s%s  ┊   %s%s  ┇      %s       ┇   %s%s  ┊   %s%s  ┊   %s%s  ┆     %s     │
├┄┄┄┼───┴───┴───┴───┴─────┴───┴───┴───┼┄┄┄┄┤
│         │┌─── ┬ ───┐┌─── ┬ ───┐┌─── ┬ ───┐            │hospital│
│  %s%s   ││   %s%s   ┊    %s%s  ││  %s %s   ┊    %s%s  ││  %s %s   ┊    %s%s  │            │     %s     │
├┈┈┈┤├ ┈┈┈┼┈┈┈ ┤├ ┈┈┈┼┈┈┈ ┤├ ┈┈┈┼┈┈┈ ┤            ├┄┄┄┄┤
│  %s%s   ││    %s%s  │    %s%s  ││  %s %s   │    %s%s  ││  %s %s   │    %s%s   │            │    %s %s   │
├┈┈┈  ┬ ┈┈┈ ┼ ┈┈┈  ┬ ┈┈┈ ┼ ┈┈┈  ┬ ┈┈┈ ┼ ┈┈┈┼────┼┄┄┄┄┤
│  %s%s     ┊    %s%s   │    %s %s   ┊  %s %s    │    %s %s   ┊  %s  %s   │    %s%s  ┆    %s%s    ┆     %s     │
└───  ┴ ─── ┴ ───  ┴ ─── ┴ ───  ┴ ─── ┴ ───┴────┴─开始─┘""" % (notzero(a["v24"]), notzero(a["v25"]),
                                                         notzero(b["b23"]), notzero(a["v26"]),
                                                         notzero(b["b24"]), notzero(a["v27"]),
                                                         notzero(b["b25"]), notzero(a["v28"]),
                                                         notzero(b["b26"]), notzero(a["v29"]),
                                                         notzero(a["v30"]), notzero(b["b27"]),
                                                         notzero(a["v31"]), notzero(b["b28"]),
                                                         notzero(a["v32"]), notzero(b["b29"]),
                                                         notzero(a["v33"]), notzero(b["b22"]),
                                                         notzero(a["v23"]), notzero(b["b17"]),
                                                         notzero(a["v18"]), notzero(a["v17"]),
                                                         notzero(b["b16"]), notzero(b["b11"]),
                                                         notzero(a["v12"]), notzero(a["v11"]),
                                                         notzero(b["b10"]), notzero(b["b5"]),
                                                         notzero(a["v6"]), notzero(a["v5"]),
                                                         notzero(b["b4"]), notzero(a["v34"]),
                                                         notzero(b["b21"]), notzero(a["v22"]),
                                                         notzero(a["v19"]), notzero(b["b18"]),
                                                         notzero(a["v16"]), notzero(b["b15"]),
                                                         notzero(b["b12"]), notzero(a["v13"]),
                                                         notzero(a["v10"]), notzero(b["b9"]),
                                                         notzero(b["b6"]), notzero(a["v7"]),
                                                         notzero(a["v4"]), notzero(b["b3"]),
                                                         notzero(a["v35"]), notzero(b["b30"]),
                                                         notzero(b["b20"]), notzero(a["v21"]),
                                                         notzero(a["v20"]), notzero(b["b19"]),
                                                         notzero(a["v15"]), notzero(b["b14"]),
                                                         notzero(b["b13"]), notzero(a["v14"]),
                                                         notzero(a["v9"]), notzero(b["b8"]),
                                                         notzero(b["b7"]), notzero(a["v8"]),
                                                         notzero(a["v3"]), notzero(b["b2"]),
                                                         notzero(a["v2"]), notzero(b["b1"]),
                                                         notzero(a["v1"])))

I = PeaPle("李力利", "I")
mei = PeaPle("小美", "~")
ming = PeaPle("小明", "X")
喵 = PeaPle("小强", "G")
ad = {"李力利": I, "小美": mei, "小明": ming, "小强": 喵}

def I_go():
    if I.stop <= 0 and I.hospital_day <= 0 and I.bleak_room_day <= 0:
        tu, now = I.run()
        if a[tu] == 0:
            a[tu] = I.I
        else:
            a[tu] = ":"
        if now != mei.on and now != ming.on and now != 喵.on:
            a[now] = 0

        else:
            if now == mei.on and (now != ming.on and 喵.on):
                a[now] = "~"
            elif now == ming.on and (now != 喵.on and mei.on):
                a[now] = "X"
            elif now == 喵.on and (now != mei.on and ming.on):
                a[now] = "G"
            else:
                a[now] = ":"
        word()
        if tu == "v24":
            print("您来到了停车场")
            print("要在里面休息一天(嘿嘿嘿!)")
            I.stop = 1
        elif tu == "v29":
            I.live_card()
            return
        elif tu == "v33":
            I.bleak_room(1)
            return
        elif tu == "v34":
            print("您来到了医院")
            print("没有什么可操作的")
        elif tu == "v1":
            print("没有什么可操作的")
        else:
            build_name, build_on, build = I.house(c[d[I.on]], b[d[I.on]], I.on)
            if build != " ":
                c[build_on] = build_name
                b[build_on] = build
            elif build_on != " ":
                ad[build_name].give_money(build_on)
            elif build_name != " ":
                print("您破产了!!!")
                I.money = 0
                I.cut_self = 1
                return
            else:
                print("没有什么可操作的")
        ini = input("您还要进行什么操作?1.去逛一下超市 2.打开道具包(按“0”取消操作)")
        if ini == "1":
            I.supermarket()
        elif ini == "2":
            I.bag()
        else:
            pass
    else:
        if I.hospital_day != 0:
            if I.hospital_day == 3:
                tu, now = I.hospital_move()
                if a[tu] == 0:
                    a[tu] = I.I
                else:
                    a[tu] = ":"
                if now != mei.on and now != ming.on and now != 喵.on:
                    a[now] = 0

                else:
                    if now == mei.on and (now != ming.on and 喵.on):
                        a[now] = "~"
                    elif now == ming.on and (now != 喵.on and mei.on):
                        a[now] = "X"
                    elif now == 喵.on and (now != mei.on and ming.on):
                        a[now] = "G"
                    else:
                        a[now] = ":"

            print("您在医院里,您还有%s天可出院" % I.hospital_day)
            I.hospital_day -= 1
        if I.stop == 1:
            print("明天您就可以继续")
            I.stop -= 1
        if I.bleak_room_day != 0:
            print("还有%s天您才可以自由" % I.bleak_room_day)
            I.bleak_room_day -= 1

def mei_go():
    if mei.stop == 0 and mei.hospital_day == 0 and mei.bleak_room_day == 0:
        tu, now = mei.com_run()
        if a[tu] == 0:
            a[tu] = mei.I
        else:
            a[tu] = ":"
        if I.on != now and now != ming.on and now != 喵.on:
            a[now] = 0
        else:
            if I.on == now and (now != ming.on and 喵.on)  :
                a[now] = "I"
            elif now == ming.on and (now != mei.on and 喵.on):
                a[now] = "X"
            elif now == 喵.on and (now != I.on and ming.on):
                a[now] = "G"
            else:
                a[now] = ":"
        word()
        if tu == "v24":
            sleep(0.5)
            print("小美来到了停车场")
            print("要在里面休息一天")
            mei.stop = 1
        elif tu == "v29":
            mei.com_live_card()
            return
        elif tu == "v33":
            mei.bleak_room(1)
            return
        elif tu == "v34":
            pass
        elif tu == "v1":
            pass
        else:
            build_name, build_on, build = mei.com_house(c[d[mei.on]], b[d[mei.on]], mei.on)
            if build != " ":
                c[build_on] = build_name
                b[build_on] = build
            elif build_on != " ":
                ad[build_name].give_money(build_on)
            elif build_name != " ":
                print("小美破产了!!!")
                mei.cut_self = 1
                mei.money = 0
                return
            else:
                pass
        ini = randint(0, 2)
        if ini == 1:
            mei.com_supermarket()
        elif ini == 2:
            mei.com_bag()
        else:
            pass
    else:
        if mei.hospital_day != 0:
            if mei.hospital_day == 3:
                tu, now = mei.hospital_move()
                if a[tu] == 0:
                    a[tu] = mei.I
                else:
                    a[tu] = ":"
                if I.on != now and now != ming.on and now != 喵.on:
                    a[now] = 0
                else:
                    if I.on == now and (now != ming.on and 喵.on):
                        a[now] = "I"
                    elif now == ming.on and (now != mei.on and 喵.on):
                        a[now] = "X"
                    elif now == 喵.on and (now != I.on and ming.on):
                        a[now] = "G"
                    else:
                        a[now] = " :"
            print("小美还有%s天可出院" % mei.hospital_day)
            mei.hospital_day -= 1
        if mei.stop == 1:
            print("小美在停车场")
            mei.stop -= 1
        if mei.bleak_room_day != 0:
            print("还有%s天小美出狱" % mei.bleak_room_day)
            mei.bleak_room_day -= 1

def ming_go():
    if ming.stop == 0 and ming.hospital_day == 0 and ming.bleak_room_day == 0:
        tu, now = ming.com_run()
        if a[tu] == 0:
            a[tu] = ming.I
        else:
            a[tu] = ":"
        if I.on != now and mei.on != now and now != 喵.on:
            a[now] = 0
        else:
            if I.on == now and (now != mei.on and 喵.on):
                a[now] = "I"
            elif mei.on == now and (now != I.on and 喵.on):
                a[now] = "~"
            elif now == 喵.on and (now != I.on and mei.on):
                a[now] = " G"
            else:
                a[now] = ":"
        word()
        if tu == "v24":
            sleep(0.5)
            print("小明来到了停车场")
            print("要在里面休息一天")
            ming.stop = 1
        elif tu == "v29":
            ming.com_live_card()
            return
        elif tu == "v33":
            ming.bleak_room(1)
            return
        elif tu == "v34":
            pass
        elif tu == "v1":
            pass
        else:
            build_name, build_on, build = ming.com_house(c[d[ming.on]], b[d[ming.on]], ming.on)
            if build != " ":
                c[build_on] = build_name
                b[build_on] = build
            elif build_on != " ":
                ad[build_name].give_money(build_on)
            elif build_name != " ":
                print("小明破产了!!!")
                ming.cut_self = 1
                ming.money = 0
                return
            else:
                pass
        ini = randint(0, 2)
        if ini == 1:
            ming.com_supermarket()
        elif ini == 2:
            ming.com_bag()
        else:
            pass
    else:
        if ming.hospital_day != 0:
            if ming.hospital_day == 3:
                tu, now = ming.hospital_move()
                if a[tu] == 0:
                    a[tu] = ming.I
                else:
                    a[tu] = ":"
                if I.on != now and mei.on != now and now != 喵.on:
                    a[now] = 0
                else:
                    if I.on == now and (now != mei.on and 喵.on):
                        a[now] = "I"
                    elif mei.on == now and (now != I.on and 喵.on):
                        a[now] = "~"
                    elif now == 喵.on and (now != I.on and mei.on):
                        a[now] = "G"
                    else:
                        a[now] = ":"

            print("小明还有%s天可出院" % ming.hospital_day)
            ming.hospital_day -= 1
        if ming.stop == 1:
            print("小明在停车场")
            ming.stop -= 1
        if ming.bleak_room_day != 0:
            print("还有%s天小明出狱" % ming.bleak_room_day)
            ming.bleak_room_day -= 1

def 喵_go():
    if 喵.stop == 0 and 喵.hospital_day == 0 and 喵.bleak_room_day == 0:
        tu, now = 喵.com_run()
        if a[tu] == 0:
            a[tu] = 喵.I
        else:
            a[tu] = ":"
        if I.on != now and mei.on != now and ming.on != now:
            a[now] = 0
        else:
            if I.on == now and (now != mei.on and ming.on):
                a[now] = "I"
            elif mei.on == now and (now != I.on and ming.on):
                a[now] = "~"
            elif ming.on == now and (now != I.on and mei.on):
                a[now] = "X"
            else:
                a[now] = ":"
        word()
        if tu == "v24":
            sleep(0.5)
            print("小强来到了停车场")
            print("要在里面休息一天")
            喵.stop = 1
        elif tu == "v29":
            喵.com_live_card()
            return
        elif tu == "v33":
            喵.bleak_room(1)
            return
        elif tu == "v34":
            pass
        elif tu == "v1":
            pass
        else:
            build_name, build_on, build = 喵.com_house(c[d[喵.on]], b[d[喵.on]], 喵.on)
            if build != " ":
                c[build_on] = build_name
                b[build_on] = build
            elif build_on != " ":
                ad[build_name].give_money(build_on)
            elif build_name != " ":
                print("小强破产了!!!")
                喵.cut_self = 1
                喵.money = 0
                return
            else:
                pass
        ini = randint(0, 2)
        if ini == 1:
            喵.com_supermarket()
        elif ini == 2:
            喵.com_bag()
        else:
            pass
    else:
        if 喵.hospital_day != 0:
            if 喵.hospital_day == 3:
                tu, now = 喵.hospital_move()
                if a[tu] == 0:
                    a[tu] = 喵.I
                else:
                    a[tu] = ":"
                if I.on != now and mei.on != now and ming.on != now:
                    a[now] = 0
                else:
                    if I.on == now and (now != mei.on and ming.on):
                        a[now] = "I"
                    elif mei.on == now and (now != I.on and ming.on):
                        a[now] = "~"
                    elif ming.on == now and (now != I.on and mei.on):
                        a[now] = "X"
                    else:
                        a[now] = ":"
            print("小强还有%s天可出院" % 喵.hospital_day)
            喵.hospital_day -= 1
        if 喵.stop == 1:
            print("小强在停车场")
            喵.stop -= 1
        if 喵.bleak_room_day != 0:
            print("还有%s天小强出狱" % 喵.bleak_room_day)
            喵.bleak_room_day -= 1

def boom():
    yu = input("是否要使用喵?1.是 2.否")
    if yu == "1":
        hom = input("您要轰炸谁?1.小美 2.小明 3.小强")
        if hom == "1":
            if mei.cut_boom == 0:
                if mei.on == "v33":
                    print("小美在监狱里,无法轰炸")
                    return
                mei.hospital(400)
                print("轰~~~~~~~~~~~~~~~~~~")
                I.something.remove("喵")
            else:
                print("轰~~~~~~~~~~~~~~~~~~")
                I.something.remove("喵")
                print("轰炸失败,小美有反喵器")
        elif hom == "2":
            if ming.cut_boom == 0:
                if ming.on == "v33":
                    print("小明在监狱里,无法轰炸")
                    return
                ming.hospital(400)
                print("轰~~~~~~~~~~~~~~~~~~")
                I.something.remove("喵")
            else:
                print("轰~~~~~~~~~~~~~~~~~~")
                I.something.remove("喵")
                print("轰炸失败,小明有反喵器")
        else:
            if 喵.cut_boom == 0:
                if 喵.on == "v33":
                    print("小强在监狱里,无法轰炸")
                    return
                喵.hospital(400)
                print("轰~~~~~~~~~~~~~~~~~~")
                I.something.remove("喵")
            else:
                print("轰~~~~~~~~~~~~~~~~~~")
                I.something.remove("喵")
                print("轰炸失败,小强有反喵器")
    else:
        return

def com_boom(name, him_self):
    yu = randint(1,4)
    if yu == "1":
        hom = str(randint(1, 4))
        if hom == "1":
            if name == "小美":
                return
            print("%s想使用喵轰小美" % name)
            if mei.cut_boom == 0:
                if mei.on == "v33":
                    return
                mei.hospital(400)
                print("轰~~~~~~~~~~~~~~~~~~")
                him_self.something.remove("喵")
            else:
                print("轰~~~~~~~~~~~~~~~~~~")
                him_self.something.remove("喵")
                print("轰炸失败,小美有反喵器")
        elif hom == "2":
            if name == "小明":
                return
            print("%s想使用喵轰小明" % name)
            if ming.cut_boom == 0:
                if ming.on == "v33":
                    print("小明在监狱里,无法轰炸")
                    return
                ming.hospital(400)
                print("轰~~~~~~~~~~~~~~~~~~")
                him_self.something.remove("喵")
            else:
                print("轰~~~~~~~~~~~~~~~~~~")
                him_self.something.remove("喵")
                print("轰炸失败,小明有反喵器")
        elif hom == "3":
            if name == "小强":
                return
            print("%s想使用喵轰小强" % name)
            if 喵.cut_boom == 0:
                if 喵.on == "v33":
                    print("小强在监狱里,无法轰炸")
                    return
                喵.hospital(400)
                print("轰~~~~~~~~~~~~~~~~~~")
                him_self.something.remove("喵")
            else:
                print("轰~~~~~~~~~~~~~~~~~~")
                him_self.something.remove("喵")
                print("轰炸失败,小强有反喵器")
        else:
            if I.cut_boom == 0:
                if I.on == "v33":
                    print("李力利在监狱里,无法轰炸")
                    return
                print("%s想使用喵轰李力利" % name)
                I.hospital(400)
                print("轰~~~~~~~~~~~~~~~~~~")
                him_self.something.remove("喵")
            else:
                print("轰~~~~~~~~~~~~~~~~~~")
                him_self.something.remove("喵")
                print("轰炸失败,李力利有反喵器")
    else:
        return

print("游戏开始!!!")
uo = 1
win = 0
while True:
    if win == 3:
        if I.on != 0:
            print("李力利赢了!!!")
        elif mei.on != 0:
            print("小美赢了!!!")
        elif ming.on != 0:
            print("小明赢了!!!")
        else:
            print("小强赢了!!!")
        break
    print("第%s天" % uo)
    uo += 1
    print("李力利有%s元" % I.money)
    print("小美有%s元" % mei.money)
    print("小明有%s元" % ming.money)
    print("小强有%s元" % 喵.money)
    if I.cut_self == 0:
        if win == 3:
            if I.on != 0:
                print("李力利赢了!!!")
            elif mei.on != 0:
                print("小美赢了!!!")
            elif ming.on != 0:
                print("小明赢了!!!")
            else:
                print("小强赢了!!!")
            break
        I_go()
    else:
        if I.money != 0:
            I.money = 0
        if I.on != 0:
            now = I.on
            if now != mei.on and now != ming.on and now != 喵.on:
                a[now] = 0
            else:
                if now == mei.on and (now != ming.on and 喵.on):
                    a[now] = "~"
                elif now == ming.on and (now != 喵.on and mei.on):
                    a[now] = "X"
                elif now == 喵.on and (now != mei.on and ming.on):
                    a[now] = "G"
                else:
                    a[now] = ":"
            I.on = 0
            win += 1
        if I.room != 0:
            for ro in I.room:
                c[ro] = 0
                b[ro] = 0
            I.room = 0
    if mei.cut_self == 0:
        if win == 3:
            if I.on != 0:
                print("李力利赢了!!!")
            elif mei.on != 0:
                print("小美赢了!!!")
            elif ming.on != 0:
                print("小明赢了!!!")
            else:
                print("小强赢了!!!")
            break
        mei_go()
    else:
        if mei.money != 0:
            mei.money = 0
        if mei.on != 0:
            now = mei.on
            if I.on != now and now != ming.on and now != 喵.on:
                a[now] = 0
            else:
                if I.on == now and (now != ming.on and 喵.on):
                    a[now] = "I"
                elif now == ming.on and (now != mei.on and 喵.on):
                    a[now] = "X"
                elif now == 喵.on and (now != I.on and ming.on):
                    a[now] = "G"
                else:
                    a[now] = ":"
            mei.on = 0
            win += 1
        if mei.room != 0:
            for ro in mei.room:
                c[ro] = 0
                b[ro] = 0
            mei.room = 0
    if ming.cut_self == 0:
        if win == 3:
            if I.on != 0:
                print("李力利赢了!!!")
            elif mei.on != 0:
                print("小美赢了!!!")
            elif ming.on != 0:
                print("小明赢了!!!")
            else:
                print("小强赢了!!!")
            break
        ming_go()
    else:
        if ming.money != 0:
            ming.money = 0
        if ming.on != 0:
            now = ming.on
            if I.on != now and mei.on != now and now != 喵.on:
                a[now] = 0
            else:
                if I.on == now and (now != mei.on and 喵.on):
                    a[now] = "I"
                elif mei.on == now and (now != I.on and 喵.on):
                    a[now] = "~"
                elif now == 喵.on and (now != I.on and mei.on):
                    a[now] = "G"
                else:
                    a[now] = ":"
            ming.on = 0
            win += 1
        if ming.room != 0:
            for ro in ming.room:
                c[ro] = 0
                b[ro] = 0
            ming.room = 0
    if 喵.cut_self == 0:
        if win == 3:
            if I.on != 0:
                print("李力利赢了!!!")
            elif mei.on != 0:
                print("小美赢了!!!")
            elif ming.on != 0:
                print("小明赢了!!!")
            else:
                print("小强赢了!!!")
            break
        喵_go()
    else:
        if 喵.money != 0:
            喵.money = 0
        if 喵.on != 0:
            now = 喵.on
            if I.on != now and mei.on != now and ming.on != now:
                a[now] = 0
            else:
                if I.on == now and (now != mei.on and ming.on):
                    a[now] = "I"
                elif mei.on == now and (now != I.on and ming.on):
                    a[now] = "~"
                elif ming.on == now and (now != I.on and mei.on):
                    a[now] = "X"
                else:
                    a[now] = ":"
            喵.on = 0
            win += 1
            if 喵.room != 0:
                for ro in 喵.room:
                    c[ro] = 0
                    b[ro] = 0
                喵.room = 0

有兴趣的赶紧复制代码

效果图如下:(注:我用符号表示“人”和“地”,“I”是“李力利”,“X”是“小明”,“~”是小美,“G”是“小强”,“:”是多人在同一格,“#”,“^”,“&”和“@”分别是“土地”“小房子”“洋楼”和“庭院别墅”)

center_image

请指出代码不整洁的地方,谢谢!!!


回复

上一页1 页 / 共 1下一页
李梓轩李梓轩

再注:为节省地图空间,一块路线设计成“S”型,如下:

center_image

还有不明的地方请回帖提问

点赞0


评论


520669已退猫520669已退猫

不错,但是好像只有1000多行

点赞0


评论


东雪莲东雪莲

抱走啦~

点赞0


评论


TobylaiTobylai

不错,建议作者来个gui版本(会更好,比如可以显示图片)

点赞0


评论


__2567__2567

center_image

为什么会这样?

 

点赞1


评论


dounsm36dounsm36

6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666

点赞0


评论


李梓轩李梓轩

_2567,请在Python shell 中点击Options,有个Configure IDLE,点进去会看到一个界面

center_image

把字体和字体大小调节成和我一样就行了

点赞0


评论


李梓轩李梓轩

如果你认为改字体太麻烦了

请看看我改过的代码

链接如下:

https://shequ.codemao.cn/community/195769

点赞0


评论