lihu5841314 发表于 2021-5-11 21:06

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

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
                print(f"恭喜你突破身体桎梏,升到了{J}")
                break

    defshuxin(self):
      Xiu_lian = {0: "练气期", 1: "筑基期", 2: "金丹期", 3: "化神期", 4: "大乘期", 5: "飞升期"}
      J = Xiu_lian
      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):
    defCun_wai(self):
      Guaiwu= {'野狼': 30, '狗熊': 50, '土匪': 80}
      Gjinyan = {'野狼': 10, '狗熊': 18, '土匪': 25}
      Y=list(Guaiwu.keys())
      M=random.choice(Y)
      self.life=self.life-Guaiwu
      self.jinyan=self.jinyan+Gjinyan
      nian=random.randint(2,5)
      self.age=self.age+nian
      if X.life > 0:
            print(f"你经过了险象环生的战斗,终于杀死了{M},获得了{Gjinyan}经验,你经过了{nian}年疗伤,终于痊愈了")


    defDa_shan(self):
      Guaiwu= {'恶人': 40, '野人': 70, '山贼': 100}
      Gjinyan= {'恶人': 20, '野人': 30, '山贼': 45}
      Y=list(Guaiwu.keys())
      M=random.choice(Y)
      self.life=self.life-Guaiwu
      self.jinyan=self.jinyan+Gjinyan
      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()
whileTrue:
    chang_di = int(input("请选择你的修炼地点:1为村外,2为大山,3为闭关疗伤:"))
    ifchang_di==1:
            X.Cun_wai()
            X.shengji()
            X.shuxin()
            X.jieju()
            ifX.life<0:
                break
    elif    chang_di== 2:
            X.Da_shan()
            X.shengji()
            X.shuxin()
            X.jieju()
            ifX.life<0:
                break
    elif    chang_di== 3:
            X.Bi_guan()
            X.shuxin()
            X.jieju()
    else:
      print("输入错误请重新输入")
    continue

lihu5841314 发表于 2021-5-11 21:08

我是小白鼠好多想法的只能迂回处理:'(weeqw

fanvalen 发表于 2021-5-11 21:15

本帖最后由 fanvalen 于 2021-5-11 21:21 编辑

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
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
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来读要快的多

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

怎么入门?
页: [1] 2
查看完整版本: PYthon 小白练习了字典的用法 (小游戏) 想引入CSV用法 存取数据 还没搞明白