Как и другие респонденты, я не уверен, что знаю, что вы подразумеваете под упрощением . Я так понимаю, вам не нравится повторение в
bluePoints < BOn // 2 + 1 and redPoints < BOn // 2 + 1
Если в этом проблема, вы можете использовать вспомогательную переменную для хранения результата повторного вычисления
limit = BOn // 2 + 1
while bluePoints < limit and redPoints < limit:
Есть пара способов уменьшить логические условия в предложении while
с двух до одного (на ум приходят max()
и all()
), но я не могу придумать тот, который является значительным улучшением and
, Булевы операторы в Python являются операторами быстрого доступа, поэтому второе условие в любом случае будет проверяться только в том случае, если первое условие ложно.