コード例 #1
0
ファイル: api.py プロジェクト: LightOfMooN/docker-book-v1
def move(index: int):
    game_state = json.loads(redis_client.get('game_state').decode())
    moved = False
    if not game_state['win']:
        values = game_state['values']
        empty_index = values.index('')
        movable_indexes = {empty_index - 4, empty_index + 4}
        if (empty_index + 1) % 4:
            movable_indexes.add(empty_index + 1)
        if (empty_index - 1) % 4 != 3:
            movable_indexes.add(empty_index - 1)
        if index in movable_indexes:
            values[empty_index] = values[index]
            values[index] = ''
            game_state['values'] = values
            moved = True
            game_state['move_count'] += 1
            if values[-1] == '':
                last_value = values[0]
                win = True
                for value in values[1:-1]:
                    if value < last_value:
                        win = False
                        break
                    last_value = value
                game_state['win'] = win
                if win and DB_ACTIVE:
                    result = Results(move_count=game_state['move_count'])
                    db.session.add(result)
                    db.session.commit()
    game_state = json.dumps(game_state)
    if moved:
        redis_client.set('game_state', game_state)
    return game_state
コード例 #2
0
ファイル: api.py プロジェクト: LightOfMooN/docker-book-v1
def new_game():
    values = [i + 1 for i in list(range(15))]
    random.shuffle(values)
    values.append('')
    game_state = json.dumps({
        'values': values,
        'move_count': 0,
        'win': False,
    })
    redis_client.set('game_state', game_state)
    return game_state
コード例 #3
0
def new_game():
    # Сформируем список из 15 значений (от 1 до 15)
    values = [i + 1 for i in list(range(15))]
    # Перемешаем значения списка в случайном порядке
    random.shuffle(values)
    # Добавим в конец списка значение, содержащее пустую строку
    values.append('')
    # Сформируем JSON-объект с данными о текущей игре
    game_state = json.dumps({
        'values': values,
        'move_count': 0,
        'win': False,
    })
    # Сохраним информацию в Redis
    redis_client.set('game_state', game_state)
    # Вернём информацию в ответ на запрос
    return game_state