鱼C论坛

 找回密码
 立即注册
查看: 2807|回复: 7

[原创] 交作业,lsp体验青春版

[复制链接]
发表于 2021-8-1 16:56:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 新人求上岸 于 2021-8-2 16:47 编辑
import easygui as eg    
import pickle
import random
#登录
def register():      
    def go():
        global start,instant_1
        while 1:
            msg = "登录中,请输入用户名和密码"
            title ="galgame"
            choices = ["用户名","密码"]
            des_1=eg.multpasswordbox(msg,title,choices)
            try:
                if user_account_password[des_1[0]] != des_1[1]:
                    des_2=eg.buttonbox("用户名或密码错误","galgame",["注册","返回"])
                    if des_2=="注册":
                        eg.msgbox("加载中....")
                        wait()
                        break
                    else:
                        continue
                else:
                    instant_1 =des_1[0]
                    start = True
                    break
            except KeyError:
                des_2=eg.buttonbox("用户名不存在","galgame",["注册","返回"])
                if des_2=="注册":
                    eg.msgbox("加载中....")
                    wait()
                    
                else:
                    continue


    def wait():
        while 1:
            msg = "注册中,请输入用户名和密码"
            title ="galgame"
            choices = ["用户名","密码"]
            des_1=eg.multpasswordbox(msg,title,choices)
            if des_1[0] in user_account_password:
                des_2=eg.buttonbox("用户名已存在","galgame",["登录","返回"])
                if des_2=="登录":
                    go()
                    break
                else:
                    continue
            else:
                user_account_password[des_1[0]]=des_1[1]
                break
    def cancel():
        while 1:
            msg = "请输入需要注销的用户名和密码"
            title ="galgame"
            choices = ["用户名","密码"]
            des_1=eg.multpasswordbox(msg,title,choices)
            try:
                if des_1[0]==des_1[1]:
                    user_account_password.pop(des_1[0])
                    break
                else:
                    eg.msgbox("输入的用户名或密码错误","galgame",ok_button="返回")
                    continue
            except KeyError:
                eg.msgbox("用户名不存在","galgame",ok_button="返回")
                continue
            
    def save():
        with open("user_account_password.pkl","wb") as pickle_file:
                pickle.dump(user_account_password,pickle_file)



    try:
        with open("user_account_password.pkl","rb") as pickle_file:
            user_account_password = pickle.load(pickle_file)
    except FileNotFoundError:
        with open("user_account_password.pkl","wb") as pickle_file:
            my_list ={}
            pickle.dump(my_list,pickle_file)
        with open("user_account_password.pkl","rb") as pickle_file:
            user_account_password = pickle.load(pickle_file)
    global start
    start =False
    while 1:
        msg="欢迎体验小游戏"
        title="galgame"
        choices = ["登录","注册","注销","退出"]
        decision = eg.buttonbox(msg,title,choices)
        if decision=="登录":
            go()
            save()
            break
        elif decision=="注册":
            wait()
            save()
            continue
        elif decision=="注销":
            cancel()
            save()
            continue
        else:
            print("感谢游玩")
            break
#=================================================


#存档
def cundang():
    while 1:
        global P,Protagonist_name
        try:
            with open("name-instant_1.pkl","rb") as file:
                my_list=pickle.load(file)
                Protagonist_name =my_list[instant_1]
            with open(Protagonist_name+".pkl","rb") as file:
                P =Protagonist()
                P.data =pickle.load(file)
                break
        except (FileNotFoundError,KeyError):
            Protagonist_name=eg.enterbox("初次登录,请输入昵称","galgame")
            try:
                with open("name-instant_1.pkl","rb") as file:
                    my_list =pickle.load(file)
                    my_list.setdefault(instant_1,name)
                with open("name-instant_1.pkl","wb") as file:
                    pickle.dump(my_list,file)
            except FileNotFoundError:
                with open("name-instant_1.pkl","wb") as file:
                    my_list ={}
                    my_list[instant_1]=Protagonist_name
                    pickle.dump(my_list,file)
            with open(Protagonist_name+".pkl","wb") as file:
                    P =Protagonist()
                    pickle.dump(P.data,file)

#基本定义
class Women:
    patience=0
    def look_at_her(self):
        print("看着我干嘛,我脸上有什么东西吗?")
    def hand(self):
        print("QAQ,嘻嘻~~")
        self.patience+=1
    def ass(self):
        print("变态,哼,不理你了")
        self.patience-=1
    def legs(self):
        print("0_0 ,你想干嘛?")


