鱼C论坛

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

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

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

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

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

x
本帖最后由 新人求上岸 于 2021-8-2 16:47 编辑
  1. import easygui as eg   
  2. import pickle
  3. import random
  4. #登录
  5. def register():      
  6.     def go():
  7.         global start,instant_1
  8.         while 1:
  9.             msg = "登录中,请输入用户名和密码"
  10.             title ="galgame"
  11.             choices = ["用户名","密码"]
  12.             des_1=eg.multpasswordbox(msg,title,choices)
  13.             try:
  14.                 if user_account_password[des_1[0]] != des_1[1]:
  15.                     des_2=eg.buttonbox("用户名或密码错误","galgame",["注册","返回"])
  16.                     if des_2=="注册":
  17.                         eg.msgbox("加载中....")
  18.                         wait()
  19.                         break
  20.                     else:
  21.                         continue
  22.                 else:
  23.                     instant_1 =des_1[0]
  24.                     start = True
  25.                     break
  26.             except KeyError:
  27.                 des_2=eg.buttonbox("用户名不存在","galgame",["注册","返回"])
  28.                 if des_2=="注册":
  29.                     eg.msgbox("加载中....")
  30.                     wait()
  31.                     
  32.                 else:
  33.                     continue


  34.     def wait():
  35.         while 1:
  36.             msg = "注册中,请输入用户名和密码"
  37.             title ="galgame"
  38.             choices = ["用户名","密码"]
  39.             des_1=eg.multpasswordbox(msg,title,choices)
  40.             if des_1[0] in user_account_password:
  41.                 des_2=eg.buttonbox("用户名已存在","galgame",["登录","返回"])
  42.                 if des_2=="登录":
  43.                     go()
  44.                     break
  45.                 else:
  46.                     continue
  47.             else:
  48.                 user_account_password[des_1[0]]=des_1[1]
  49.                 break
  50.     def cancel():
  51.         while 1:
  52.             msg = "请输入需要注销的用户名和密码"
  53.             title ="galgame"
  54.             choices = ["用户名","密码"]
  55.             des_1=eg.multpasswordbox(msg,title,choices)
  56.             try:
  57.                 if des_1[0]==des_1[1]:
  58.                     user_account_password.pop(des_1[0])
  59.                     break
  60.                 else:
  61.                     eg.msgbox("输入的用户名或密码错误","galgame",ok_button="返回")
  62.                     continue
  63.             except KeyError:
  64.                 eg.msgbox("用户名不存在","galgame",ok_button="返回")
  65.                 continue
  66.             
  67.     def save():
  68.         with open("user_account_password.pkl","wb") as pickle_file:
  69.                 pickle.dump(user_account_password,pickle_file)



  70.     try:
  71.         with open("user_account_password.pkl","rb") as pickle_file:
  72.             user_account_password = pickle.load(pickle_file)
  73.     except FileNotFoundError:
  74.         with open("user_account_password.pkl","wb") as pickle_file:
  75.             my_list ={}
  76.             pickle.dump(my_list,pickle_file)
  77.         with open("user_account_password.pkl","rb") as pickle_file:
  78.             user_account_password = pickle.load(pickle_file)
  79.     global start
  80.     start =False
  81.     while 1:
  82.         msg="欢迎体验小游戏"
  83.         title="galgame"
  84.         choices = ["登录","注册","注销","退出"]
  85.         decision = eg.buttonbox(msg,title,choices)
  86.         if decision=="登录":
  87.             go()
  88.             save()
  89.             break
  90.         elif decision=="注册":
  91.             wait()
  92.             save()
  93.             continue
  94.         elif decision=="注销":
  95.             cancel()
  96.             save()
  97.             continue
  98.         else:
  99.             print("感谢游玩")
  100.             break
  101. #=================================================


  102. #存档
  103. def cundang():
  104.     while 1:
  105.         global P,Protagonist_name
  106.         try:
  107.             with open("name-instant_1.pkl","rb") as file:
  108.                 my_list=pickle.load(file)
  109.                 Protagonist_name =my_list[instant_1]
  110.             with open(Protagonist_name+".pkl","rb") as file:
  111.                 P =Protagonist()
  112.                 P.data =pickle.load(file)
  113.                 break
  114.         except (FileNotFoundError,KeyError):
  115.             Protagonist_name=eg.enterbox("初次登录,请输入昵称","galgame")
  116.             try:
  117.                 with open("name-instant_1.pkl","rb") as file:
  118.                     my_list =pickle.load(file)
  119.                     my_list.setdefault(instant_1,name)
  120.                 with open("name-instant_1.pkl","wb") as file:
  121.                     pickle.dump(my_list,file)
  122.             except FileNotFoundError:
  123.                 with open("name-instant_1.pkl","wb") as file:
  124.                     my_list ={}
  125.                     my_list[instant_1]=Protagonist_name
  126.                     pickle.dump(my_list,file)
  127.             with open(Protagonist_name+".pkl","wb") as file:
  128.                     P =Protagonist()
  129.                     pickle.dump(P.data,file)

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


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

  149. #人物内容
  150. class Yangyan(Women):         
  151.     patience=10
  152.     def __init__(self):
  153.         print("佯妍:啦啦啦啦啦,QAQ,老公,你终于来找我了")
  154.     def hug(self):
  155.         print("佯妍:不行...除非..你亲我一下")
  156.         self.des_1=eg.buttonbox("亲..还是不亲呢?","galgame",["亲",'不亲'])
  157.         if self.des_1=="亲":
  158.             print("佯妍:嗯~ o* ̄▽ ̄*o")
  159.             print("佯妍:芜湖,起飞")
  160.             self.patience +=1
  161.         else:
  162.             print("佯妍:还嫌弃我?哼!!!")
  163.             self.patience -=1
  164.     def face(self):
  165.         print("佯妍:不要,疼死了(推开你的手),哼~~(嘟起嘴)")
  166.         self.patience +=1
  167.     def make_love(self):
  168.         if self.patience >=20:
  169.             print("佯妍:好..好吧,我..我(脸红),能..不能")
  170.             eg.msgbox("这时,你主动上前,抱住她,然后.....")
  171.         else:
  172.             print("佯妍:这样不好吧,姐姐们都在看着呢")
  173.     def ass(self):
  174.         if self.patience >= 15:
  175.             print("佯妍:讨厌,你..你不许再这样做,不然..我叫晓瑜来打你!")
  176.         else:
  177.             super().ass()
  178.         self.patience +=1
  179.     def legs(self):
  180.         if self.patience >=15:
  181.             print("佯妍:不许摸!!!(脸红)")
  182.         else:
  183.             super().legs()
  184.         self.patience +=1
  185.     def play(self):
  186.         print("佯妍:好呀好呀,要玩什么呢?")
  187.         self.game_name=["猜拳","接诗词","不玩了"]
  188.         des_1=eg.choicebox("玩什么呢?","galgame",self.game_name)
  189.         if des_1=="猜拳":
  190.             print("佯妍:石头剪刀...")
  191.             while 1:
  192.                 secret=random.choice([1,2,3])#1为石头,2为剪刀,3为布
  193.                 des_2=eg.buttonbox("要出什么呢?","galgame",["石头","剪刀","布","不玩了"])
  194.                 if des_2=="石头":
  195.                     self.patience +=1
  196.                     if secret ==2:
  197.                         print("佯妍:呜呜,你赢了")
  198.                     elif secret ==3:
  199.                         print("佯妍:哈哈哈,虽然你很优秀,但猜拳我可是王者!")
  200.                     else:
  201.                         print("佯妍:emmm,你运气好而已,再来")
  202.                 elif des_2=="剪刀":
  203.                     self.patience +=1
  204.                     if secret ==3:
  205.                         print("佯妍:呜呜,你赢了")
  206.                     elif secret ==1:
  207.                         print("佯妍:哈哈哈,虽然你很优秀,但猜拳我可是王者!")
  208.                     else:
  209.                         print("佯妍:emmm,你运气好而已,再来")
  210.                 elif des_2=="布":
  211.                     self.patience +=1
  212.                     if secret ==1:
  213.                         print("佯妍:呜呜,你赢了")
  214.                     elif secret ==2:
  215.                         print("佯妍:哈哈哈,虽然你很优秀,但猜拳我可是王者!")
  216.                     else:
  217.                         print("佯妍:emmm,你运气好而已,再来")
  218.                 else:
  219.                     print("佯妍:~好吧~")
  220.                     break
  221.         elif des_1=="接诗词":
  222.             print("嗯~~,小心一点哦")
  223.             poem_dict={"桃李不言":"下自成蹊","慎终如始":"则无败事","善者不辨,辩者不善":"知者不博,博者不知","心若没有栖息的地方":"到哪里都是在流浪","既然钟情于玫瑰":"就勇敢地吐露真诚","既然选择了远方":"便只顾风雨兼程","艰难方显勇毅":"磨砺始得玉成","人生若只如初见":"何事悲风秋画扇","肠断月明红豆寇":"月似当时,人似当时否","真人之心如珍在渊":"常人之心如瓢在水","凡是过往":"皆为序章","志之所趋,无远勿届,穷山距海,不能限也":"志之所向,无坚不入,锐兵精甲,不能御也"}
  224.             while 1:
  225.                 choice =random.choice(list(poem_dict.keys()))
  226.                 print("佯妍:"+choice)
  227.                 your_answer=input("你思考了一下,回答(退出请输入\'不玩了\'):")
  228.                 if choice=="既然钟情于玫瑰" and poem_dict[choice]==your_answer:
  229.                     print("佯妍:是真的吗?")
  230.                     eg.msgbox("她的眼睛像天山白雪一样清澈,注视着你","galgame",ok_button="")
  231.                     eg.msgbox("你知道心中有什么东西正在融化","galgame",ok_button="")
  232.                     eg.enterbox("于是你说:","galgame")
  233.                     print("她对你的回答笑而不语,只是脸上已升起了一朵红晕")
  234.                 elif choice=="肠断月明红豆寇" and poem_dict[choice]==your_answer:
  235.                     print("佯妍:我们会像纳兰容若那样么...")
  236.                     eg.msgbox("她望向窗外,弱柳扶风,细雨沥沥")
  237.                     eg.enterbox("于是你说:","galgame")
  238.                     eg.msgbox("她梨花带雨,与你相拥",ok_button="嗯,别怕")
  239.                 elif poem_dict[choice]==your_answer:
  240.                     self.patience +=1
  241.                     print("佯妍:Bingo,答对了!")
  242.                     print("佯妍:不要骄傲哦")
  243.                 else:
  244.                     self.patience +=1
  245.                     print("佯妍:哈哈,你错了")
  246.                     print("佯妍:正确答案是:"+poem_dict[choice])
  247.                 if your_answer =="不玩了":
  248.                     print("佯妍:~好吧~")
  249.                     break
  250.         else:
  251.             print("佯妍:QAQ,我还想玩")
  252. #================================================

  253. #场景
  254. def gym():
  255.     eg.msgbox("正在赶往健身房....","galgame",ok_button="")
  256.     P.data["属性"]["Endurance"]-=5
  257.     eg.msgbox("健身房终于到了...","galgame",ok_button="")
  258.     luck =random.randint(1,1024)
  259.     if luck == 159:
  260.         des_1=eg.buttonbox("一只宽大的手掌拍了拍你的后背\n\'兄弟兄弟,办卡不(现在办卡可享受6折优惠)\'","galgame",["办它","当我伞兵?"])
  261.         if des_1=="办它":
  262.             P.data["money"] -=18
  263.             try:
  264.                 P.data['背包']["健身卡"]+=12
  265.             except KeyError:
  266.                 P.data["背包"].setdefault("健身卡",12)
  267.         else:
  268.             pass
  269.     while 1:            
  270.         des_2=eg.choicebox("要做什么呢?","galgame",["前台","健身","离开"])
  271.         if des_2=="前台":
  272.             print("前台小姐姐:欢迎光临,有什么可以帮你的?")
  273.             while 1:
  274.                 des_3=eg.buttonbox("(要做什么呢?)","galgame",["办卡","买饮料","没事,我随便逛逛.."])
  275.                 if des_3=="办卡":
  276.                     P.data["money"] -=30
  277.                     print("前台小姐姐:办理成功!(money-30)")
  278.                     try:
  279.                         P.data['背包']["健身卡"]+=12
  280.                     except KeyError:
  281.                         P.data["背包"].setdefault("健身卡",12)
  282.                 elif des_3=="买饮料":
  283.                     print("前台小姐姐:我们的饮料应有尽有,随便挑")
  284.                     des_4=eg.choicebox(title="galgame",choices=["可口可乐","果粒橙","安慕希","蒙牛","伊利","椰子汁","雪碧","农夫山泉"])
  285.                     if des_4 in ["可口可乐","雪碧","果粒橙","椰子汁"]:
  286.                         P.data["属性"]["Endurance"]+=20
  287.                         P.data["money"]-=10
  288.                         eg.msgbox("一股清凉顺颈而入,你感觉你又行了(体力+20,钱包-10)","galgame")
  289.                         
  290.                     elif des_4 in ["安慕希","伊利","蒙牛"]:
  291.                         P.data["属性"]["Endurance"]+=30
  292.                         P.data["money"]-=15
  293.                         eg.msgbox("好喝,但又不完全好喝,只能加加体力(体力+30,钱包-15)","galgame")
  294.                     else:
  295.                         P.data["属性"]["Endurance"]+=10
  296.                         P.data["money"]-=5
  297.                         eg.msgbox("喝起来没什么感觉,就是心疼而已(体力+10,钱包-5)","galgame")
  298.                 else:
  299.                     break

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


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


  318. def home():
  319.     while 1:
  320.         eg.msgbox("你回家了","galgame")
  321.         choices=["佯妍","出门","睡觉","退出(自动保存)"]
  322.         des_1=eg.choicebox("要做什么呢?","galgame",choices)
  323.         if des_1=="佯妍":
  324.             interaction_1()
  325.         elif des_1=="出门":
  326.             places =["健身房","武器店","关外","返回"]
  327.             des_2=eg.choicebox("要去哪里呢?","galgame",places)
  328.             if des_2=="健身房":
  329.                 gym()
  330.             elif des_2=="关外":
  331.                 feild()
  332.         elif des_1=="睡觉":
  333.             print("一只羊,两只羊....慢慢地,你进入了梦乡")
  334.             P.sleep()
  335.             print(P.data)
  336.         elif des_1=="退出(自动保存)":#目前只有这里可以保存
  337.             with open(Protagonist_name+".pkl","wb") as file:
  338.                 pickle.dump(P.data,file)
  339.             break
  340.         
  341.         












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




  370. register()
  371. if start:
  372.     eg.msgbox("登录成功","galgame")
  373.     cundang()
  374.     home()
  375.         

