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)
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)" )
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)" )
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)
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)
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)
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) """
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)
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])
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)
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)
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])
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)
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)
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)
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)
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))