class Protagonist:
    data={"背包":{},"技能":{},"money":1000,"属性":{"HP":100,"Endurance":200,"IQ":105,"EQ":100,"strenth":15},"技能树":{}}
    def sleep(self):
        self.data["属性"]["HP"]=100
        self.data["属性"]["Endurance"]=100
#============================================

#人物内容
class Yangyan(Women):         
    patience=10
    def __init__(self):
        print("佯妍:啦啦啦啦啦,QAQ,老公,你终于来找我了")
    def hug(self):
        print("佯妍:不行...除非..你亲我一下")
        self.des_1=eg.buttonbox("亲..还是不亲呢?","galgame",["亲",'不亲'])
        if self.des_1=="亲":
            print("佯妍:嗯~ o* ̄▽ ̄*o")
            print("佯妍:芜湖,起飞")
            self.patience +=1
        else:
            print("佯妍:还嫌弃我?哼!!!")
            self.patience -=1
    def face(self):
        print("佯妍:不要,疼死了(推开你的手),哼~~(嘟起嘴)")
        self.patience +=1
    def make_love(self):
        if self.patience >=20:
            print("佯妍:好..好吧,我..我(脸红),能..不能")
            eg.msgbox("这时,你主动上前,抱住她,然后.....")
        else:
            print("佯妍:这样不好吧,姐姐们都在看着呢")
    def ass(self):
        if self.patience >= 15:
            print("佯妍:讨厌,你..你不许再这样做,不然..我叫晓瑜来打你!")
        else:
            super().ass()
        self.patience +=1
    def legs(self):
        if self.patience >=15:
            print("佯妍:不许摸!!!(脸红)")
        else:
            super().legs()
        self.patience +=1
    def play(self):
        print("佯妍:好呀好呀,要玩什么呢?")
        self.game_name=["猜拳","接诗词","不玩了"]
        des_1=eg.choicebox("玩什么呢?","galgame",self.game_name)
        if des_1=="猜拳":
            print("佯妍:石头剪刀...")
            while 1:
                secret=random.choice([1,2,3])#1为石头,2为剪刀,3为布
                des_2=eg.buttonbox("要出什么呢?","galgame",["石头","剪刀","布","不玩了"])
                if des_2=="石头":
                    self.patience +=1
                    if secret ==2:
                        print("佯妍:呜呜,你赢了")
                    elif secret ==3:
                        print("佯妍:哈哈哈,虽然你很优秀,但猜拳我可是王者!")
                    else:
                        print("佯妍:emmm,你运气好而已,再来")
                elif des_2=="剪刀":
                    self.patience +=1
                    if secret ==3:
                        print("佯妍:呜呜,你赢了")
                    elif secret ==1:
                        print("佯妍:哈哈哈,虽然你很优秀,但猜拳我可是王者!")
                    else:
                        print("佯妍:emmm,你运气好而已,再来")
                elif des_2=="布":
                    self.patience +=1
                    if secret ==1:
                        print("佯妍:呜呜,你赢了")
                    elif secret ==2:
                        print("佯妍:哈哈哈,虽然你很优秀,但猜拳我可是王者!")
                    else:
                        print("佯妍:emmm,你运气好而已,再来")
                else:
                    print("佯妍:~好吧~")
                    break
        elif des_1=="接诗词":
            print("嗯~~,小心一点哦")
            poem_dict={"桃李不言":"下自成蹊","慎终如始":"则无败事","善者不辨,辩者不善":"知者不博,博者不知","心若没有栖息的地方":"到哪里都是在流浪","既然钟情于玫瑰":"就勇敢地吐露真诚","既然选择了远方":"便只顾风雨兼程","艰难方显勇毅":"磨砺始得玉成","人生若只如初见":"何事悲风秋画扇","肠断月明红豆寇":"月似当时,人似当时否","真人之心如珍在渊":"常人之心如瓢在水","凡是过往":"皆为序章","志之所趋,无远勿届,穷山距海,不能限也":"志之所向,无坚不入,锐兵精甲,不能御也"}
            while 1:
                choice =random.choice(list(poem_dict.keys()))
                print("佯妍:"+choice)
                your_answer=input("你思考了一下,回答(退出请输入\'不玩了\'):")
                if choice=="既然钟情于玫瑰" and poem_dict[choice]==your_answer:
                    print("佯妍:是真的吗?")
                    eg.msgbox("她的眼睛像天山白雪一样清澈,注视着你","galgame",ok_button="")
                    eg.msgbox("你知道心中有什么东西正在融化","galgame",ok_button="")
                    eg.enterbox("于是你说:","galgame")
                    print("她对你的回答笑而不语,只是脸上已升起了一朵红晕")
                elif choice=="肠断月明红豆寇" and poem_dict[choice]==your_answer:
                    print("佯妍:我们会像纳兰容若那样么...")
                    eg.msgbox("她望向窗外,弱柳扶风,细雨沥沥")
                    eg.enterbox("于是你说:","galgame")
                    eg.msgbox("她梨花带雨,与你相拥",ok_button="嗯,别怕")
                elif poem_dict[choice]==your_answer:
                    self.patience +=1
                    print("佯妍:Bingo,答对了!")
                    print("佯妍:不要骄傲哦")
                else:
                    self.patience +=1
                    print("佯妍:哈哈,你错了")
                    print("佯妍:正确答案是:"+poem_dict[choice])
                if your_answer =="不玩了":
                    print("佯妍:~好吧~")
                    break
        else:
            print("佯妍:QAQ,我还想玩")
