Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- class equipment:
- def __init__ (self, iname, icost, ispeed):
- self.cost = icost
- self.speed = ispeed
- self.name = iname
- equipmentlist = []
- equipmentlist.append(equipment("Hands",0,1))
- equipmentlist.append(equipment("Pickaxe",10,2))
- equipmentlist.append(equipment("Shovel",180,3))
- equipmentlist.append(equipment("Jackhammer",720,4))
- equipmentlist.append(equipment("Rotivator",12000,6))
- equipmentlist.append(equipment("Wolf Claws",259200,9))
- equipmentlist.append(equipment("Drill Gun",907200,14))
- equipmentlist.append(equipment("Mower",3110440,20))
- equipmentlist.append(equipment("The Cleaner",7873200,30))
- equipmentlist.append(equipment("Scoop Digger",26244000,46))
- equipmentlist.append(equipment("Clawing Digger",43302600,68))
- equipmentlist.append(equipment("Harvester",70858800,103))
- equipmentlist.append(equipment("Goblin Team",115145550,154))
- equipmentlist.append(equipment("Drill Machine",186004350,231))
- equipmentlist.append(equipment("Mutant Mole",298935563,346))
- equipmentlist.append(equipment("Power Loader",478296900,519))
- equipmentlist.append(equipment("Excavator",762285684,778))
- equipmentlist.append(equipment("Ghost Ship",1210689028,1168 ))
- equipmentlist.append(equipment("Dragon",1916924295,1752 ))
- equipmentlist.append(equipment("Mothership",3026722570,2627 ))
- multipliercosts = [
- 0,
- 5,
- 16,
- 49,
- 152,
- 474,
- 1478,
- 4612,
- 14390,
- 44896,
- 140075,
- 437035,
- 1363548,
- 4254271,
- 13273325,
- 41412774,
- 129207854,
- 403128506,
- 1127760938,
- 3924214125]
- class node:
- def __init__(self,leasttimetoroot,shortestparent,currentspeed,parentequip,parentmult):
- self.leasttimetoroot = leasttimetoroot
- self.shortestparent = shortestparent
- self.currentspeed = currentspeed
- self.parentequip = parentequip
- self.parentmult = parentmult
- network = {}
- network["0-0"] = node(0,"0-0",1,0,0)
- for e in range(0,20):
- for m in range(0,20):
- if e:
- equipparent = repr(e - 1) + "-" + repr(m)
- equiptimetoroot = (equipmentlist[e].cost // network[equipparent].currentspeed) + network[equipparent].leasttimetoroot
- thisnodename = repr(e) + "-" + repr(m)
- if not network.has_key(thisnodename):
- network[thisnodename] = node(equiptimetoroot,equipparent,equipmentlist[e].speed * (m + 1),e - 1,m)
- if equiptimetoroot < network[thisnodename].leasttimetoroot:
- network[thisnodename] = node(equiptimetoroot,equipparent,equipmentlist[e].speed * (m + 1),e - 1,m)
- if m:
- multparent = repr(e) + "-" + repr(m - 1)
- multtimetoroot = (multipliercosts[m] // network[multparent].currentspeed) + network[multparent].leasttimetoroot
- thisnodename = repr(e) + "-" + repr(m)
- if not network.has_key(thisnodename):
- network[thisnodename] = node(multtimetoroot,multparent,equipmentlist[e].speed * (m + 1),e,m - 1)
- if multtimetoroot < network[thisnodename].leasttimetoroot:
- network[thisnodename] = node(multtimetoroot,multparent,equipmentlist[e].speed * (m + 1),e,m - 1)
- e = 19
- m = 19
- route = repr(network["19-19"].leasttimetoroot)
- while (e or m):
- thisnode = repr(e) + "-" + repr(m)
- if e > network[thisnode].parentequip:
- route = equipmentlist[e].name + "," + route
- print equipmentlist[e].name,"-", network[thisnode].leasttimetoroot,"sec"
- if m > network[thisnode].parentmult:
- route = "Mult " + repr(m+1) + "x," + route
- print repr(m + 1) +"x Multiplier","-", network[thisnode].leasttimetoroot,"sec"
- e = network[thisnode].parentequip
- m = network[thisnode].parentmult
- print route
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement