- item 1
Inicializar o tabuleiro vazio (8x8)
tabuleiro = criar_tabuleiro(8, 8)
Gerar as primeiras 3 peças
pecas = gerar_pecas_iniciais()
Variáveis de controle
pontuacao = 0
fim_do_jogo = False
- item 2
def criartabuleiro(linhas, colunas):
return [[' ' for in range(colunas)] for _ in range(linhas)]
def exibir_tabuleiro(tabuleiro):
colunas = 'ABCDEFGH'
for i, linha in enumerate(tabuleiro):
print(f"{colunas[i]} " + " ".join(linha))
print()
-
item 3
def gerar_pecas_iniciais():
pecas_possiveis = [
[(0, 0), (0, 1), (0, 2)], # Linha reta
[(0, 0), (1, 0), (2, 0)], # Linha reta vertical
[(0, 0), (1, 0), (1, 1)], # L
[(0, 0), (0, 1), (1, 1)] # T
]
return [random.choice(pecaspossiveis) for in range(3)] -
item 4
def posicionar_peca(tabuleiro, peca, linha, coluna):
if not verificar_espaco(tabuleiro, peca, linha, coluna):
return False # Não há espaço para a peçafor (dx, dy) in peca:
tabuleiro[linha + dx][coluna + dy] = 'X'coordenada = f"{chr(65 + coluna)}{8 - linha}" # Converte para A1, B1, etc.
print(f"Peça colocada em {coordenada}")return True
def verificar_espaco(tabuleiro, peca, linha, coluna):
for (dx, dy) in peca:
if linha + dx < 0 or linha + dx >= len(tabuleiro) or coluna + dy < 0 or coluna + dy >= len(tabuleiro[0]):
return False # Fora dos limites
if tabuleiro[linha + dx][coluna + dy] != ' ':
return False # Já está ocupado
return True
-
item 5
def eliminar_linhas(tabuleiro):
linhaseliminadas = 0
for i in range(len(tabuleiro)):
if all(celula != ' ' for celula in tabuleiro[i]):
tabuleiro[i] = [' ' for in range(len(tabuleiro[i]))]
linhas_eliminadas += 1
return linhas_eliminadas -
item 6
def gerar_novas_pecas():
return [random.choice(pecaspossiveis) for in range(3)] -
item 7
def verificar_fim_do_jogo(tabuleiro, pecas):
for peca in pecas:
for linha in range(len(tabuleiro)):
for coluna in range(len(tabuleiro[0])):
if verificar_espaco(tabuleiro, peca, linha, coluna):
return False # Ainda é possível posicionar a peça
return True -
item 8
def jogo():
global fim_do_jogo
tabuleiro = criar_tabuleiro(8, 8)
pecas = gerar_pecas_iniciais()
pontuacao = 0while not fim_do_jogo:
exibir_tabuleiro(tabuleiro)print("Escolha uma peça para posicionar (0, 1, 2):") escolha = int(input()) peca = pecas[escolha] print("Escolha uma linha (0-7) e uma coluna (0-7):") linha = int(input("Linha: ")) coluna = int(input("Coluna: ")) if posicionar_peca(tabuleiro, peca, linha, coluna): pontuacao += eliminar_linhas(tabuleiro) # Elimina linhas pecas = gerar_novas_pecas() # Gera novas peças fim_do_jogo = verificar_fim_do_jogo(tabuleiro, pecas) # Verifica se o jogo acabou if fim_do_jogo: exibir_tabuleiro(tabuleiro) print(f"Fim do Jogo! Pontuação final: {pontuacao}") break
- item 9
def obter_posicao_desejada(peca):Para teste, a função agora está integrada com as escolhas do usuário no código principal
pass
[Please log in to post a comment]