Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 06.06.2020
Сообщений: 75

Лига фэнтези спорт

12.05.2022, 13:53. Показов 1059. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, с решением.

Класс Player: Класс имеет атрибуты name, offence, defence, при этом атрибуты offence и defence содержат очки за атакующие и защитные действия. атрибуты "нападение" и "защита" будут содержать очки за атакующие и защитные действия игроков.
Класс также имеет следующие методы:
- __init__: имеет три параметра name, offence и defence, и присваивает значение параметров одноименным атрибутам. параметры к одноименным атрибутам.
Допущения: name - String, а offense и defense - Integer ≥ 0.
- update_offense и update_defense имеют параметр amount. Это может быть положительным или отрицательным. Метод добавляет значение amount к offense или defense. Если сумма положительная, значение увеличивается, если отрицательная - уменьшается.
уменьшается. Если атрибут уменьшается на значение, которое больше, чем текущее значение атрибута, то значение чем текущее значение атрибута, значение атрибута устанавливается равным 0.
Предположение: amount - целое число.
- print_info не имеет параметра и сначала печатает имя игрока в строке, а затем значения нападения и защиты.

Класс Team: Класс имеет атрибуты team_name и players. team_name - строка, а players - набор.
Кроме того, класс имеет следующие методы:
- __init__: имеет параметр team_name. Присваивает значение параметра атрибуту team_name и инициализирует players атрибут как пустое множество.
Предположение: team_name - String.
- add_player: имеет параметр player и добавляет этого игрока в атрибут players. Возвращает количество элементов в players после добавления.
Предположение: player является объектом класса Player.
- offense_strength и defence_strength не имеют параметров, и каждый из них возвращает общий рейтинг силы атаки и защиты всех игроков команды (т.е. сумму соответствующих значений всех игроков команды).
- print_status не имеет параметра и печатает следующую информацию (точное представление может быть выбрано пользователем): Название команды, атакующая и оборонительная сила команды, а также список всех игроков команды. Для списка игроков следует вызвать метод print_info соответствующих игроков.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# TODO: Реализация класса Player
 
 
# TODO: Реализация класс Team
 
 
def find_best_team(teams: list) -> object:
    # exakter type-hint: find_best_team(teams: list[Team]) -> Team führt ohne Definition der Klasse
    # Team zu Syntax-Fehler
    best = teams[0]
    for team in teams:
        if team.defense_strength() + team.offense_strength() > best.defense_strength() + best.offense_strength():
            best = team
    return best
 
 
def fantasy_league() -> None:
    pass
   # TODO: реализация может быть активирована, как только будут реализованы классы Player и Team
    # реализованы. Иначе синтаксическая ошибка.
 
#     player_names = ['Alice', 'Bob', 'Eve', 'Max', 'Maria', 'Moritz', 'Lisa', 'Michael', 'Susi']
#     team_names = ['GPA-Warriors', 'TU-Robots', 'Python-Vikings', 'Algorithm-Eagles']
#
#     players = [Player(name, random.randrange(20), random.randrange(20)) for name in player_names]
#     teams = [Team(name) for name in team_names]
#     for team in teams:
#         selection = players.copy()
#         random.shuffle(selection)
#         for player in selection[:4]:
#             team.add_player(player)
#
#     for league_day in range(1, 5):
#         winner = find_best_team(teams)
#         print()
#         print(f'Winner round {league_day}:', winner.team_name)
#         winner.print_status()
#         for player in players:
#             player.update_defense(random.randrange(8))
#             player.update_offense(random.randrange(8))
 
 
def exercise3() -> None:
    pass
  # TODO: тестовые случаи могут быть активированы, как только классы Player и Team будут реализованы.
    # реализованы. Иначе синтаксическая ошибка.
    # player = Player('Test1', 10, 15)
    # player.print_info()
    #
    # player.update_defense(2)
    # player.update_offense(-2)
    # player.print_info()
    #
    # player.update_defense(-20)
    # player.update_offense(-20)
    # player.print_info()
    #
    # team = Team('GPA')
    # team.add_player(Player('P1', 3, 5))
    # team.add_player(Player('P2', 4, 2))
    # team.add_player(Player('P3', 7, 6))
    # team.add_player(Player('P4', 5, 4))
    # team.print_status()
 
