Выше
LXSTVAYNE тебе хороший совет дал, а я напишу кодом.
Описываешь базовый класс и наследуешься от него:
class WordComparator:
def compare(self, word1: str, word2: str) -> int:
"Вернет -1 если первое слово лучше, 1 если второе слово лучше, 0 если они одинаково хороши"
raise NotImplementedError #реализации у нас нет
class LongestWordWins(WordComparator):
def compare(self, word1: str, word2: str) -> int:
l1, l2 = len(word1), len(word2)
if l1 > l2:
return -1
elif l1 < l2:
return 1
else:
return 0
class ShortestWordWins(WordComparator):
def compare(self, word1: str, word2: str) -> int:
l1, l2 = len(word1), len(word2)
if l1 > l2:
return 1
elif l1 < l2:
return -1
else:
return 0
Затем ты передаёшь в класс, реализующий игровую логику, экземпляр одного из двух классов, и обращаешься к его методу compare() когда тебе надо сравнить два слова.
Это называется паттерн "стратегия".