#================================================

#场景
def gym():
    eg.msgbox("正在赶往健身房....","galgame",ok_button="")
    P.data["属性"]["Endurance"]-=5
    eg.msgbox("健身房终于到了...","galgame",ok_button="")
    luck =random.randint(1,1024)
    if luck == 159:
        des_1=eg.buttonbox("一只宽大的手掌拍了拍你的后背\n\'兄弟兄弟,办卡不(现在办卡可享受6折优惠)\'","galgame",["办它","当我伞兵?"])
        if des_1=="办它":
            P.data["money"] -=18
            try:
                P.data['背包']["健身卡"]+=12
            except KeyError:
                P.data["背包"].setdefault("健身卡",12)
        else:
            pass
    while 1:            
        des_2=eg.choicebox("要做什么呢?","galgame",["前台","健身","离开"])
        if des_2=="前台":
            print("前台小姐姐:欢迎光临,有什么可以帮你的?")
            while 1:
                des_3=eg.buttonbox("(要做什么呢?)","galgame",["办卡","买饮料","没事,我随便逛逛.."])
                if des_3=="办卡":
                    P.data["money"] -=30
                    print("前台小姐姐:办理成功!(money-30)")
                    try:
                        P.data['背包']["健身卡"]+=12
                    except KeyError:
                        P.data["背包"].setdefault("健身卡",12)
                elif des_3=="买饮料":
                    print("前台小姐姐:我们的饮料应有尽有,随便挑")
                    des_4=eg.choicebox(title="galgame",choices=["可口可乐","果粒橙","安慕希","蒙牛","伊利","椰子汁","雪碧","农夫山泉"])
                    if des_4 in ["可口可乐","雪碧","果粒橙","椰子汁"]:
                        P.data["属性"]["Endurance"]+=20
                        P.data["money"]-=10
                        eg.msgbox("一股清凉顺颈而入,你感觉你又行了(体力+20,钱包-10)","galgame")
                        
                    elif des_4 in ["安慕希","伊利","蒙牛"]:
                        P.data["属性"]["Endurance"]+=30
                        P.data["money"]-=15
                        eg.msgbox("好喝,但又不完全好喝,只能加加体力(体力+30,钱包-15)","galgame")
                    else:
                        P.data["属性"]["Endurance"]+=10
                        P.data["money"]-=5
                        eg.msgbox("喝起来没什么感觉,就是心疼而已(体力+10,钱包-5)","galgame")
                else:
                    break

        elif des_2=="健身":
            if "健身卡" in P.data['背包'] and P.data['背包']["健身卡"] >0:
                print("功能未完善(我不知道健身房里有什么...........)")
                
            else:
                print("某比你强壮的工作人员:想白嫖?我看你是想请刘关张在你口里结义")
        else:
            break
    des_5=eg.choicebox("接下来要去哪呢?","galgame",["回家","关外","武器店"])
    if des_5=="回家":
        home()
    elif des_5=="关外":  #
        pass
    else:
        pass


def feild():  #想设置成打怪场所的,但是我太懒了哈哈哈哈
    eg.msgbox("正在赶往关外...","galgame")
    eg.msgbox("")