def execute() -> None:
    
 
    exercise3()       # Testcases
    fantasy_league()  # Run program
 
 
if __name__ == '__main__':
    execute()
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2022, 13:53
Ответы с готовыми решениями:

Лига Чемпионов
Как Вы считаете,пройдут ли наши клубы в плей-оф лиги чемпионов? Или как всегда невезение,непруха,непогода и ... прочее нам помешают?

Лига чемпионов
Доброго времени суток. По каким каналам обычно транслируют матчи лиги чемпионов?

Лига наций по футболу
Помогите, пожалуйста,создать концептуальную модель моей предметной области" Лига наций по футболу". Или подскажите где это...

4
1 / 1 / 0
Регистрация: 06.06.2020
Сообщений: 75
12.05.2022, 20:16  [ТС]
Помогите пожалуйста исправить ошибки!
Я так же не совсем понимаю как в offense_strength и defence_strength реализовать обшую сумму параметров offense и strength для каждого объекта класса.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import random
 
class Player:
    def __init__(self, name: str, offense: int, defense: int):
 
        self.name = name
        self.offense = offense >=0
        self.defense = defense >=0
 
    def update_offense(self, amount: int):
        self.update_offense = offense + amount
 
    def update_defense(self, amount: int):
        self.update_defense = defense + amount 
 
    def print_info(self):
        return print("" +self.name+ ",'Offense:'" +self.offense+ ",'Defense:' " +self.defense+ "")  
 
class Team:
    def __init__(self, team_name: str, players: set):
        self.team_name = team_name
        self.players = []
 
    def add_player(player):
        if isinstance(player, Player):
            self.players.append(player)
        else:
            print("Please provide a player ")
 
    def offense_strength(self):
        self = sum()
 
    def defense_strength(self):
 
    def print_status():
        print('==='+team_name)
        print("(" ",'Offense:'" +self.offense_strength+ ",Defense: " +self.defense_strength+ ")")
        for players in Player:
            print("" +self.name+ ",'Offense:'" +self.offense+ ",'Defense:' " +self.defense+ "")
Тут пример того, что должно выводиться
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
player = Player('GPA', 10, 15)
player.print_info()
 
 GPA (Offense: 10 Defense: 15) 
 
 
player.change_defense(2)
player.change_offense(-2)
player.print_info()
 
GPA (Offense: 8 Defense: 17) 
 
 
player.change_defense(-20)
player.change_offense(-20)
player.print_info()
 
GPA (Offense: 0 Defense: 0) 
 
 
team = Team('GPA') team.add_player(Player('P1', 3, 5))
team.add_player(Player('P2', 4, 2))
team.add_player(Player('P3', 7, 6))
team.add_player(Player('P4', 5, 4))
team.print_status()
 
 
==== GPA:
Offense: 19 Defense: 17
Players:
P3 (Offense: 7 Defense: 6)
P4 (Offense: 5 Defense: 4)
P1 (Offense: 3 Defense: 5)
P2 (Offense: 4 Defense: 2)
 
 
Winner round 1: GPA - Warriors
==== GPA - Warriors :
Offense : 49 Defense : 59
Players :
Alice ( Offense : 19 Defense : 17)
Michael ( Offense : 8 Defense : 14)
Moritz ( Offense : 12 Defense : 17)
Susi ( Offense : 10 Defense : 11)
Winner round 2: TU - Cats
==== TU - Cats :
Offense : 51 Defense : 85
Players :
Lisa ( Offense : 19 Defense : 26)
Alice ( Offense : 24 Defense : 21)
Eve ( Offense : 0 Defense : 19)
Michael ( Offense : 8 Defense : 19)
Winner round 3: TU - Cats
==== TU - Cats :
Offense : 65 Defense : 98
Players :
Lisa ( Offense : 22 Defense : 30)
Alice ( Offense : 25 Defense : 25)
Eve ( Offense : 7 Defense : 22)
Michael ( Offense : 11 Defense : 21)
Winner round 4: Python - Vikings
==== Python - Vikings :
Offense : 86 Defense : 104
Players :
Lisa ( Offense : 23 Defense : 34)
Bob ( Offense : 31 Defense : 21)
Michael ( Offense : 17 Defense : 24)
Maria ( Offense : 15 Defense : 25)
0
1 / 1 / 0
Регистрация: 06.06.2020
Сообщений: 75
15.05.2022, 17:12  [ТС]
Задача более чем актуальна на данный момент.
Я уже несколько дней ломаю голову над этим
0
1 / 1 / 0
Регистрация: 06.06.2020
Сообщений: 75
16.05.2022, 00:31  [ТС]
Помогите пожалуйста

