Exemplo n.º 1
0
 def __init__(self, config):
     self.config = config
     self.logdb = pymongo.Connection(self.config["logdb"]["db_host"], int(self.config["logdb"]["db_port"]))[
         self.config["logdb"]["db_name"]
     ]
     self.prefix = "%s_%s" % (self.config["logdb"]["prefix"], datetime.datetime.now().strftime("%Y%m%d%H%M%S"))
     self.pg = PlayGround(self.config["map"], self.config["user"], self.logdb, self.prefix)
Exemplo n.º 2
0
class UserBehaveSim:
    def __init__(self, config):
        self.config = config
        self.logdb = pymongo.Connection(self.config["logdb"]["db_host"], int(self.config["logdb"]["db_port"]))[
            self.config["logdb"]["db_name"]
        ]
        self.prefix = "%s_%s" % (self.config["logdb"]["prefix"], datetime.datetime.now().strftime("%Y%m%d%H%M%S"))
        self.pg = PlayGround(self.config["map"], self.config["user"], self.logdb, self.prefix)

    def run(self):
        total_sim_steps = int(self.config["sim"]["total_sim_time_min"] / self.config["sim"]["step_width_min"])
        prev_progress = 0
        for i in range(total_sim_steps):
            self.pg.process(i)
            progress = int((i * 100) / total_sim_steps)
            if progress > prev_progress:
                sys.stdout.write("Progress: %d%%\r" % progress)
                sys.stdout.flush()
                prev_progress = progress

        self.pg.flush_log()
Exemplo n.º 3
0
def main(argv):
    parse_cmdline(argv)

    print "Flood fill"

    fp = FieldColorPalette(num_colors=6)
    pg = PlayGround(12, 12, fp)
    pg.fill_random()
    pg.plot()

    p = pg.copy()
    solver1 = Solver(p, RandomStrategy(p))
    sol1 = solver1.solve()

    p = pg.copy()
    solver2 = Solver(p, MostPeripheralsStrategy(p))
    sol2 = solver2.solve()

    p = pg.copy()
    solver3 = Solver(p, MostUnfloodedColorStrategy(p))
    sol3 = solver3.solve()

    print sol1
    print sol2
    print sol3

    if 'iterations' in config['args']:
        steps = config['args'].iterations

    print "Giving Random strategy %s tries" % steps

    bs = sol1
    for i in range(steps):
        p = pg.copy()
        solver1 = Solver(p, RandomStrategy(p))
        sol = solver1.solve()
        if sol.better_than(bs):
            bs = sol
            print bs
Exemplo n.º 4
0
def test3():
  """
  field 5x10
  four players
  six barriers
  :return:
  """
  pg = PlayGround()
  pg.clear()
  pg.add_field(5,10,[(3,1), (3,2), (2,2), (1,6), (2,6), (3,6)])
  pg.add_player((4,3), (1,1), 'A')
  pg.add_player((1,1), (4,3), 'B')
  pg.add_player((1,7), (4,0), 'C')
  pg.add_player((4,8), (0,0), 'D')
  str_data = str(pg)
  str_data+='\nTest 3\nField 5x10\n'
  str_data+='Player A: start_position E3, destination_position B1\n'
  str_data+='Player B: start_position B1, destination_position E3\n'
  str_data+='Player C: start_position B7, destination_position E0\n'
  str_data+='Player D: start_position E8, destination_position A0\n'
  str_data+='Bariers: C2, D1, D2\n'
  print(str_data)
  for step in pg.play_step():
    sys.stdin.readline()
    pg.clear()
    print(step)
  print("Test 3 complete.\n")
  sys.stdin.readline()
Exemplo n.º 5
0
def test1():
  """
  field 6x6
  four players
  :return:
  """
  pg = PlayGround()
  pg.clear()
  pg.add_field(6, 6)
  pg.add_player((0,0), (5,5), 'A')
  pg.add_player((5,5), (0,0), 'B')
  pg.add_player((0,5), (5,0), 'C')
  pg.add_player((5,0), (0,5), 'D')
  str_data = str(pg)
  str_data+='\nTest 1\nField 6x6\n'
  str_data+='Player A: start_position A0, destination_position F5\n'
  str_data+='Player B: start_position F5, destination_position A0\n'
  str_data+='Player A: start_position A5, destination_position F0\n'
  str_data+='Player B: start_position F0, destination_position A5\n'
  print(str_data)
  for step in pg.play_step():
    sys.stdin.readline()
    pg.clear()
    print(step)
  print("Test 1 complete.\n")
  sys.stdin.readline()
Exemplo n.º 6
0
def test2():
  """
  field 5x5
  two players
  three barriers
  :return:
  """
  pg = PlayGround()
  pg.clear()
  pg.add_field(5,5,[(3,1), (3,2), (2,2)])
  pg.add_player((4,3), (1,1), 'A')
  pg.add_player((1,1), (4,3), 'B')
  str_data = str(pg)
  str_data+='\nTest 2\nField 5x5\n'
  str_data+='Player A: start_position E3, destination_position B1\n'
  str_data+='Player B: start_position B1, destination_position E3\n'
  str_data+='Bariers: C2, D1, D2\n'
  print(str_data)
  for step in pg.play_step():
    sys.stdin.readline()
    pg.clear()
    print(step)
  print("Test 2 complete.\n")
  sys.stdin.readline()
Exemplo n.º 7
0
import pygame
from playground import PlayGround
from consts import *

pygame.init()
screen = pygame.display.set_mode(SCREEN_SIZE)

pg = PlayGround(SCREEN_SIZE)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
    for row in pg.getCells():
        for cell in row:
            color = cell.getColor()
            rect  = cell.rectData()
            pygame.draw.rect(screen, color, rect)
    pg.nextGen()
    pygame.display.update()
    pygame.time.delay(DELAY)