HF

  	基础物资
  		玉	免疫重拳
  		防	免疫戳、斩、小电、小猪
  		闪	免疫戳、千年、万年、亿年、小电、中电
  		甩剑	本回合后台不可抵消
  
  	特殊牌
  		哈哈
  			反小猪,中猪,斩,元气斩,暴击,重击,白洞
  		上挂
  		下挂
  		举报
  			使所有状态为挂的玩家退出,且命数清零
  
  	防系(抵消)
  		4防=2盾(前台3.5G,后台0.5G)=2盾=1钟(前台8G,后台1G)=1钟
  
  	戳系
  		2玉=2戳(0.5G)=1千年(0.5G)->万年(1G)->亿年(2G)
  
  	猪系
  		8玉=4小猪(0.5G)=2中猪(1G)=1大猪(2G)=1吴猪(4G)->聪明吴猪(8G)
  
  	电系
  		12闪=4小电(0.5G)=2中电(1G)=1大电(2G)->雷神(4G)
  
  	斩系(群)
  		2玉2防=2斩(0.5G)=1元气斩(0.5G)
  		1元气斩(出过中猪)=1猪油斩(1G)
  
  	绝杀系(群)
  		40玉=2绝杀(1命)=1超级绝杀(2命)(无视挂的免疫)
  		(剩2人,状态为挂)=1绝杀
  
  	搏击系
  		12玉=4重拳(0.5G)=2天地之拳(1G)=1无相(2G)=1马丁(4G)->百变马丁(8G)
  		8玉8防=4暴击(0.5G)=2重击(1G)=1痛击(2G)=1马丁(4G)->百变马丁(8G)
  
  	洞系
  		4玉=1黑洞
  		1黑洞+2甩剑=1白洞(伤害1G)
  		1黑洞+1白洞=1虫洞(伤害2G)
  
  	狒狒系
  		10甩剑=2狒狒(伤害3.5G)=1暗黑狒狒(伤害7G)+1蕉蕉(蕉蕉1命)
  		16玉6防(剩2人)=2狒狒(伤害3.5G)=1暗黑狒狒(伤害7G)+1暗黑蕉蕉(蕉蕉2命)

解析

以python语言制作双人游戏
游戏是同步行动制,每人初始1命,物资皆为0个
护盾可以吸收伤害,若护盾剩余伤害吸收量不为正,则护盾破碎
若1个钟仅吸收了0.5G伤害,则此护盾转化为1个盾
盾伤害吸收量为0.5G,每回合最多只能用1个盾吸收伤害
钟伤害吸收量为1G
若本回合选了45或46,则不可使用非本回合获得的护盾
若本回合选了9或41,且你最终受到的伤害不超过3.5G,则不可使用其他护盾
若本回合选了10或42,且你最终受到的伤害不超过8G,则不可使用其他护盾
若本回合选了9或41,且你最终受到的伤害超过3.5G,则本回合不可使用本回合获得的护盾
若本回合选了10或42,且你最终受到的伤害超过8G,则本回合不可使用本回合获得的护盾
每回合结束时若护盾无法吸收剩余伤害,则命数减1,且重新获得本回合吸收伤害过程中失去的护盾,重新恢复本回合吸收伤害过程中转化的护盾
命数不为正则出局
物资为负需重新选择本回合的行动
0.5G为伤害单位
减命不算伤害,不可无视,吸收
若双方互相造成伤害,则伤害小的无效,若造成相同伤害,则都无效
若你本回合有挂,且你没选43和44和45和46和5,则本回合无视行动的消耗和前提条件
若你本回合有挂,且你没选44和45和46和5,且仅存在2个人未出局,则本回合无视行动的消耗和前提条件
若你本回合有挂,则本回合无视所有伤害
若你本回合受到多个伤害,则其中仅最大的伤害生效
若你本回合受到黑洞的影响,且你本回合选45或46,则黑洞的影响不对45和46生效
若你本回合受到多个黑洞的影响,则所有影响你的黑洞的使用者无法执行你的此行动
你的挂数仅能为0或1
        每回合所有人需从下列选一个行动完成
