Skip to content

Instantly share code, notes, and snippets.

@paulmouzas
Created October 21, 2014 14:19
Show Gist options
  • Save paulmouzas/d85322f4d856b17e1a61 to your computer and use it in GitHub Desktop.
Save paulmouzas/d85322f4d856b17e1a61 to your computer and use it in GitHub Desktop.
from sys import argv
import random
city_map = {}
class City(object):
def __init__(self, name, aliens, neighbors={}):
self.name = name
# aliens in the city will be stored in an array
self.aliens = []
city_map[self.name] = self
self.neighbors = neighbors
def update(self):
if len(self.aliens) >= 2:
self.destroy()
def destroy(self):
# when a city is destroyed, it is removed
# from the city map
del(city_map[self.name])
def __str__(self):
return self.name
def move_aliens(self):
for alien in self.move_aliens:
alien.move()
def update(self):
if len(self.aliens) >= 2:
self.destroy
self.move_aliens
class Alien(object):
alien_number = 1
def __init__(self, name):
self.name = name + str(Alien.alien_number)
Alien.alien_number += 1
self.move_count = 0
self.move()
def move(self):
self.move_count += 1
city_name = random.choice(city_map.keys())
city_map[city_name].aliens.append(self)
def __str__(self):
return self.name
def create_aliens(n):
alien_name = 'alien '
aliens = []
for i in range(1, n+1):
new_alien = Alien(alien_name)
return aliens
with open('world_map_medium.txt', 'r') as f:
for line in f.readlines():
data = line.split()
city_name = data[0]
neighbors = {}
for direction_neighbor in data[1:]:
direction, neighbor = direction_neighbor.split('=')
neighbors[direction] = neighbor
city_map[city_name] = City(city_name, neighbors)
create_aliens(8000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment