Exemple #1
0
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)
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
    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)
Exemple #5
0
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)
Exemple #6
0
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")
Exemple #7
0
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)