1.获得2个玉,且本回合无视重拳的伤害
2.获得2个防,且本回合无视戳,斩,小电,小猪的伤害
3.获得2个闪,且本回合无视戳,千年,万年,亿年,小电,中电的伤害
4.获得2个甩剑,且本回合护盾不可吸收伤害
5.仅挂数为0才能选,获得1个挂
6.仅挂数为1才能选,失去1个挂
7.使本回合所有有挂的人出局且行动效果无效化
8.仅你上2回合没有都选8才能选本回合反弹别人对你造成的白洞,暴击,重击,小猪,中猪,斩,元气斩的伤害
9.消耗了2个防,获得1个盾,仅本回合此护盾伤害吸收量额外增加3G
10.消耗2个盾,获得1个钟,仅本回合此护盾伤害吸收量额外增加7G
11.消耗1个玉,获得1个戳,且本回合可造成0.5G的戳的伤害,若目标选32或27,则此伤害无效
12.消耗2个戳,本回合可造成0.5G的千年的伤害,若目标选32,则此伤害无效
13.仅上回合选了12才能选,本回合可造成1G的万年的伤害
14.仅上回合选了13才能选,本回合可造成2G的亿年的伤害
15.消耗1个玉和1个防,获得1个斩,且本回合可对其他所有人造成0.5G的斩的伤害,若有人对你造成元气斩或暴击的伤害,则其无视此伤害
16.消耗2个斩,获得1个元气斩,且本回合可对其他所有人造成0.5G的元气斩的伤害,若有人对你造成暴击的伤害,则其无视此伤害
17.仅选过23才能选,消耗1个元气斩,本回合可对其他所有人造成1G的伤害
18.消耗3个闪,获得1个小电,且本回合可造成0.5G的小电的伤害,若目标选32,则此伤害无效
19.消耗2个小电,获得1个中电,且本回合可造成1G的中电的伤害
20.消耗2个中电,本回合可造成2G的伤害
21.仅上回合选了20才能选,本回合可造成4G的伤害
22.消耗2个玉,获得1个小猪,且本回合可造成0.5G的小猪的伤害,若目标选32,则此伤害无效
23.消耗2个小猪,获得1个中猪,且本回合可造成1G的中猪的伤害
24.消耗2个中猪,获得1个大猪,且本回合可造成2G的伤害
25.消耗1个大猪,本回合可造成4G的伤害
26.仅上回合选了25才能选,本回合可造成8G的伤害
27.消耗3个玉,获得1个重拳,且本回合可造成0.5G的重拳的伤害,若目标选32,则此伤害无效
28.消耗2个重拳,获得1个天地之拳,且本回合可造成1G的伤害
29.消耗2个天地之拳,获得1个无相,且本回合可造成2G的伤害
30.消耗1个无相,本回合可造成4G的伤害
31.仅上回合选了30或35才能选,本回合可造成8G的伤害
32.消耗2个玉和2个防,获得1个暴击,且本回合可造成0.5G的暴击的伤害
33.消耗2个暴击,获得1个重击,且本回合可造成1G的重击的伤害
34.消耗2个重击,获得1个痛击,且本回合可造成2G的伤害
35.消耗1个痛击,本回合可造成4G的伤害
36.消耗5个甩剑,获得1个狒狒和1个蕉蕉,且本回合可造成3.5G的伤害
37.消耗2个狒狒,获得1个暗黑蕉蕉,且本回合可造成7G的伤害
38.消耗1个蕉蕉,你的命数加1,且本回合护盾不可吸收伤害
39.消耗1个暗黑蕉蕉,你的命数加2,且本回合护盾不可吸收伤害
40.仅本回合仅存在2个人未出局才能选,消耗8个玉和3个防,获得1个狒狒和1个蕉蕉,且本回合可造成3.5G的伤害
41.消耗1个盾,获得1个盾,仅本回合此护盾伤害吸收量额外增加3G
42.消耗1个钟,获得1个钟,仅本回合此护盾伤害吸收量额外增加7G
43.消耗20个玉,获得1个绝杀,且本回合无视所有伤害,本回合若目标有人不选43或44且目标没挂,其命数减1,且其本回合不会再因为回合结束时护盾无法吸收剩余伤害而减命
44.消耗2个绝杀,且本回合无视所有伤害,本回合若有人选43,其命数减1,若有人不选43或44,其命数减2,且其本回合不会再减命
45.仅目标选1或2或3或4或8或9或10才能选,消耗4个玉,获得1个黑洞,且目标的行动无效且消耗不变,你额外执行目标的行动且无视此行动的消耗和前提条件
46.仅目标不选1和2和3和4和8和9和10才能选,消耗4个玉,获得1个黑洞,且目标的行动无效且消耗不变,你记录目标的行动
47.消耗1个黑洞和2个甩剑,获得1个白洞,且本回合可造成1G的白洞的伤害
48.消耗1个黑洞和1个白洞,本回合可造成2G的伤害
49.从你记录的行动中选择1个执行并删除,且本回合无视行动的消耗和前提条件
        平局条件