def home():
    while 1:
        eg.msgbox("你回家了","galgame")
        choices=["佯妍","出门","睡觉","退出(自动保存)"]
        des_1=eg.choicebox("要做什么呢?","galgame",choices)
        if des_1=="佯妍":
            interaction_1()
        elif des_1=="出门":
            places =["健身房","武器店","关外","返回"]
            des_2=eg.choicebox("要去哪里呢?","galgame",places)
            if des_2=="健身房":
                gym()
            elif des_2=="关外":
                feild()
        elif des_1=="睡觉":
            print("一只羊,两只羊....慢慢地,你进入了梦乡")
            P.sleep()
            print(P.data)
        elif des_1=="退出(自动保存)":#目前只有这里可以保存
            with open(Protagonist_name+".pkl","wb") as file:
                pickle.dump(P.data,file)
            break
        
        












#互动       
def interaction_1():
    H = Yangyan()
    while 1:
        des_2=eg.choicebox("","galgame",["交谈","看着她","牵手","摸屁股","摸腿","抱抱","掐脸","玩","做爱","结束"])
        if des_2=="交谈":
            conversation =["杏花春雨江南,琴棋书画问雅,炊烟流水人家,渔樵耕种烟火。无论阳春白雪,抑或下里巴人,诗词都有所概括,不会拒人于千里之外","常将有日思无日,莫待无时思有时","带我出去玩出去玩出去玩!!!","你是无意穿堂风,偏偏孤倨引山洪","莫听穿林打叶声,何妨吟啸且徐行"]
            print("佯妍:"+random.choice(conversation))
        elif des_2=="看着她":
            H.look_at_her()
        elif des_2=="牵手":
            H.hand()
        elif des_2=="摸屁股":
            H.ass()
        elif des_2=="摸腿":
            H.legs()
        elif des_2=="抱抱":
            H.hug()
        elif des_2=="掐脸":
            H.face()
        elif des_2=="玩":
            H.play()
        elif des_2=="做爱":
            H.make_love()
        else:
            print("佯妍:再见了,老公^_^")
            break
#==================================================




register()
if start:
    eg.msgbox("登录成功","galgame")
    cundang()
    home()
        


cancel键不要点哦,不知道怎么去掉 0.0 ,有没有大佬指点一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-2 15:54:20 | 显示全部楼层
这是什么问题?
Snipaste_2021-08-02_15-53-29.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-2 17:12:57 | 显示全部楼层
xxm8023 发表于 2021-8-2 15:54
这是什么问题?
try:
        with open("user_account_password.pkl","rb") as pickle_file:
            user_account_password = pickle.load(pickle_file)
    except FileNotFoundError:
        with open("user_account_password.pkl","wb") as pickle_file:#就是这一行出了问题
            my_list ={}
            pickle.dump(my_list,pickle_file)
        with open("user_account_password.pkl","rb") as pickle_file:
            user_account_password = pickle.load(pickle_file)
while 1:
        global P,Protagonist_name
        try:
            with open("name-instant_1.pkl","rb") as file:
                my_list=pickle.load(file)
                Protagonist_name =my_list[instant_1]
            with open(Protagonist_name+".pkl","rb") as file:
                P =Protagonist()
                P.data =pickle.load(file)
                break
        except (FileNotFoundError,KeyError):
            Protagonist_name=eg.enterbox("初次登录,请输入昵称","galgame")
            try:
                with open("name-instant_1.pkl","rb") as file:
                    my_list =pickle.load(file)
                    my_list.setdefault(instant_1,name)
                with open("name-instant_1.pkl","wb") as file:
                    pickle.dump(my_list,file)
            except FileNotFoundError:
                with open("name-instant_1.pkl","wb") as file:
                    my_list ={}
                    my_list[instant_1]=Protagonist_name#还有这行也出了问题
                    pickle.dump(my_list,file)
            with open(Protagonist_name+".pkl","wb") as file:
                    P =Protagonist()
                    pickle.dump(P.data,file)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-2 17:23:37 From FishC Mobile | 显示全部楼层
xxm8023 发表于 2021-8-2 15:54
这是什么问题?

兄弟,抱歉哈,没注意,还不行就把这个Python文件当前目录的user_account_password.pkl,instant_1-name.pkl删一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-2 23:12:21 | 显示全部楼层
简单看了一遍程序
然后。。。
我被变量名逗乐了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-3 00:10:07 | 显示全部楼层
wuqramy 发表于 2021-8-2 23:12
简单看了一遍程序
然后。。。
我被变量名逗乐了

0.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-3 09:10:43 | 显示全部楼层
哈哈,玩了玩,有小甲鱼那味儿了,嘿嘿嘿

厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-3 14:10:53 | 显示全部楼层
???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 02:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表