Log In  


  • 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ça

    for (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 = 0

    while 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]