def test_generate_build_time_with_already_builded_buildings(self):
        build_simulator = BuildSimulator(['main', 'main'])

        build_simulator.build_time = 0
        build_simulator.village.buildings['main'].level = 4

        build_simulator.template = []
        build_simulator.build_template = ['main', 'main', 'main', 'main']
        build_simulator.generate_build_time()
        self.assertEqual(build_simulator.build_time, 0)
コード例 #2
0
    def __init__(self,
                 template,
                 file_name='brute_force_best.txt',
                 build_simulator_kwargs=None,
                 buildings=None):
        self.template = template[:]
        self.build_simulator_kwargs = build_simulator_kwargs or {}

        build_simulator = BuildSimulator(self.template,
                                         **self.build_simulator_kwargs)
        self.initial_build_time, self.build_time = build_simulator.build_time, build_simulator.build_time
        self.file_name = file_name
        self.buildings = buildings or ('storage', 'farm', 'main', 'iron',
                                       'stone', 'wood')
コード例 #3
0
 def run(self):
     while True:
         for template in self.template_generator():
             build_simulator = BuildSimulator(template,
                                              **self.build_simulator_kwargs)
             if int(build_simulator.build_time) < int(self.build_time):
                 self.build_time = build_simulator.build_time
                 self.template = build_simulator.template
                 print(
                     'Found better template. The template would be built within {} seconds'
                     .format(self.build_time))
                 self.save_template()
                 break
         else:
             print('I cannot find better template anymore.'
                   'The initial template would be built within {} seconds. '
                   'The template i found would be built within {} seconds.'
                   'I saved {} seconds for you.'.format(
                       self.initial_build_time, self.build_time,
                       self.initial_build_time - self.build_time))
             break
    def test_build_time(self):
        build_simulator = BuildSimulator(['main', 'main', 'main', 'main'])
        self.assertEqual(72830.76923076922, build_simulator.build_time)

        build_simulator = BuildSimulator(['storage', 'farm', 'main', 'main'])
        self.assertEqual(42646.153846153844, build_simulator.build_time)
    def test_generate_build_time_with_too_small_farm_level(self):
        build_simulator = BuildSimulator(['main'] * 30)

        self.assertEqual(build_simulator.template.count('farm'), 6)
    def test_generate_build_time_with_high_building_level(self):
        build_simulator = BuildSimulator(['farm'] * 35)

        self.assertEqual(build_simulator.template.count('farm'), 30)
 def test_build_time_with_supply(self):
     build_simulator = BuildSimulator(['storage', 'farm', 'main', 'main'], supply_resources=True)
     self.assertEqual(438.6286544833749, build_simulator.build_time)
     self.assertEqual(304.83212638428677, build_simulator.need_wood)
     self.assertEqual(268.83212638428677, build_simulator.need_stone)
     self.assertEqual(224.83212638428674, build_simulator.need_iron)
 def test_target_resources(self):
     build_simulator = BuildSimulator(['storage', 'farm', 'main', 'main'], target_resources=(3, 300, 9000))
     self.assertEqual(1277723.0769230768, build_simulator.build_time)
     self.assertEqual(9000, build_simulator.target_iron)
     self.assertEqual(9000, build_simulator.village.iron)
コード例 #9
0
 def build_time(self):
     return BuildSimulator(self.chromosome).build_time