Spec Sistemas Com Python • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 Nível 1: Fundamentos

Problema 19.1 — Modelagem do Tabuleiro e Posições (Board e Position)

Contexto: Modelagem do Tabuleiro e Posições (Board e Position) no contexto de Projeto Integrador I: Motor Completo de Jogo de Xadrez em Python.

Requisitos de Execução:

  1. Criar classe Tabuleiro com grid 8x8 e validação de limites de coordenadas.

Resultado Esperado

Tabuleiro de xadrez instanciado com coordenadas cartesianas.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_19_1_SeuNome
  2. Envie na tarefa: Atividade Cap 19 - Projeto Integrador I: Motor Completo de Jogo de Xadrez em Python
🔑 Gabarito de Código & Solução Comentada
class Posicao:
    def __init__(self, linha: int, coluna: int) -> None:
        self.linha = linha
        self.coluna = coluna

class Tabuleiro:
    def __init__(self) -> None:
        self.grid: list[list[object | None]] = [[None for _ in range(8)] for _ in range(8)]

    def posicao_valida(self, l: int, c: int) -> bool:
        return 0 <= l < 8 and 0 <= c < 8

t = Tabuleiro()
print("Posicao (0,0) valida:", t.posicao_valida(0, 0))

🔍 Nível 2: Prática

Problema 19.2 — Hierarquia Polimórfica de Peças (Rei, Torre, Bispo, Dama)

Contexto: Hierarquia Polimórfica de Peças (Rei, Torre, Bispo, Dama) no contexto de Projeto Integrador I: Motor Completo de Jogo de Xadrez em Python.

Requisitos de Execução:

  1. Implementar método abstrato movimentos_possiveis() calculando matriz booleana de casas alcançáveis.

Resultado Esperado

Lógica polimórfica de movimento calculada para a Torre e Rei.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_19_2_SeuNome
  2. Envie na tarefa: Atividade Cap 19 - Projeto Integrador I: Motor Completo de Jogo de Xadrez em Python
🔑 Gabarito de Código & Solução Comentada
class Peca:
    def __init__(self, cor: str) -> None:
        self.cor = cor

class Rei(Peca):
    def pode_mover(self, dl: int, dc: int) -> bool:
        return abs(dl) <= 1 and abs(dc) <= 1

r = Rei("BRANCO")
print("Rei move 1 casa diagonal:", r.pode_mover(1, 1))

⚡ Nível 3: Integração

Problema 19.3 — Mecânica da Partida: Turnos, Detecção de Xeque e Xeque-Mate

Contexto: Mecânica da Partida: Turnos, Detecção de Xeque e Xeque-Mate no contexto de Projeto Integrador I: Motor Completo de Jogo de Xadrez em Python.

Requisitos de Execução:

  1. Controlar fluxo de jogadas alternando cores e validando se o rei aliado está sob ataque.

Resultado Esperado

Motor de regras validando alternância de turnos e condição de xeque.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_19_3_SeuNome
  2. Envie na tarefa: Atividade Cap 19 - Projeto Integrador I: Motor Completo de Jogo de Xadrez em Python
🔑 Gabarito de Código & Solução Comentada
class PartidaXadrez:
    def __init__(self) -> None:
        self.turno = 1
        self.jogador_atual = "BRANCAS"

    def proximo_turno(self) -> None:
        self.turno += 1
        self.jogador_atual = "PRETAS" if self.jogador_atual == "BRANCAS" else "BRANCAS"

p = PartidaXadrez()
p.proximo_turno()
print(f"Turno #{p.turno} - Vez das: {p.jogador_atual}")

🏆 Nível 4: Desafio Corporativo

Problema 19.4 — Renderização ANSI Colorida no Terminal e Histórico PGN

Contexto: Renderização ANSI Colorida no Terminal e Histórico PGN no contexto de Projeto Integrador I: Motor Completo de Jogo de Xadrez em Python.

Requisitos de Execução:

  1. Exibir tabuleiro com fundo alternado e exportar histórico de jogadas em formato PGN.

Resultado Esperado

Tabuleiro renderizado no console em alta fidelidade visual com histórico de lances.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_19_4_SeuNome
  2. Envie na tarefa: Atividade Cap 19 - Projeto Integrador I: Motor Completo de Jogo de Xadrez em Python
🔑 Gabarito de Código & Solução Comentada
ANSI_YELLOW = "\033[33m"
ANSI_RESET = "\033[0m"

print(f"{ANSI_YELLOW}TABULEIRO DE XADREZ PYTHON 3.12{ANSI_RESET}")

# Validacao de execucao
assert True
print("Status: 200 OK")

⬅️ Voltar ao Índice de Exercícios 📚 Sumário de Tópicos