1.所有人都出局
2.所有人都有挂

豆包

WIDTH, HEIGHT = 1200, 800
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("双人同步行动游戏")

# 颜色定义
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GRAY = (200, 200, 200)
BLUE = (0, 0, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)

# 字体设置
FONT_SMALL = pygame.font.Font(None, 24)
FONT_MID = pygame.font.Font(None, 32)
FONT_LARGE = pygame.font.Font(None, 48)

# 行动列表(简化,对应编号和名称)
ACTIONS = {
    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: "反黑洞"
}

# 物资类型(顺序对应显示顺序)
ITEMS = ["玉", "防", "闪", "甩剑", "戳",  "斩", "元气斩",
         "小电", "中电", "小猪", "中猪", "大猪", "重拳", "天地之拳", "无相",
         "暴击", "重击", "痛击", "狒狒", "蕉蕉", "暗黑蕉蕉", "绝杀", "黑洞", "白洞"]


class Player:
    def __init__(self, is_ai=False):
        self.is_ai = is_ai  # 是否为AI
        self.name = "AI" if is_ai else "玩家"
        self.life = 1  # 命数
        self.gua = 0  # 挂数(0/1)
        self.items = {item: 0 for item in ITEMS}  # 物资数量
        self.shield1 = 0  # 盾(常规)
        self.shield1_temp = 0  # 本回合获得的盾
        self.shield2 = 0  # 钟(常规)
        self.shield2_temp = 0  # 本回合获得的钟
        self.recorded_actions = []  # 记录的行动(46号行动用)
        self.last_two_actions = [None, None]  # 上2回合行动(8号行动用)
        self.last_action = None  # 上回合行动(13/14/21/26/31号行动用)
        self.round_actions = deque(maxlen=20)  # 近20回合行动记录(回溯用)
        self.current_action = None  # 本回合选择的行动
        self.action_selected = False  # 是否已选行动
        self.damage_taken = 0  # 本回合受到的伤害
        self.effect_text = ""  # 本回合效果提示


