🧩 Exercícios: Projeto Integrador I: Motor Completo de Jogo de Xadrez em Python
Spec Sistemas Com Python • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 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:
- Criar classe
Tabuleirocom grid 8x8 e validação de limites de coordenadas.
Resultado Esperado
Tabuleiro de xadrez instanciado com coordenadas cartesianas.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_1_SeuNome - 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:
- 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)
- Salve o arquivo como:
Atividade_19_2_SeuNome - 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:
- 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)
- Salve o arquivo como:
Atividade_19_3_SeuNome - 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:
- 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)
- Salve o arquivo como:
Atividade_19_4_SeuNome - 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 |