示例#1
0
def create_ai_game_service(request):
    game = Game()
    game.cat_user = request.user

    if User.objects.filter(username="******").exists():
        game.mouse_user = User.objects.filter(username="******").first()

    else:
        game.mouse_user = User.objects.create_user('Bot', '', '0i80t81d16s810')

    game.save()
    context_dict = {}

    context_dict['game'] = game

    return select_game_service(request, game_id=game.id)
示例#2
0
    def test11(self):
        """ Check if __str__ function is available.
            If Game created (but not active) only cat information is printed
            If game is actived then cat and mouse position are given
            [X] vs [ ] report if it is the cat/mouse player turn.
        """
        game = Game(id=0, cat_user=self.users[0])
        self.assertEqual(str(game), "(0, Created)\tCat [X]"
                                    " cat_user_test(0, 2, 4, 6)")

        game.mouse_user = self.users[1]
        game.status = GameStatus.ACTIVE
        game.save()
        self.assertEqual(
            str(game),
            "(0, Active)\tCat [X] cat_user_test(0, 2, 4, 6)"
            " --- Mouse [ ] mouse_user_test(59)")
        game.cat_turn = False
        self.assertEqual(
            str(game),
            "(0, Active)\tCat [ ] "
            "cat_user_test(0, 2, 4, 6) --- Mouse [X] mouse_user_test(59)")

        game.status = GameStatus.FINISHED
        game.save()
        self.assertEqual(
            str(game),
            "(0, Finished)\tCat [ ]"
            " cat_user_test(0, 2, 4, 6) --- Mouse [X] mouse_user_test(59)"
        )
示例#3
0
    def test11(self):
        """ Conversiones a string """
        game = Game(id=0, cat_user=self.users[0])
        self.assertEqual(str(game),
                         "(0, Created)\tCat [X] cat_user_test(0, 2, 4, 6)")

        game.mouse_user = self.users[1]
        game.status = GameStatus.ACTIVE
        game.save()
        self.assertEqual(
            str(game),
            "(0, Active)\tCat [X] cat_user_test(0, 2, 4, 6) --- Mouse [ ] mouse_user_test(59)"
        )

        game.cat_turn = False
        self.assertEqual(
            str(game),
            "(0, Active)\tCat [ ] cat_user_test(0, 2, 4, 6) --- Mouse [X] mouse_user_test(59)"
        )

        game.status = GameStatus.FINISHED
        game.save()
        self.assertEqual(
            str(game),
            "(0, Finished)\tCat [ ] cat_user_test(0, 2, 4, 6) --- Mouse [X] mouse_user_test(59)"
        )
示例#4
0
 def test3(self):
     """ Optional """
     """ Transición de creado a activo al añadir el segundo jugador """
     game = Game(cat_user=self.users[0])
     game.save()
     self.assertEqual(game.status, GameStatus.CREATED)
     game.mouse_user = self.users[1]
     game.save()
     self.assertEqual(game.status, GameStatus.ACTIVE)
示例#5
0
 def test3(self):
     """ Comprobar que el juego se termina correctamente cuando el ratón es encerrado en una esquina """
     game = Game(cat_user=self.users[0])
     game.full_clean()
     game.mouse_user = self.users[1]
     game.cat2 = 54
     game.mouse = 63
     game.save()
     self.assertEqual(game.status, GameStatus.FINISHED)
示例#6
0
 def test3(self):
     """ OPTIONAL: If mouse_user is added to a CREATED game
     then sttus became ACTIVE"""
     game = Game(cat_user=self.users[0])
     game.save()
     self.assertEqual(game.status, GameStatus.CREATED)
     game.mouse_user = self.users[1]
     game.save()
     self.assertEqual(game.status, GameStatus.ACTIVE)