def draw_button(text, x, y, w, h, color, hover_color, font):
    """绘制按钮"""
    mouse = pygame.mouse.get_pos()
    click = pygame.mouse.get_pressed()
    if x < mouse[0] < x + w and y < mouse[1] < y + h:
        pygame.draw.rect(SCREEN, hover_color, (x, y, w, h))
        if click[0] == 1:
            return True
    else:
        pygame.draw.rect(SCREEN, color, (x, y, w, h))
    # 绘制文字
    text_surf = font.render(text, True, BLACK)
    text_rect = text_surf.get_rect(center=(x + w//2, y + h//2))
    SCREEN.blit(text_surf, text_rect)
    return False


def draw_player_status(player, x_start, y_start):
    """绘制玩家/AI状态"""
    # 名字和命数
    name_text = FONT_LARGE.render(f"{player.name} (命: {player.life}, 挂: {player.gua})", True, BLACK)
    SCREEN.blit(name_text, (x_start, y_start))
    # 本回合效果提示
    effect_text = FONT_SMALL.render(player.effect_text, True, RED)
    SCREEN.blit(effect_text, (x_start, y_start + 40))
    # 护盾
    shield_text = FONT_MID.render(f"盾: {player.shield1}({player.shield1_temp}临时)  钟: {player.shield2}({player.shield2_temp}临时)", True, BLACK)
    SCREEN.blit(shield_text, (x_start, y_start + 80))
    # 物资(分4列显示)
    y_item = y_start + 120
    for i, (item, num) in enumerate(player.items.items()):
        col = i % 4
        row = i // 4
        item_text = FONT_SMALL.render(f"{item}: {num}", True, BLACK)
        SCREEN.blit(item_text, (x_start + col * 150, y_item + row * 30))
    # 行动选择提示
    if not player.action_selected:
        select_text = FONT_MID.render("请选择行动(点击下方编号)", True, BLUE)
        SCREEN.blit(select_text, (x_start, y_start + 350))
    else:
        selected_text = FONT_MID.render(f"已选行动: {player.current_action} - {ACTIONS[player.current_action]}", True, GREEN)
        SCREEN.blit(selected_text, (x_start, y_start + 350))


def draw_action_buttons(x_start, y_start, player):
    """绘制行动选择按钮(简化为1-10号行动,可扩展)"""
    if player.action_selected:
        return
    y_btn = y_start
    for idx in range(1, 11):  # 先显示1-10号行动,可扩展全部
        if draw_button(f"{idx}: {ACTIONS[idx]}", x_start, y_btn, 400, 30, GRAY, (150,150,150), FONT_SMALL):
            # 暂不验证行动合法性(实际需加:物资、前提条件等)
            player.current_action = idx
            player.action_selected = True
        y_btn += 35


def draw_backtrack_window(players):
    """绘制回溯窗口(近20回合行动)"""
    # 窗口背景
    pygame.draw.rect(SCREEN, WHITE, (100, 100, 1000, 600))
    pygame.draw.rect(SCREEN, BLACK, (100, 100, 1000, 600), 2)
    # 标题
    title = FONT_MID.render("近20回合行动回溯", True, BLACK)
    SCREEN.blit(title, (500, 120))
    # 表头
    round_text = FONT_SMALL.render("回合", True, BLACK)
    player_text = FONT_SMALL.render("玩家行动", True, BLACK)
    ai_text = FONT_SMALL.render("AI行动", True, BLACK)
    SCREEN.blit(round_text, (150, 160))
    SCREEN.blit(player_text, (400, 160))
    SCREEN.blit(ai_text, (750, 160))
    # 行动记录
    y = 200
    max_round = max(len(players[0].round_actions), len(players[1].round_actions))
    for i in range(max_round):
        round_num = FONT_SMALL.render(str(i+1), True, BLACK)
        SCREEN.blit(round_num, (150, y))
        # 玩家行动
        p_action = players[0].round_actions[i] if i < len(players[0].round_actions) else "无"
        p_text = FONT_SMALL.render(f"{p_action} - {ACTIONS.get(p_action, '')}", True, BLACK)
        SCREEN.blit(p_text, (250, y))
        # AI行动
        ai_action = players[1].round_actions[i] if i < len(players[1].round_actions) else "无"
        ai_text = FONT_SMALL.render(f"{ai_action} - {ACTIONS.get(ai_action, '')}", True, BLACK)
        SCREEN.blit(ai_text, (600, y))
        y += 30
        if y > 650:
            break
    # 关闭按钮
    if draw_button("关闭", 550, 650, 100, 40, GRAY, (150,150,150), FONT_MID):
        return False
    return True


def ai_select_action(ai):
    """AI简单决策逻辑(可扩展)"""
    # 优先级:1. 缺物资→选1-3;2. 没挂→选5;3. 有物资→选护盾/伤害技能
    if ai.items["玉"] < 2:
        return 1  # 先拿玉
    elif ai.items["防"] < 2:
        return 2  # 拿防
    elif ai.gua == 0:
        return 5  # 拿挂
    elif ai.items["防"] >= 2 and ai.shield1 < 2:
        return 9  # 做盾
    else:
        return 11  # 拿戳打伤害


def reset_round(players):
    """重置回合状态"""
    for p in players:
        p.current_action = None
        p.action_selected = False
        p.damage_taken = 0
        p.effect_text = ""


def settle_round(players):
    """回合结算(简化版:仅处理物资获取、基础伤害)"""
    player, ai = players
    # 1. 记录本回合行动
    player.round_actions.append(player.current_action)
    ai.round_actions.append(ai.current_action)
    # 2. 更新上回合/上2回合行动
    for p in players:
        p.last_two_actions = [p.last_action, p.current_action]
        p.last_action = p.current_action

    # 3. 执行行动效果(简化:仅处理1-5号行动,可扩展全部)
    # 玩家行动执行
    if player.current_action == 1:
        player.items["玉"] += 2
        player.effect_text = "本回合无视重拳伤害"
    elif player.current_action == 2:
        player.items["防"] += 2
        player.effect_text = "本回合无视戳/斩/小电/小猪伤害"
    elif player.current_action == 3:
        player.items["闪"] += 2
        player.effect_text = "本回合无视戳/千年等伤害"
    elif player.current_action == 4:
        player.items["甩剑"] += 2
        player.effect_text = "本回合护盾不可吸收伤害"
    elif player.current_action == 5 and player.gua == 0:
        player.gua = 1
        player.effect_text = "获得1个挂"

    # AI行动执行
    if ai.current_action == 1:
        ai.items["玉"] += 2
        ai.effect_text = "本回合无视重拳伤害"
    elif ai.current_action == 2:
        ai.items["防"] += 2
        ai.effect_text = "本回合无视戳/斩/小电/小猪伤害"
    elif ai.current_action == 3:
        ai.items["闪"] += 2
        ai.effect_text = "本回合无视戳/千年等伤害"
    elif ai.current_action == 4:
        ai.items["甩剑"] += 2
        ai.effect_text = "本回合护盾不可吸收伤害"
    elif ai.current_action == 5 and ai.gua == 0:
        ai.gua = 1
        ai.effect_text = "获得1个挂"

    # 4. 简化伤害结算(仅示例:AI选11号行动时对玩家造成0.5G伤害)
    if ai.current_action == 11 and ai.items["玉"] >= 1:
        ai.items["玉"] -= 1
        player.damage_taken = 0.5
        player.effect_text += " | 受到AI 0.5G戳伤害"

    # 5. 护盾吸收伤害(简化规则)
    for p in players:
        if p.damage_taken <= 0:
            continue
        # 先算临时护盾
        if p.shield1_temp > 0:
            absorb = min(p.damage_taken, 0.5 + 3)  # 9/41号行动额外3G
            p.damage_taken -= absorb
            p.shield1_temp -= 1
            if absorb == 0.5:  # 钟吸收0.5G变盾(此处简化为盾逻辑)
                p.shield1 += 1
        elif p.shield2_temp > 0:
            absorb = min(p.damage_taken, 1 + 7)  # 10/42号行动额外7G
            p.damage_taken -= absorb
            p.shield2_temp -= 1
            if absorb == 0.5:
                p.shield1 += 1
        # 再算常规护盾
        elif p.shield1 > 0:
            absorb = min(p.damage_taken, 0.5)
            p.damage_taken -= absorb
            p.shield1 -= 1
            if absorb == 0.5:
                p.shield1 += 1
        elif p.shield2 > 0:
            absorb = min(p.damage_taken, 1)
            p.damage_taken -= absorb
            p.shield2 -= 1
            if absorb == 0.5:
                p.shield1 += 1
        # 剩余伤害减命
        if p.damage_taken > 0:
            p.life -= 1
            # 恢复护盾(简化:恢复所有使用的护盾)
            p.shield1 += (1 if p.current_action == 9 or p.current_action == 41 else 0)
            p.shield2 += (1 if p.current_action == 10 or p.current_action == 42 else 0)

    # 6. 重置临时护盾
    player.shield1_temp = 0
    player.shield2_temp = 0
    ai.shield1_temp = 0
    ai.shield2_temp = 0


def check_game_over(players):
    """判断游戏结束"""
    player, ai = players
    # 平局条件
    if player.life <= 0 and ai.life <= 0:
        return "平局(所有人出局)"
    if player.gua == 1 and ai.gua == 1:
        return "平局(所有人有挂)"
    # 胜负条件
    if player.life <= 0:
        return "AI胜利!"
    if ai.life <= 0:
        return "玩家胜利!"
    return None


def main():
    """主游戏逻辑"""
    player = Player(is_ai=False)
    ai = Player(is_ai=True)
    players = [player, ai]
    game_state = "ready"  # ready:未开始, playing:游戏中, backtrack:回溯中, game_over:结束
    backtrack_showing = False
    tip_showing = False
    round_num = 0

    while True:
        SCREEN.fill(WHITE)
        events = pygame.event.get()
        for event in events:
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()

        if game_state == "ready":
            # 未开始界面:仅开始按钮
            if draw_button("开始游戏", 500, 350, 200, 60, GREEN, (0,200,0), FONT_LARGE):
                game_state = "playing"
                reset_round(players)

        elif game_state == "playing":
            round_num += 1
            # 绘制回合数
            round_text = FONT_MID.render(f"第{round_num}回合", True, BLACK)
            SCREEN.blit(round_text, (550, 20))

            # 绘制玩家(左半屏)和AI(右半屏)状态
            draw_player_status(player, 50, 60)
            draw_player_status(ai, 650, 60)

            # 绘制行动按钮(仅玩家选,AI自动选)
            draw_action_buttons(50, 400, player)

            # AI自动选行动(玩家选完后)
            if player.action_selected and not ai.action_selected:
                ai.current_action = ai_select_action(ai)
                ai.action_selected = True

            # 绘制功能按钮
            if draw_button("回溯", 50, 720, 100, 40, GRAY, (150,150,150), FONT_MID):
                backtrack_showing = True
                game_state = "backtrack"
            if draw_button("提示", 150, 720, 100, 40, GRAY, (150,150,150), FONT_MID):
                tip_showing = not tip_showing
            if draw_button("放弃回合", 1050, 720, 100, 40, RED, (200,0,0), FONT_MID):
                reset_round(players)

            # 双方都选完行动→结算
            if player.action_selected and ai.action_selected:
                settle_round(players)
                # 检查游戏结束
                game_over_msg = check_game_over(players)
                if game_over_msg:
                    game_state = "game_over"
                    game_over_text = game_over_msg
                else:
                    # 重置回合
                    pygame.time.wait(2000)  # 显示结算结果2秒
                    reset_round(players)

            # 显示提示
            if tip_showing:
                tip = FONT_SMALL.render("提示:当前物资不足,建议先选1-3获取玉/防/闪 | AI可能优先拿挂或护盾", True, BLUE)
                pygame.draw.rect(SCREEN, WHITE, (300, 680, 600, 60))
                SCREEN.blit(tip, (310, 700))

        elif game_state == "backtrack":
            # 回溯界面
            if not draw_backtrack_window(players):
                backtrack_showing = False
                game_state = "playing"

        elif game_state == "game_over":
            # 结束界面:显示结果+返回按钮
            over_text = FONT_LARGE.render(game_over_text, True, RED)
            SCREEN.blit(over_text, (450, 300))
            if draw_button("返回初始界面", 500, 400, 200, 60, GRAY, (150,150,150), FONT_MID):
                # 重置游戏状态
                player = Player(is_ai=False)
                ai = Player(is_ai=True)
                players = [player, ai]
                game_state = "ready"
                round_num = 0

        pygame.display.update()


if __name__ == "__main__":
    main()
'''3. 代码说明

	1.	核心功能实现:

	◦	双人状态管理(命数、挂数、物资、护盾、行动记录)

	◦	同步行动机制(玩家手动选,AI自动选,选完后同步结算)

	◦	界面布局(左右分屏显示玩家/AI,边界显示物资,功能按钮)

	◦	关键按钮(开始、返回、回溯、提示)

	◦	简化回合结算(物资获取、基础伤害、护盾吸收)

	◦	游戏结束判定(胜负/平局条件)

	2.	待扩展细节:

	◦	完善所有49个行动的执行逻辑(物资消耗、前提验证、特殊效果如黑洞/白洞/挂的无视规则)

	◦	优化AI决策(根据玩家状态动态调整策略,如针对玩家护盾用4号行动)

	◦	补充完整伤害结算规则(最大伤害生效、互相伤害抵消、挂无视伤害等)

	◦	细化护盾规则(转化、使用限制、破碎恢复)

	◦	完善回溯功能(显示更详细的回合效果)

	3.	操作方法:

	◦	运行代码后点击【开始游戏】

	◦	玩家点击左侧行动按钮选择行动(先显示1-10号,可扩展全部)

	◦	AI自动选择行动后,自动结算回合

	◦	点击【回溯】查看近20回合行动,点击【提示】获取AI推荐策略

	◦	游戏结束后点击【返回】重置游戏
  '''