табло для игры в теннис - PullRequest
0 голосов
/ 03 декабря 2010

Нужна помощь в назначении теннисной программы на конец года:

В этой задаче вы предоставите интерфейс и дисплей для теннисного матча.Вот правила подсчета теннисного матча.

• Есть два игрока.Давайте назовем их Игроком 1 и Игроком 2.

• Игроки сплачивают мяч назад и вперед, и победитель каждого ралли зарабатывает очки.

• Игра представляет собой последовательность из нескольких очков.Каждый игрок начинает с 0 очков («Любить все»), и игрок выигрывает игру, который первым достигает следующего:
- у игрока 4 очка;и
- у игрока на 2 очка больше, чем у другого игрока.

• У британцев есть умная система нумерации очков в игре.
У игрока с 0 очками есть «Любовь».Если у них есть 1 балл, они называют это «15».2 балла - это «30»;3 очка, «40».Если оба игрока имеют 3 или более очков, они называют это «Двойка».

Если у обоих игроков есть 3 или более очков, но они не связаны, то у игрока, который находится впереди, говорят, что он имеет «Преимущество».

• Набор - это последовательность игр.
Победителем сета становится первый игрок, который достигнет:
6 игр, по крайней мере, на 2 игры больше, чем у другого игрока;или
- 7 игр.

В случае, когда оба игрока связаны по 6 игр за штуку, правила меняются в отношении того, как оцениваются 13-я и решающая игры.Эта игра называется тай-брейком, и первый игрок выигрывает, набирая 7 очков, на 2 балла больше, чем другой игрок.В тай-брейке британская нумерация не используется;вместо этого счет начинается с 0-0, а очки подсчитываются в возрастающей числовой последовательности.

• Совпадение - это последовательность наборов.В мужских соревнованиях победителем матча становится первый игрок, набравший 3 сета.У женщин победителем становится первый игрок, набравший 2 сета.

Завершите функцию points_str (p1, p2), которая, учитывая p1, количество очков для Игрока 1 и p2, количество очков дляИгрок 2, возвращает строку, которая представляет британский эквивалент счета Игрока 1.Если игрок 1 имеет преимущество, верните «Adv», а если игрок 2 имеет преимущество, верните «-».

Например,
• points_str (0, 2) должно возвращать «Love».
• points_str (3, 1) должно возвращать «40».
• points_str (3, 3) должен возвращать «Двойка».
• points_str (5, 4) должен возвращать «Adv».
• points_str (4, 5) должен возвращать «-».

Напишите программу на Python, которая имитирует теннисный матч.После запроса у пользователя имен каждого игрока и его пола, программа будет отображать табло после каждого сыгранного очка.

Чтобы определить, кто выиграет следующий балл, ваша программа вызовет импортированную функцию umpire ()который возвращает целое число 1, если игрок 1 выигрывает очко, или 2, если игрок 2 выигрывает.Вы можете предположить, что umpire () никогда не возвращает ничего, кроме целого числа 1 или целого числа 2.

Программа должна завершиться, когда один из игроков выиграет матч.Выведите итоговое табло и сообщение с описанием, кто победит.Следуйте формату вывода, как показано в примерах.

Ниже приведен мой код функции.Он только вычисляет победителя первого очка и отображает его.Как правильно зациклить, чтобы он вычислял победителя игры, устанавливал и совпадал в конце концов?

Пожалуйста, помогите мне :) Спасибо!

def points_str(p1, p2):
    p1setscore=0
    p2setscore=0           # setting starting parameters for scorekeeping for games and   
    p1gamescore=0
    p2gamescore=0

male_setmax=3
female_setmax=2        # setting parameters for maximum amount sets/games for male/female rules
gamemax=7


umpire()
if umpire()== 1:
        p1gamescore=p1gamescore+1

else:
        p2gamescore=p2gamescore+1

print p1gamescore, p2gamescore

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Напишите функцию, которая возвращает, если кто-то (необязательно, кто) выигрывает, и другую функцию, которая проверяет результаты игроков и возвращает строку ситуации с результатами. Проходите по кругу, набирая umpire(), накапливая очки, получая и выводя ситуацию, пока кто-то не выиграет (подсказка: while not winnerfunc(...):).

0 голосов
/ 03 декабря 2010

Думайте об этом в терминах состояний.Существует шесть состояний:

  1. нормальный (оценка [0123] - [0123], кроме 3-3)
  2. двойной раунд (оценка 3-3)
  3. игрок 1 победа (оценка 4- [012] или оценка 5-3)
  4. игрок 2 победа (оценка [012] -4 или оценка 3-5)
  5. двойное преимущество игрока 1 (оценка4-3)
  6. преимущество игрока 2 (счет 3-4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...