Расчет пули

  • Гора каждого игрока умножается на 10 и делится на количество участников игры, включая и самого хозяина горы.
  • Частное от этого деления является проигрышем хозяина горы каждому игроку в отдельности и прибавляется к записям вистов на него всеми остальными игроками. Так поступают с каждой горой
  • потом сравнивают количество вистов, записанных каждым друг на друга.
  • Итоговый выигрыш, разумеется, должен равняться итоговому проигрышу, т.к. преферанс относится к играм с нулевым результатом, т.е. проигрыш одних равняется выигрышу других.

In [1]:
from calc import Total, PointHolder

In [2]:
score = (
    {'points': 12, 'fine': 8, 'whists': [12, 4, 2]},
    {'points': 6, 'fine': 4, 'whists': [4, 0, 24]},
    {'points': 10, 'fine': 4, 'whists': [8, 0, 4]},
    {'points': 4, 'fine': 0, 'whists': [0, 12, 8]},
)

total = Total([PointHolder(i + 1, **score[i]) for i in range(len(score))])
total.calculate()


Out[2]:
[Decimal('-6'), Decimal('-20'), Decimal('16'), Decimal('10')]

In [2]: