Пример #1
0
 def test_bound(self):
     env = Environment(3, 0, 1)
     field = Honeycomb(3, Player(PlayerType.USER, env), env)
     self.assertTrue(field.is_in_bound(1, 1))
     self.assertFalse(field.is_in_bound(4, 1))
     self.assertFalse(field.is_in_bound(-1, 1))
     self.assertFalse(field.is_in_bound(4, 6))
Пример #2
0
 def test_player_have_ship_on_hands(self):
     env = Environment(3, 0, 1)
     env.add_player(PlayerType.USER, 'user')
     self.assertFalse(env.players['user'].is_ship_in_hand(2))
     self.assertTrue(env.players['user'].is_ship_in_hand(1))
     env.players['user'].field.place_ship_on_field([(1, 0)])
     self.assertFalse(env.players['user'].is_ship_in_hand(1))
Пример #3
0
 def test_player_defeated(self):
     env = Environment(3, 0, 1)
     env.add_player(PlayerType.USER, 'user')
     env.players['user'].field.place_ship_on_field([(1, 0)])
     self.assertFalse(env.players['user'].is_player_defeated())
     env.players['user'].field.fire_cell(1, 0, Player(PlayerType.BOT, env))
     self.assertTrue(env.players['user'].is_player_defeated())
Пример #4
0
 def test_fire_destroyed(self):
     env = Environment(5, 0, 1)
     env.add_player(PlayerType.USER, 'user')
     env.players['user'].field.place_ship_on_field([(0, 1)])
     state = env.players['user'].field.fire_cell(
         0, 1, Player(PlayerType.BOT, env))
     self.assertTrue(env.players['user'].is_player_defeated())
     self.assertEqual(FireResult.DESTROYED, state)
Пример #5
0
 def test_fire_twice(self):
     env = Environment(5, 0, 1)
     env.add_player(PlayerType.USER, 'user')
     state = env.players['user'].field.fire_cell(
         0, 1, Player(PlayerType.BOT, env))
     self.assertEqual(state, FireResult.MISSED)
     state = env.players['user'].field.fire_cell(
         0, 1, Player(PlayerType.BOT, env))
     self.assertEqual(state, FireResult.UNABLE)
Пример #6
0
 def test_place_corner_ship_big_field(self):
     env = Environment(6, 0, 4)
     env.add_player(PlayerType.USER, 'user')
     self.assertEqual(
         env.players['user'].field.place_ship_on_field([(0, 0)]),
         PlacementResult.SUCCESS)
     self.assertEqual(
         env.players['user'].field.place_ship_on_field([(0, 5)]),
         PlacementResult.UNABLE)
Пример #7
0
    def test_fire_out_of_field(self):
        env = Environment(5, 0, 1)
        env.add_player(PlayerType.USER, 'user')
        state = env.players['user'].field.fire_cell(
            0, 6, Player(PlayerType.BOT, env))
        self.assertEqual(state, FireResult.UNABLE)

        if __name__ == '__main__':
            unittest.main()
Пример #8
0
 def test_place_2_ship(self):
     env = Environment(5, 0, 2)
     env.add_player(PlayerType.USER, 'user')
     env.players['user'].field.field[1][1].state = CellState.SHIP
     self.assertNotEqual(
         env.players['user'].field.place_ship_on_field([(0, 0), (0, 1)]),
         PlacementResult.SUCCESS)
     self.assertEqual(
         env.players['user'].field.place_ship_on_field([(1, 3), (2, 3)]),
         PlacementResult.SUCCESS)
Пример #9
0
    def test_should_return_input_grids(self):
        expected = [
            [0, 1],
            [1, 0],
        ]
        environment = Environment(expected)

        grids = environment.grids()

        self.assertEqual(grids, expected)
Пример #10
0
def create_snake_environment():
    """ Create a new Snake environment. """

    from game.environment import Environment, Environment2D

    global game2D
    if game2D:
        return Environment2D(level_map=[
            "#############", "#...........#", "#...........#", "#...........#",
            "#...........#", "#...........#", "#.....S.....#", "#...........#",
            "#...........#", "#...........#", "#...........#", "#...........#",
            "#############"
        ])
    else:
        return Environment()
Пример #11
0
 def cbHs(box):
     granularity = box['granularity']
     self.environment = Environment(granularity, self.clock)
     self.environment.setNetwork(self)
     self.storeHandshakeResponse(box['identifier'], granularity)
     return self.environment
Пример #12
0
 def setUp(self):
     self.environment = Environment()
Пример #13
0
        return self.environment

    def perspective_getTeam(self):
        return self.player.team

    def perspective_switchTeams(self):
        return self.environment.switchTeams(self.player)

    #TODO could we add a perspective_getPosition and perspective_getIRTargetStatus here
    #TODO otherwise, how do we do remote call on a client?


pygame.init()
pygame.display.set_mode((800, 480), pygame.DOUBLEBUF)
realm = GameRealm()
env = Environment()
view = Window(env)
realm.environment = env
view.start('Server')
LoopingCall(lambda: pygame.event.pump()).start(0.03)

controller = ServerController(realm, view)
controller.go()

portal = portal.Portal(realm, [checkers.AllowAnonymousAccess()])

reactor.listenTCP(8800, pb.PBServerFactory(portal))

from twisted.protocols.basic import LineReceiver
from twisted.internet import protocol
import cPickle
Пример #14
0
 def test_fleet_placement(self):
     env = Environment(3, 0, 1)
     env.add_player(PlayerType.USER, 'user')
     self.assertFalse(env.players['user'].is_fleet_placed())
     env.players['user'].field.place_ship_on_field([(1, 0)])
     self.assertTrue(env.players['user'].is_fleet_placed())
Пример #15
0
 def test_bot_init_diff_wrong(self):
     env = Environment(3, 100, 2)
     env.add_player(PlayerType.BOT, 'bot')
     self.assertEqual(env.players['bot'].AI.diff, env.diff)
     self.assertEqual(env.diff, 0)
Пример #16
0
 def test_delete_from_fleet(self):
     env = Environment(3, 0, 1)
     env.add_player(PlayerType.USER, 'user')
     env.players['user'].move_ship_to_fleet(1)
     env.players['user'].delete_cell_from_fleet()
     self.assertEqual(0, env.players['user'].fleet)
Пример #17
0
 def test_move_to_fleet(self):
     env = Environment(3, 0, 1)
     env.add_player(PlayerType.USER, 'user')
     env.players['user'].move_ship_to_fleet(1)
     self.assertEqual(env.players['user'].fleet, 1)
     self.assertNotIn(1, env.players['user'].hand)