sportmoculatethings

本文介绍了一个使用Python编写的模拟团队比赛的程序,包括类Team中的初始化、比赛模拟函数和Tournament类的循环赛与排名功能。通过随机决定胜负,展示如何计算队伍的胜率和最终排名。
摘要由CSDN通过智能技术生成

from random import *

class Team:  

    def __init__(self, name, ability):  

        self.name = name  

        self.ability = ability  

        self.wins = 0  

        self.losses = 0  

    def simulate_game(self, other_team):  

        if random() < self.ability:  

            self.wins += 1  

            other_team.losses += 1  

            return True  # 表示本队获胜  

        else:  

            self.losses += 1  

            other_team.wins += 1  

            return False  # 表示本队失败  

class Tournament:  

    def __init__(self, teams):  

        self.teams = teams  

        self.matches_played = 0  

    def play_round_robin(self):  

        for i in range(len(self.teams)):  

            for j in range(i + 1, len(self.teams)):  

                team1 = self.teams[i]  

                team2 = self.teams[j]  

                winner = team1.simulate_game(team2)  

                self.matches_played += 1  

                print(f"Game {self.matches_played}: {team1.name} vs {team2.name}. {'Winner' if winner else 'Loser'}: {team1.name}")  

    def rank_teams(self):  

        sorted_teams = sorted(self.teams, key=lambda team: (team.wins, -team.losses, team.name), reverse=True)  

        print("\nFinal Rankings:")  

        for rank, team in enumerate(sorted_teams, start=1):  

            print(f"{rank}. {team.name} - Wins: {team.wins}, Losses: {team.losses}")  

# 示例:创建四个球队并模拟循环赛  

teams = [  

    Team("Team A", 0.6),  

    Team("Team B", 0.5),  

    Team("Team C", 0.7),  

    Team("Team D", 0.4)  

]  

tournament = Tournament(teams)  

tournament.play_round_robin()  

tournament.rank_teams()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值