示例#7
0
 def test5(self):
     """ Comprobar que el juego no se termina cuando el ratón tiene aún una salida"""
     game = Game(cat_user=self.users[0])
     game.full_clean()
     game.mouse_user = self.users[1]
     game.cat1 = 38
     game.cat2 = 52
     game.cat3 = 54
     game.mouse = 45
     game.save()
     self.assertEqual(game.status, GameStatus.ACTIVE)
    def test1(self):
        def get_game_id(game):
            return game.id

        """ Comprobar si existe un usuario con id=10 y si no existe crearlo """
        try:
            user = User.objects.get(id=10)
        except User.DoesNotExist:
            user = User.objects.create_user(username="******",
                                            password="******",
                                            id=10)
            self.users.append(user)
        """ Comprobar si existe un usuario con id=11 y si no existe crearlo """
        try:
            user = User.objects.get(id=11)
        except User.DoesNotExist:
            user = User.objects.create_user(username="******",
                                            password="******",
                                            id=11)
            self.users.append(user)
        """ Crear  un  juego  y  asignarselo  al  usuario  con  id=10 """
        game = Game(cat_user=User.objects.get(id=10))
        #game.full_clean()
        game.save()
        """ Buscar todos los juegos con un solo usuario asignado """
        print(game)
        oneplayergames = []
        for item in Game.objects.all():
            if item.cat_user != None:
                if item.mouse_user == None:
                    oneplayergames.append(item)
            else:
                if item.mouse_user != None:
                    oneplayergames.append(item)
        print(oneplayergames)
        """ Unir al usuario con id=11 al juego con menor id encontrado en el paso anterior y comenzar la partida """
        oneplayergames.sort(key=get_game_id)
        game = oneplayergames[0]
        game.mouse_user = User.objects.get(id=11)
        game.save()
        print(game)
        """ En la partida seleccionada, mover el segundo gato pasandolo de la posicion 2a la 11 """
        Move.objects.create(game=game,
                            player=User.objects.get(id=10),
                            origin=2,
                            target=11)
        print(game)
        """ En la partida seleccionada, mover el raton de la posicion 59 a la 52 """
        Move.objects.create(game=game,
                            player=User.objects.get(id=11),
                            origin=59,
                            target=52)
        print(game)
        """
示例#9
0
 def test7(self):
     """ Comprobar que el juego no se termina cuando el ratón ha superado a la mitad de los gatos"""
     game = Game(cat_user=self.users[0])
     game.full_clean()
     game.mouse_user = self.users[1]
     game.cat1 = 34
     game.cat2 = 38
     game.cat3 = 52
     game.cat4 = 54
     game.mouse = 45
     game.save()
     self.assertEqual(game.status, GameStatus.ACTIVE)
示例#10
0
 def test1(self):
     """ Comprobar que el juego se encuentra activo al empezar """
     game = Game(cat_user=self.users[0])
     game.full_clean()
     game.save()
     self.assertIsNone(game.mouse_user)
     self.assertTrue(game.cat_turn)
     self.assertEqual(game.status, GameStatus.CREATED)
     game.mouse_user = self.users[1]
     game.save()
     self.assertEqual(game.status, GameStatus.ACTIVE)
     self.assertEqual(self.get_array_positions(game), [0, 2, 4, 6, 59])
示例#11
0
 def test8(self):
     """ Comprobar que el juego se termina correctamente cuando el ratón ha superado a los gatos"""
     game = Game(cat_user=self.users[0])
     game.full_clean()
     game.mouse_user = self.users[1]
     game.cat1 = 36
     game.cat2 = 38
     game.cat3 = 52
     game.cat4 = 54
     game.mouse = 20
     game.save()
     self.assertEqual(game.status, GameStatus.FINISHED)
示例#12
0
 def test6(self):
     """ Comprobar que el juego se termina correctamente cuando el ratón está completamente rodeado"""
     game = Game(cat_user=self.users[0])
     game.full_clean()
     game.mouse_user = self.users[1]
     game.cat1 = 36
     game.cat2 = 38
     game.cat3 = 52
     game.cat4 = 54
     game.mouse = 45
     game.save()
     self.assertEqual(game.status, GameStatus.FINISHED)
示例#13
0
 def test2(self):
     """ Comprobar que el juego se encuentra activo tras una serie de movimientos """
     game = Game(cat_user=self.users[0])
     game.full_clean()
     game.mouse_user = self.users[1]
     game.cat2 += 9
     game.cat3 += 9
     game.cat4 += 9
     game.mouse -= 9
     game.save()
     self.assertEqual(game.status, GameStatus.ACTIVE)
     self.assertEqual(self.get_array_positions(game),
                      [0, 2 + 9, 4 + 9, 6 + 9, 59 - 9])
示例#14
0
def test_query():

    # Vemos is existe un usuario con id = 10 y, si no, lo creamos
    user10 = User.objects.get_or_create(id=10)[0]
    if user10.username == "":
        user10.username = '******'
    user10.save()
    # Vemos is existe un usuario con id = 11 y, si no, lo creamos
    user11 = User.objects.get_or_create(id=11)[0]
    if user11.username == "":
        user11.username = '******'
    user11.save()

    game = Game(cat_user=user10)
    game.full_clean()
    game.save()

    ids = []

    games_only_one_user = Game.objects.filter(status=GameStatus.CREATED)
    print(" ---- Games with only one user ----")
    for g in games_only_one_user:
        ids.append(g.id)
        print(g)

    print(" ---- Añadimos el Ratón ----")
    ids.sort()
    game = Game.objects.filter(id=ids[0])[0]
    game.mouse_user = user11
    game.full_clean()
    game.save()
    print(game)

    print(" ---- Movemos el cat2 a la posición 11 ----")
    move = Move.objects.create(game=game,
                               player=user10,
                               origin=game.cat2,
                               target=11)
    game.full_clean()
    game.save()
    print(game)

    print(" ---- Movemos el Mouse a la posición 52 ----")
    move = Move.objects.create(game=game,
                               player=user11,
                               origin=game.mouse,
                               target=52)
    game.full_clean()
    game.save()
    print(game)
示例#15
0
    def test0(self):
        """ Validación de la actualización del juego al ganar el gato"""
        game = Game(cat_user=self.user1)
        game.save()

        game.cat1 = 41
        game.cat2 = 50
        game.mouse = 48
        game.mouse_user = self.user2
        game.save()

        move = Move(origin=50, target=57, player=self.user1, game=game)
        move.save()

        self.assertEqual(game.status, GameStatus.FINISHED)
示例#16
0
    def test1(self):
        """ Validación de la actualización del juego al ganar el raton"""
        game = Game(cat_user=self.user1)
        game.save()

        game.cat1 = 57
        game.cat2 = 59
        game.cat3 = 61
        game.cat4 = 63
        game.mouse = 18
        game.mouse_user = self.user2
        game.cat_turn = False
        game.save()

        move = Move(origin=18, target=11, player=self.user2, game=game)
        move.save()

        self.assertEqual(game.status, GameStatus.FINISHED)
示例#17
0
    user11.save()
    print("User with id=11 didn't exist. I had to create it.")

# Create a game for the user with id 10
game = Game(cat_user=user10)
game.save()

# Look for every games with only one user
game_aux = Game.objects.filter(mouse_user=None)
for g in game_aux:
    if g.id < game.id:
        game = g
    print(g)

# User11 is the mouse in the game with smaller id
game.mouse_user = user11
game.save()

# Move cat2 from position 2 to 11
game.cat2 = 11
game.save()
# Announce it
print("We moved cat2 to 11 position")
print(game)

# Move mouse from position 59 to 52
game.mouse = 52
game.save()
# Announce it
print("We moved mouse from position 59 to 52")
print(game)
示例#18
0
from datamodel.models import Game, Move
from django.contrib.auth.models import User

user_10 = User.objects.get_or_create(id=10)[0]
user_10.username = "******"
user_10.save()

user_11 = User.objects.get_or_create(id=11)[0]
user_11.username = "******"
user_11.save()

game = Game(cat_user=user_10)
game.save()

games_one_player = Game.objects.filter(mouse_user=None).order_by("id")
print("Partidas con un único jugador:")
for game_one_player in games_one_player:
    print(" -> " + str(game_one_player))

game = games_one_player[0]
game.mouse_user = user_11
game.save()
print("Partida comenzada - " + str(game))

move = Move(game=game, player=user_10, origin=2, target=11)
move.save()
print("Gato movido a 11 - " + str(game))

move = Move(game=game, player=user_11, origin=59, target=52)
move.save()
print("Ratón movido a 52 - " + str(game))