- offense_strength и defence_strength не имеют параметров, и каждый из них возвращает общий рейтинг силы атаки и защиты всех игроков команды (т.е. сумму соответствующих значений всех игроков команды).

Не работает так как нужно
Мне выводит ошибку
Code
1
2
3
4
5
6
=== GPA
( Offense: <bound method Team.offense_strength of <__main__.Team object at 0x00000217DFA2A0B8>> Defense: <bound method Team.defense_strength of <__main__.Team object at 0x00000217DFA2A0B8>> )
P1 (Offense: 3 Defense: 5 )
P2 (Offense: 4 Defense: 2 )
P3 (Offense: 7 Defense: 6 )
P4 (Offense: 5 Defense: 4 )
А должно выводить
Code
1
2
3
4
5
6
7
==== GPA:
Offense: 19 Defense: 17
Players:
P3 (Offense: 7 Defense: 6)
P4 (Offense: 5 Defense: 4)
P1 (Offense: 3 Defense: 5)
P2 (Offense: 4 Defense: 2)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import random
 
class Player:
 
    def __init__(self, name: str, offense: int, defense: int):
 
        self.name = name
        self.offense = offense
        self.defense = defense
 
    def update_offense(self, amount: int):
        self.offense += amount
 
        if self.offense <= 0:
            self.offense = 0
              
 
    def update_defense(self, amount: int):
        self.defense += amount
 
        if self.defense <= 0:
            self.defense = 0
        
 
 
    def print_info(self):
   
        print(self.name, 'Offense:',self.offense, 'Defense:' ,self.defense)  
 
 
 
# TODO: Implementieren der Klasse Team
class Team:
    
    def __init__(self, team_name: str):
        self.team_name = team_name
        self.players = []
 
    def add_player(self, player: Player):
        self.players.append(player)
 
    def offense_strength(self):
        self.offense_strength = sum(player.offense for player in self.players)
 
    def defense_strength(self):
        self.defense_strength = sum(player.defense for player in self.players)
 
    def print_status(self):
        
        print('===', self.team_name)
 
        print("(",'Offense:',self.offense_strength, 'Defense:',self.defense_strength,")")
 
        for player in self.players:
            print(player.name,"("'Offense:', player.offense,'Defense:',player.defense,")")
 
        
 
        
 
def find_best_team(teams: list) -> object:
    
    # exakter type-hint: find_best_team(teams: list[Team]) -> Team führt ohne Definition der Klasse
    # Team zu Syntax-Fehler
    best = teams[0]
    for team in teams:
        if team.defense_strength() + team.offense_strength() > best.defense_strength() + best.offense_strength():
            best = team
    return best
 
 
def fantasy_league() -> None:
    pass
 
 #    player_names = ['Alice', 'Bob', 'Eve', 'Max', 'Maria', 'Moritz', 'Lisa', 'Michael', 'Susi']
 #    team_names = ['GPA-Warriors', 'TU-Robots', 'Python-Vikings', 'Algorithm-Eagles']
