python案例认为这次犯规该不该吃牌?

wen python案例 1

足球犯规判罚分析案例

这是一个用Python模拟"该不该吃牌"判罚逻辑的案例,结合足球规则(IFAB规则)进行简单推理。

python案例认为这次犯规该不该吃牌?

案例场景

假设一场比赛中发生了以下犯规,我们需要判断是否应该出示黄牌或红牌。

完整代码

from dataclasses import dataclass
from enum import Enum
class CardType(Enum):
    NONE = "无牌"
    YELLOW = "黄牌"
    RED = "红牌"
@dataclass
class Foul:
    """一次犯规的描述"""
    description: str
    is_reckless: bool = False          # 是否鲁莽(黄牌)
    excessive_force: bool = False      # 是否使用过分力量(红牌)
    denies_obvious_goal: bool = False  # 是否破坏明显进球机会(DOGSO)
    is_in_box: bool = False            # 是否在禁区内
    is_deliberate_handball: bool = False  # 是否故意手球
    is_serious_foul_play: bool = False # 是否严重犯规
    is_violent_conduct: bool = False   # 是否暴力行为
    is_spitting: bool = False          # 是否吐口水
    is_second_yellow: bool = False     # 是否第二次黄牌
def judge_card(foul: Foul) -> tuple[CardType, str]:
    """根据犯规特征判定出牌类型"""
    # 1. 红牌情形(最严重,优先判断)
    if foul.is_violent_conduct or foul.is_spitting:
        return CardType.RED, "暴力行为/吐口水 → 直接红牌"
    if foul.is_serious_foul_play or foul.excessive_force:
        return CardType.RED, "严重犯规/使用过分力量 → 直接红牌"
    # DOGSO:破坏明显进球机会
    if foul.denies_obvious_goal:
        if foul.is_deliberate_handball:
            return CardType.RED, "故意手球破坏进球 → 红牌"
        elif foul.is_in_box:
            # 禁区内非手球DOGSO:改判点球,通常黄牌
            return CardType.YELLOW, "禁区内DOGSO → 判点球+黄牌"
        else:
            return CardType.RED, "禁区外DOGSO → 红牌"
    # 2. 黄牌情形
    if foul.is_reckless:
        return CardType.YELLOW, "鲁莽犯规 → 黄牌"
    if foul.is_deliberate_handball:
        return CardType.YELLOW, "故意手球(非DOGSO)→ 黄牌"
    if foul.is_second_yellow:
        return CardType.YELLOW, "第二次黄牌 → 累积红牌下场"
    # 3. 普通犯规
    return CardType.NONE, "普通犯规 → 口头警告/任意球"
# ============ 案例测试 ============
cases = [
    Foul("中场战术犯规拉人", is_reckless=True),
    Foul("禁区内铲球破坏单刀", denies_obvious_goal=True, is_in_box=True),
    Foul("禁区外故意手球挡出必进球", denies_obvious_goal=True, 
         is_deliberate_handball=True),
    Foul("背后飞铲致对方受伤", is_serious_foul_play=True),
    Foul("争抢中推搡对手", ),
    Foul("禁区内故意手球挡出射门", denies_obvious_goal=True, 
         is_deliberate_handball=True, is_in_box=True),
]
for i, foul in enumerate(cases, 1):
    card, reason = judge_card(foul)
    print(f"案例{i}: {foul.description}")
    print(f"  判罚 → {card.value}  依据: {reason}\n")

输出结果

案例1: 中场战术犯规拉人
  判罚 → 黄牌  依据: 鲁莽犯规 → 黄牌
案例2: 禁区内铲球破坏单刀
  判罚 → 黄牌  依据: 禁区内DOGSO → 判点球+黄牌
案例3: 禁区外故意手球挡出必进球
  判罚 → 红牌  依据: 故意手球破坏进球 → 红牌
案例4: 背后飞铲致对方受伤
  判罚 → 红牌  依据: 严重犯规/使用过分力量 → 直接红牌
案例5: 争抢中推搡对手
  判罚 → 无牌  依据: 普通犯规 → 口头警告/任意球
案例6: 禁区内故意手球挡出射门
  判罚 → 红牌  依据: 故意手球破坏进球 → 红牌

核心判罚逻辑总结

情形 判罚
鲁莽犯规 黄牌
使用过分力量 / 严重犯规 红牌
暴力行为 / 吐口水 红牌
破坏明显进球机会(禁区外) 红牌
破坏明显进球机会(禁区内非手球) 黄牌 + 点球
故意手球破坏进球 红牌
普通犯规 无牌

说明

这是一个教学用简化模型,真实判罚需考虑:

  • 犯规位置、比赛节奏、球员意图
  • 裁判主观判断(鲁莽 vs 过分力量界限模糊)
  • VAR介入、持球权、有利原则等

如果你有具体的犯规场景想分析(比如某场真实比赛的那次犯规),可以把当时的情况描述给我,我可以基于IFAB规则详细分析该不该出牌 👨‍⚖️⚽。

上一篇python案例认为这次战术换人会有效果吗?

下一篇当前分类已是最新一篇

抱歉,评论功能暂时关闭!

友情链接攻略窝 · 礼包窝 · 配置窝 · 换算窝 · 算法窝 · 查文窝 · 手册窝 · 问答窝 · 全文搜 · 手册库
相关站点礼包窝 · 查文窝