复制代码



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
这是什么问题?
  1. try:
  2.         with open("user_account_password.pkl","rb") as pickle_file:
  3.             user_account_password = pickle.load(pickle_file)
  4.     except FileNotFoundError:
  5.         with open("user_account_password.pkl","wb") as pickle_file:#就是这一行出了问题
  6.             my_list ={}
  7.             pickle.dump(my_list,pickle_file)
  8.         with open("user_account_password.pkl","rb") as pickle_file:
  9.             user_account_password = pickle.load(pickle_file)
复制代码
  1. while 1:
  2.         global P,Protagonist_name
  3.         try:
  4.             with open("name-instant_1.pkl","rb") as file:
  5.                 my_list=pickle.load(file)
  6.                 Protagonist_name =my_list[instant_1]
  7.             with open(Protagonist_name+".pkl","rb") as file:
  8.                 P =Protagonist()
  9.                 P.data =pickle.load(file)
  10.                 break
  11.         except (FileNotFoundError,KeyError):
  12.             Protagonist_name=eg.enterbox("初次登录,请输入昵称","galgame")
  13.             try:
  14.                 with open("name-instant_1.pkl","rb") as file:
  15.                     my_list =pickle.load(file)
  16.                     my_list.setdefault(instant_1,name)
  17.                 with open("name-instant_1.pkl","wb") as file:
  18.                     pickle.dump(my_list,file)
  19.             except FileNotFoundError:
  20.                 with open("name-instant_1.pkl","wb") as file:
  21.                     my_list ={}
  22.                     my_list[instant_1]=Protagonist_name#还有这行也出了问题
  23.                     pickle.dump(my_list,file)
  24.             with open(Protagonist_name+".pkl","wb") as file:
  25.                     P =Protagonist()
  26.                     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-3-29 18:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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