Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
SPV
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 10
#1

Обработка результатов теннисных матчей. - C++

19.10.2009, 21:43. Просмотров 1220. Ответов 0
Метки нет (Все метки)

Доброго времени суток. Вот такая дилемма, помогите с программкой обработки результатов теннисных матчей

В текстовом файле задан список участников теннисного турнира. Матчи проводятся по кубковой системе до 3 выигранных сетов одним из участников (3...5 сетов). Матч состоит из сетов, сет из геймов, а гейм - из розыгрышей мячей.

В матче побеждает тот, кто первым выиграет 3 сета. Сет состоит из геймов. Для победы в сете нужно выиграть 6 геймов (как минимум), но так, чтобы противник выиграл хотя бы на 2 гейма меньше. Если этого не получается и счет становится 6:6, проводится тайм-брейк. В итоге победный счет в сете может быть 6:0, 6:1, 6:2, 6:3, 6:4, 6:5, 7:0, 7:6. Если дело дойдет до 5-го сета, в нем тайм-брейк не проводится, а игра продолжается до разницы в 2 выигранных гейма (например, счет может быть 16:14).
Гейм подобен сету. Для победы в гейме нужно набрать минимум 4 очка, но так, чтобы у противника было хотя бы на 2 очка меньше. При этом за каждое очко в гейме набирается определенное количество баллов. Счет в неоконченном гейме может быть:
0/0, 15/0, 30/0, 40/0, 0/15, 15/15, 30/15, 40/15, 0/30, 15/30, 30/30, 40/30, 0/40, 15/40, 30/40, ровно (40/40), меньше, больше. После счета 40/40 принято называть не числа, а “ровно”, “меньше” и “больше” - с точки зрения подающего игрока.
В течение одного гейма все мячи подает один и тот же игрок. В следующем гейме подающий меняется. Кто подает первым, определяется розыгрышем одного мяча. В следующем сете начинает подавать тот игрок, который в предыдущем сете принимал последним, независимо от того, был гейм обычным или тайм-брейком. При розыгрыше 6 геймов в сете, независимо от счета, игроки меняются сторонами корта.
Правила тайм-брейка:
На тайм-брейке нужно набрать не меньше 7 очков (выиграть отдельных розыгрышей мяча), но так, чтобы у противника было хотя бы на 2 очка меньше. Первый игрок подает 1 раз, следующие 2 мяча подает соперник, затем 2 мяча опять 1-й игрок и так далее.
И в обычном гейме и на тайм-брейке существует опасность двойной ошибки (подача в сетку или в аут). Одиночная ошибка прощается, но за двойную очко начисляется сопернику.

Входные данные:
Файл содержит результаты каждого розыгрыша мяча всех матчей турнира, уже проведенных или еще незаконченных. Самый первый розыгрыш определяет, кто будет подавать первым. Затем начинаются розыгрыши геймов. Все содержимое файла - это наборы символов 1 (если мяч выиграл первый игрок пары) и 2 (если второй). Программа должна по шагам отображать счет каждого гейма и сета после каждого розыгрыша. Когда матч будет закончен, начинается новый матч, пока не закончатся входные данные. Пары игроков берутся из файла со списком участников (их количество - 2 в степени N). Если список участников закончится раньше, чем данные о розыгрышах, формируются новые пары из победителей первого тура и т.д. Когда останется 1 участник, остальные данные нужно отбросить.

Выходные данные:
Список завершенных матчей с результатами вида:
------------------------------------------------
|1/8 финала |
|Агасси - Сафин 6:4 2:6 6:7 3:6 |
|Куэртен - Крайчек 7:5 6:1 6:2 |
|... |
|Финал |
|Сафин - Эдберг 6:4 4:6 5:7 6:3 9:7 |
------------------------------------------------
|Победитель турнира: Сафин |
------------------------------------------------
Если данные закончатся раньше последняя строка: “турнир продолжается...”
Для заполнения файла розыгрышей лучше написать программу случайной генерации чисел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2009, 21:43     Обработка результатов теннисных матчей.
Посмотрите здесь:

В одном массиве записано количество мячей заброшенных баскетбольной командой в каждом из 15 матчей C++
C++ Анализ результатов
Вывести ФИО игрока с максимальным количеством матчей C++
занесение в файл результатов в С++ C++
C++ Определить количество выигранных и проигранных матчей
Определить количество выигранных и проигранных матчей C++
C++ Задача Таблица результатов
Разработка программы для расчета футбольных матчей C++
C++ Вывод результатов
Написать программу результатов матчей футбольных команд (Используя контейнер map) C++
Анализ спортивных результатов C++
C++ Визуализация результатов моделирования

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 02:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru