我犯了一个巨大的错误:Python编码

我犯了一个巨大的错误:Python编码,python,python-2.7,Python,Python 2.7,嗯。我一直在和我的朋友玩龙与地下城的纸与笔rpg。你必须有一个字符表和一个库存表,但它变得非常混乱,所有的东西都被删除和重写了十几次。所以我决定制作一个python程序来代替我的论文。所以我开始编写非常基本的python代码,比如 print "" print "What would you like to know?" option = raw_input("--> ") if option == 'name': name() 然后有大约60个循环的东西你可以去,包括钱 eli

嗯。我一直在和我的朋友玩龙与地下城的纸与笔rpg。你必须有一个字符表和一个库存表,但它变得非常混乱,所有的东西都被删除和重写了十几次。所以我决定制作一个python程序来代替我的论文。所以我开始编写非常基本的python代码,比如

print ""
print "What would you like to know?"
option = raw_input("--> ")
if option == 'name':
    name()
然后有大约60个循环的东西你可以去,包括钱

elif option == 'money':
    money()
elif option == 'add gold':
    addgold()

global gold
gold = 10

def money():
    print ""
    print "Gold: ",gold,""

def addgold():
    print ""
    global gold
    addg = raw_input("How much gold would you like to add: ")
    if addg >= 0:
        gold = gold + (int(addg))
    print ""
    print "Your total gold is now: ",gold,""

我现在意识到,我犯了一个巨大的错误,因为有大约2000行过于复杂的代码,花了我很长时间来编写,我不想把它们都浪费掉。然而,我知道有更好的方法来做到这一点。由于我这样做的方式,我很难实施我提出的其他问题的建议。因此,如果我只想做一个系统,其中gold的值存储在一个单独的文件中(可能使用我前面问题中描述的方法之一),并且我可以使用addgold()更改变量的值,那么应该怎么做呢。我再次为我的问题道歉。在深入研究代码之前,我应该做更多的研究和学习。谢谢。

我不知道什么是“D&D”的所有可能的统计数据,但是其他用户建议你应该考虑使用对象,即类。最基本的实现可以是这样的:

    class Items():
         def __init__(self,items=[]):
              self.items = items

         def add(self,item):
              self.items.append(item)

         def remove(self,item):
              self.items.remove(item)

         def showItems(self):
              print(self.items)

    class Wallet():
         def __init__(self,gold=0):
              self.gold = gold

         def add(self,number):
              self.gold = self.gold + number

         def remove(self,number):
             if self.gold-number<0:
                   print("Sweat runs down your cheek as you notice you are short of", self.gold-number, "coins.")
                   return False
             else:
                  self.gold = self.gold - number
                  print("You spend ", number, "coins.")
                  return True

    class Character():
         # You'll define you character with name,gender and species
         # (it's an example obviously, you can put anything) 
         def __init__(self,name,gender,species):
              # Storing the input arguments inside class
              self.name    = name
              self.gender  = gender
              self.species = species

              self.events = []
              self.wallet  = Wallet()
              self.items   = Items()

         def buy(self,item,cost):
             if self.wallet.remove(cost):
                   self.items.add(item)

         def sell(self,item,cost):
             self.items.remove(item)
             self.wallet.add(cost)
,这将导致:

    Sweat runs down your cheek as you notice you are short of -154 coins.

学习使用物体是实现你想要做的事情的完美方式。另外,对于您的其他问题(将内容保存到文件),如果您选择使用保存类(例如您的角色),那么最好的开始方式是。但一次遇到一个问题。

< P>我不知道什么是“D&D”的所有可能的统计,但是其他用户建议你应该考虑使用对象,即类。最基本的实现可以是这样的:

    class Items():
         def __init__(self,items=[]):
              self.items = items

         def add(self,item):
              self.items.append(item)

         def remove(self,item):
              self.items.remove(item)

         def showItems(self):
              print(self.items)

    class Wallet():
         def __init__(self,gold=0):
              self.gold = gold

         def add(self,number):
              self.gold = self.gold + number

         def remove(self,number):
             if self.gold-number<0:
                   print("Sweat runs down your cheek as you notice you are short of", self.gold-number, "coins.")
                   return False
             else:
                  self.gold = self.gold - number
                  print("You spend ", number, "coins.")
                  return True

    class Character():
         # You'll define you character with name,gender and species
         # (it's an example obviously, you can put anything) 
         def __init__(self,name,gender,species):
              # Storing the input arguments inside class
              self.name    = name
              self.gender  = gender
              self.species = species

              self.events = []
              self.wallet  = Wallet()
              self.items   = Items()

         def buy(self,item,cost):
             if self.wallet.remove(cost):
                   self.items.add(item)

         def sell(self,item,cost):
             self.items.remove(item)
             self.wallet.add(cost)
,这将导致:

    Sweat runs down your cheek as you notice you are short of -154 coins.

学习使用物体是实现你想要做的事情的完美方式。另外,对于您的其他问题(将内容保存到文件),如果您选择使用保存类(例如您的角色),那么最好的开始方式是。但是,一次只解决一个问题。

如果您的代码正常工作,StackOverflow就不适合您提出问题。如果您要求对代码进行改进,您可能会发现更有用。您之前的问题是关于包含gold=10的文本文件,以及您希望如何使用
money=gold
?那么,您的问题是什么?对于在文本文件中存储变量,如果您的代码不起作用,请阅读@Elkman123(至少是您发布的内容),考虑发布一个对代码审查起作用的部分。请记住,坏代码/出现故障的代码不属于主题,但另一方面,如果您无法将其缩小到更具体的问题,堆栈溢出也可能无法帮助解决这一问题……如果您的代码正常工作,那么堆栈溢出就不是您提出问题的正确位置。如果您要求对代码进行改进,您可能会发现更有用。您之前的问题是关于包含gold=10的文本文件,以及您希望如何使用
money=gold
?那么,您的问题是什么?对于在文本文件中存储变量,如果您的代码不起作用,请阅读@Elkman123(至少是您发布的内容),考虑发布一个对代码审查起作用的部分。请记住,坏代码/出现故障的代码在这里是离题的,但另一方面,如果您不能将其缩小到更具体的问题,堆栈溢出也可能无法帮助解决这一问题。。。