def create_game(request): if 'player_guesses' not in request.data or not isinstance( request.data['player_guesses'], bool): return Response({'error': ERROR_MESSAGE('player_guesses')}, status=status.HTTP_400_BAD_REQUEST) elif 'digits' not in request.data or not isinstance(request.data['digits'], int) or \ request.data['digits'] < 0 or request.data['digits'] > 10: return Response({'error': ERROR_MESSAGE('digits')}, status=status.HTTP_400_BAD_REQUEST) key = sha512(str(random()).encode('utf-8')).hexdigest() game = Game(key=key, player_guesses=request.data['player_guesses']) game.save() if request.data['player_guesses']: digits = int(request.data['digits']) secret_number = ''.join( choice(list(permutations('0123456789', digits)))) player_game = PlayerGame(game=game, secret_number=secret_number) player_game.save() elif not request.data['player_guesses']: digits = int(request.data['digits']) available_numbers = list(permutations("0123456789", digits)) set_cache(key, 'available_numbers', available_numbers) serializer = GameSerializer(game) return Response(serializer.data)
def matchmake(user, with_bot=False, bot_difficulty=BOT_EASY, planets_count=9): """ @type user User """ # find an opponent if with_bot: opponent = find_bot(bot_difficulty) else: opponent = find_opponent() left_star = StarSystem() left_star.planets_count = planets_count left_star.player = user left_star.save() create_planet_system(left_star, planets_count) right_star = StarSystem() right_star.planets_count = planets_count right_star.player = opponent right_star.save() create_planet_system(right_star, planets_count) game = Game() game.left_star = left_star game.right_star = right_star game.save() return game
def create(self, request): print(request.data) # check that data are OK for user in request.data['users']: if not all(k in user.keys() for k in ('id', 'score')): return Response("", status=status.HTTP_400_BAD_REQUEST) # create new Game to store current User data new_game = Game() new_game.save() game_id = new_game.pk for user_dict in request.data['users']: user_id = user_dict.pop('id') user_dict['user'] = user_id user_dict['game'] = game_id print(request.data['users']) serializer = MembershipSerializer(data=request.data['users'], many=True) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) print(serializer.errors) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def CreateNewGameRoomAPI(req, GameTypeID): # VALID if req.method == 'POST': # user_port = req.POST['port'] game_type = GameType.objects.get(pk=GameTypeID) new_game = Game(game_type=game_type) player = req.user new_game.save() join = JoinGame(player=player, game=new_game) join.save() # new_game.players.add(join) return HttpResponse(new_game.id, status=200)
def import_csv(request): with open('backend/resources/games.csv', 'r') as csvFile: reader = csv.reader(csvFile) for row in reader: print(row[2]) game = Game() game.title = row[2] game.min_players = int(row[3]) game.max_players = int(row[4]) game.id_game = row[1] game.time = int(row[5]) game.popularity = row[6] game.save() csvFile.close() return HttpResponse("OK")
def add_game(request): title = request.GET.get("title") if title is None or title == "": error_json = {'result': 'failure', 'message': 'Invalid Name'} return JsonResponse(data=error_json) if len(title) > 50: error_json = {'result': 'failure', 'message': 'Too long title'} return JsonResponse(data=error_json) same_titles = Game.objects.filter(title=title) if len(same_titles) > 0: same_game = same_titles.first() id_game = same_game.id_game else: maxi = Game.objects.latest('id_game') id_game = maxi.id_game + 1 base_game_title = request.GET.get('base_game_title') id_base_game = None if base_game_title is not None: base_games = Game.objects.filter(title=base_game_title) if len(base_games) > 0: base_game = base_games.first() id_base_game = base_game.id_game else: id_base_game = None description = request.GET.get("description", "") photo = request.GET.get("photo") game = Game() game.title = title game.description = description game.photo = photo game.id_game = id_game game.id_base_game = id_base_game game.save() valid_json = {'result': 'success', 'message': 'Game added to the system'} return JsonResponse(valid_json)