吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1459|回复: 12
收起左侧

[讨论] PYthon 小白练习了字典的用法 (小游戏) 想引入CSV用法 存取数据 还没搞明白

[复制链接]
lihu5841314 发表于 2021-5-11 21:06
[Asm] 纯文本查看 复制代码
import random
class J():
    def __init__(self,name,age,life,Jin_jie,jinyan):
        self.name=name
        self.age=age
        self.life=life
        self.jinyan=jinyan
        self.Jin_jie = Jin_jie



    def shengji(self):
        while self.jinyan - (100 + self.Jin_jie * 100)>0:
                Xiu_lian = {0: "练气期", 1: "筑基期", 2: "金丹期", 3: "化神期", 4: "大乘期", 5: "飞升期"}
                self.Jin_jie += 1
                self.life = self.life + 150
                J =Xiu_lian[self.Jin_jie]
                print(f"恭喜你突破身体桎梏,升到了{J}")
                break

    def  shuxin(self):
        Xiu_lian = {0: "练气期", 1: "筑基期", 2: "金丹期", 3: "化神期", 4: "大乘期", 5: "飞升期"}
        J = Xiu_lian[self.Jin_jie]
        data=f'你的名字:{self.name},年龄:{self.age},生命:{self.life},境界:{J},经验:{self.jinyan}'
        print(data)

    def jieju(self):
        if self.Jin_jie=='飞升期':
            print("恭喜你破碎虚空,飞升天界")

        if self.life <= 0:
            print("你死得悄无声息,默默无闻")

class   Z(J):
    def  Cun_wai(self):
        Guaiwu= {'野狼': 30, '狗熊': 50, '土匪': 80}
        Gjinyan = {'野狼': 10, '狗熊': 18, '土匪': 25}
        Y=list(Guaiwu.keys())
        M=random.choice(Y)
        self.life=self.life-Guaiwu[M]
        self.jinyan=self.jinyan+Gjinyan[M]
        nian=random.randint(2,5)
        self.age=self.age+nian
        if X.life > 0:
            print(f"你经过了险象环生的战斗,终于杀死了{M},获得了{Gjinyan[M]}经验,你经过了{nian}年疗伤,终于痊愈了")


    def  Da_shan(self):
        Guaiwu= {'恶人': 40, '野人': 70, '山贼': 100}
        Gjinyan= {'恶人': 20, '野人': 30, '山贼': 45}
        Y=list(Guaiwu.keys())
        M=random.choice(Y)
        self.life=self.life-Guaiwu[M]
        self.jinyan=self.jinyan+Gjinyan[M]
        nian = random.randint(2, 5)
        self.age = self.age + nian
        if X.life > 0:
            print(f"你经过了险象环生的战斗,终于杀死了{M},你经过了{nian}年疗伤,终于痊愈了")
        else:
            print("战斗失败,请重新再来")
    def Bi_guan(self):
        self.life=self.life+random.randrange(30,60)
        self.age=self.age+random.randrange(1,6)
        nian=random.randrange(1,6)
        print(f'你闭关{nian}年,变得龙精虎猛,虎虎生风')

age=random.randint(18,25)
life=random.randrange(100,130)
name=input("请输入你的名字:")
Jin_jie=0
jinyan=0
X=Z(name,age,life,Jin_jie,jinyan)
X.shuxin()
while  True:
    chang_di = int(input("请选择你的修炼地点:1为村外,2为大山,3为闭关疗伤:"))
    if  chang_di==1:
            X.Cun_wai()
            X.shengji()
            X.shuxin()
            X.jieju()
            if  X.life<0:
                break
    elif    chang_di== 2:
            X.Da_shan()
            X.shengji()
            X.shuxin()
            X.jieju()
            if  X.life<0:
                break
    elif    chang_di== 3:
            X.Bi_guan()
            X.shuxin()
            X.jieju()
    else:
        print("输入错误请重新输入")
    continue

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| lihu5841314 发表于 2021-5-11 21:08
我是小白鼠  好多想法的只能迂回处理  
fanvalen 发表于 2021-5-11 21:15
本帖最后由 fanvalen 于 2021-5-11 21:21 编辑

[Python] 纯文本查看 复制代码
import re,csv
csvf=csv.reader(open('f.csv','r'))
for i in csvf:
    print(i)
with open('./r.csv','a+',newline='')as f:
    w=csv.writer(f, dialect='excel')
    w.writerows(这里填要写入的数据)
小飞虫 发表于 2021-5-11 21:17
fanvalen 发表于 2021-5-11 21:15
[mw_shl_code=python,true]import re,csv
with open('./r.csv','a+',newline='')as f:
    w=csv.writer( ...

如果是100m以上的csv open一行行读取导入快还是用pandas导入变成字典快?
 楼主| lihu5841314 发表于 2021-5-11 21:19
fanvalen 发表于 2021-5-11 21:15
[mw_shl_code=python,true]import re,csv
with open('./r.csv','a+',newline='')as f:
    w=csv.writer( ...

基本语法 能懂  不明白的是 比如我要把一个怪物的生命  经验等参数取出来  运算  就是我的小游戏里  我要打怪的 我就要取里面的参数进行运算  现在用的是两个字典  第一个字典的值是第二个字典的Key  来取值  如果数据量大了这个就不好用了  
fanvalen 发表于 2021-5-11 21:22
小飞虫 发表于 2021-5-11 21:17
如果是100m以上的csv open一行行读取导入快还是用pandas导入变成字典快?

大数据一般用pd来读要快的多

免费评分

参与人数 1吾爱币 +1 收起 理由
小飞虫 + 1 热心回复!

查看全部评分

fanvalen 发表于 2021-5-11 21:39
lihu5841314 发表于 2021-5-11 21:19
基本语法 能懂  不明白的是 比如我要把一个怪物的生命  经验等参数取出来  运算  就是我的小游戏里  我要 ...

由于你的代码不是多线程所以每次打怪或修炼必须等到运行结束才呢看结果,
你要引入刷怪机制,而不是在对象内部预置,你还设计少了不同怪物攻击大小, 不同怪物死亡给经验
没打死下次再进是重新刷新还是继续上次怪属性
咸鱼灭 发表于 2021-5-11 21:46
lihu5841314 发表于 2021-5-11 21:19
基本语法 能懂  不明白的是 比如我要把一个怪物的生命  经验等参数取出来  运算  就是我的小游戏里  我要 ...

数据量大就弄个怪物类
 楼主| lihu5841314 发表于 2021-5-11 21:49
fanvalen 发表于 2021-5-11 21:39
由于你的代码不是多线程所以每次打怪或修炼必须等到运行结束才呢看结果,
你要引入刷怪机制,而不是在对 ...

你说的太高端了  听得懂 就是不会    才学习半个月python  主要是练习基础知识     多些大佬
包子凡 发表于 2021-5-11 22:28
怎么入门?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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