#
 #    players = [Player(name, random.randrange(20), random.randrange(20)) for name in player_names]
 #    teams = [Team(name) for name in team_names]
#     for team in teams:
#         selection = players.copy()
#         random.shuffle(selection)
#         for player in selection[:4]:
#             team.add_player(player)
 
#     for league_day in range(1, 5):
#         winner = find_best_team(teams)
#         print()
 #        print(f'Winner round {league_day}:', winner.team_name)
#         winner.print_status()
 #        for player in players:
 #            player.update_defense(random.randrange(8))
 #            player.update_offense(random.randrange(8))
 
 
def exercise3() -> None:
    
    
     player = Player('Test1', 10, 15)
     player.print_info()
    
     player.update_defense(2)
     player.update_offense(-2)
     player.print_info()
    
     player.update_defense(-20)
     player.update_offense(-20)
     player.print_info()
    
     team = Team('GPA')
     team.add_player(Player('P1', 3, 5))
     team.add_player(Player('P2', 4, 2))
     team.add_player(Player('P3', 7, 6))
     team.add_player(Player('P4', 5, 4))
     team.print_status()
 
 
def execute() -> None:
    exercise3()       # Testcases
    fantasy_league()  # Run program
 
 
 
if __name__ == '__main__':
    execute()
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
16.05.2022, 16:13
Лучший ответ Сообщение было отмечено MelchiorxD как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class Player:
    def __init__(self, name: str, offense: int, defense: int):
 
        self.name = name
        self.offense = max(offense, 0)
        self.defense = max(defense, 0)
 
    def change_offense(self, amount: int):
        self.offense += max(amount, -self.offense) 
 
    def change_defense(self, amount: int):
        self.defense += max(amount, -self.defense) 
    
    def get_offense(self):
        return self.offense
    
    def get_defense(self):
        return self.defense
 
    def print_info(self):
        print("%s (Offense: %d, Defense: %d)"%(self.name, self.offense, self.defense))  
 
class Team:
    def __init__(self, team_name: str, players = set()):
        self.team_name = team_name
        self.players = set(players)
 
    def add_player(self, player):
        if isinstance(player, Player):
            self.players.add(player)
        else:
            print("Please provide a player ")
 
    def offense_strength(self):
        return sum([player.get_offense() for player in self.players])
 
    def defense_strength(self):
        return sum([player.get_defense() for player in self.players])
    
    def print_status(self):
        print('===' + self.team_name)
        print("Offense: %d, Defense: %d"%(self.offense_strength(), self.defense_strength()))
        if len(self.players) > 0:
            print("Players:")
            for player in self.players:
                player.print_info()
Добавлено через 10 минут
Цитата Сообщение от MelchiorxD Посмотреть сообщение
Не работает так как нужно
Должно заработать
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2022, 16:13
Помогаю со студенческими работами здесь

Кибер Спортивная Лига CS:GO
Всем привет,короче не чего лучше не нашел чем этот форум,надеюсь тут помогут) Есть готовая кибер спортивная лига,скрины прикрепил. ...

Лига Чемпионов.Финал.МЮ-Барса.Прогнозы.
Итак,завтра нас ожидает очень непредсказуемый поединок МЮ-Барселона.У кого какие прогнозы на этот матч.

Пишем сами: Фолмагия (помесь фэнтези с научной фантастикой)
После глобальной ядерной катастрофы каменный век. Но современные веши и кое-какая информация сохранились. Можно использовать вообще всё:...

Ищем ПРОГРАММИСТОВ НА UNITY для мобильной игры. 2D, пошаговый, фэнтези рогалик
Приветствую. Ищем ПРОГРАММИСТОВ НА UNITY для мобильной игры. 2D, пошаговый, фэнтези рогалик. Идёт активная работа над прототипом ! Все...

Подскажите игру в стиле фэнтези, чтоб мечом помахать можно было хорошенько
И чтоб пошла на моей машине. 256 оперативной, 128 видеопамяти 1.67 Ггц (просьба надо мной не смеяться)


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru