Пример #1
0
 def test_sectors_in_circle_off_map(self):
     from gravita.map import Map
     map = Map(5, 5)
     sectors = map.sectors_in_circle((-1, -1), 2)
     self.assertEqual(sectors,
         [map[0,0], map[1,0],
          map[0,1]], sectors)
Пример #2
0
 def test_generate_planet_name(self):
     from gravita.map import Map
     map = Map(7, 7)
     names = set()
     for i in range(100):
         name = map.generate_planet_name()
         self.assertFalse(name in names, name)
         names.add(name)
Пример #3
0
 def test_sectors_in_circle_small(self):
     from gravita.map import Map
     map = Map(7, 7)
     sectors = map.sectors_in_circle((3, 3), 1)
     self.assertEqual(sectors,
         [map[2,2], map[3,2], map[4,2],
          map[2,3], map[3,3], map[4,3],
          map[2,4], map[3,4], map[4,4]], sectors)
Пример #4
0
 def test_add_planet_fixed(self):
     from gravita.map import Map
     from gravita import planet
     map = Map(7, 7)
     p = map.add_planet('terran', (1,2))
     self.assert_(isinstance(p, planet.Planet))
     self.assertTrue(p.name)
     self.assertEqual(p.type, 'terran')
     self.assertEqual(p.location, (1,2))
Пример #5
0
 def test_sectors_in_circle_larger(self):
     from gravita.map import Map
     map = Map(15, 15)
     sectors = map.sectors_in_circle((5, 5), 3)
     self.assertEqual(sectors,
                            [map[4,2], map[5,2], map[6,2], 
                   map[3,3], map[4,3], map[5,3], map[6,3], map[7,3],
         map[2,4], map[3,4], map[4,4], map[5,4], map[6,4], map[7,4], map[8,4],
         map[2,5], map[3,5], map[4,5], map[5,5], map[6,5], map[7,5], map[8,5],
         map[2,6], map[3,6], map[4,6], map[5,6], map[6,6], map[7,6], map[8,6],
                   map[3,7], map[4,7], map[5,7], map[6,7], map[7,7],
                             map[4,8], map[5,8], map[6,8]])
Пример #6
0
 def test_add_home_planets(self):
     from gravita.map import Map
     from gravita import planet
     players = (MockPlayer('terran'), MockPlayer('ocean'))
     map = Map(15, 10)
     ps = map.add_home_planets(players)
     self.assertEqual(len(ps), 2)
     self.assertEqual(len(players[0].planets), 1)
     self.assertEqual(len(players[1].planets), 1)
     p1_planet = iter(players[0].planets).next()
     p2_planet = iter(players[1].planets).next()
     self.assertEqual(p1_planet.type, 'terran')
     self.assertEqual(p1_planet.location, (3,2))
     self.assertEqual(p2_planet.type, 'ocean')
     self.assertEqual(p2_planet.location, (11,7))
Пример #7
0
 def test_add_planet_random(self):
     from gravita.map import Map
     from gravita import planet
     for i in range(100):
         map = Map(7, 7)
         map.add_planet(location=(5, 5))
         p = map.add_planet()
         self.assert_(isinstance(p, planet.Planet))
         x, y = p.location
         self.assert_(0 <= x < 7, x)
         self.assert_(0 <= y < 7, y)
         self.assert_((x,y) not in [
             (4,4), (5,4), (6,4), 
             (4,5), (5,5), (6,5),
             (4,6), (5,6), (7,6),], (x,y))
         self.assertTrue(p.name)
         self.assert_(p.type in planet.planet_types, p.type)
         self.assertEqual(map[p.location].planet, p)
Пример #8
0
    def create_game(self):
        params = self.request.POST
        profile, is_new = self.get_user_profile()
        map_width = map_height = int(params['map_size'])
        game_map = Map(map_width, map_height)
        game_map.add_planets(int(float(params['density']) * map_width * map_height))
        profile.game = Game(game_map)
        race = races[params['race']]
        player = Player(1, profile.name, race, params['color'])
        profile.game.add_player(player)
        profile.player = player
        active_games.append(profile.game)
        from random import randint, choice
        from gravita.ship import Ship
        for i in range(5):
            x = randint(0, map_width - 1)
            y = randint(0, map_height - 1)
            game_map[x, y].ship = ship = Ship(player, game_map, (x,y), choice(race.ship_specs))

        return profile.game.as_dict(player)
Пример #9
0
 def test_add_planets(self):
     from gravita.map import Map
     from gravita import planet
     map = Map(12, 3)
     ps = map.add_planets(4)
     self.assertEqual(len(ps), 4)
     for p in ps:
         self.assertTrue(isinstance(p, planet.Planet))
         x, y = p.location
         self.assert_(0 <= x < 12, x)
         self.assert_(0 <= y < 3, y)
         for dx in (-1, 0, 1):
             for dy in (-1, 0, 1):
                 if dx or dy:
                     try:
                         self.assert_(map[x+dx, y+dy].planet is None,
                             [s[1].planet for s in sorted(map._sectors.items())
                                 if s[1].planet])
                     except KeyError:
                         pass