Ejemplo n.º 1
0
def teste_tetrominos_nao_devem_ultrapassar_paredes_verticais_de_encaixes(
        tipo, tabuleiro_vazio):
    verificador = Verificador()
    tetramino = Tetromino(tipo)
    assert verificador.cabe_tetramino(tabuleiro_vazio, tetramino, "DIREITA")

    tetramino.move("DIREITA")
    assert verificador.cabe_tetramino(tabuleiro_vazio, tetramino, "ESQUERDA")
    coloca_parede_interna(tabuleiro_vazio)

    assert not verificador.cabe_tetramino(tabuleiro_vazio, tetramino,
                                          "ESQUERDA")
Ejemplo n.º 2
0
def teste_tetrominos_nao_devem_atravessar_parede_esquerda_do_tabuleiro(
        tipo, tabuleiro_vazio):
    verificador = Verificador()
    tetramino = Tetromino(tipo)

    tetramino.move("BAIXO")
    limite_para_a_esquerda = tetramino.coluna - 2

    for i in range(limite_para_a_esquerda):
        assert verificador.cabe_tetramino(tabuleiro_vazio, tetramino,
                                          "ESQUERDA")
        tetramino.move("ESQUERDA")

    assert not verificador.cabe_tetramino(tabuleiro_vazio, tetramino,
                                          "ESQUERDA")
Ejemplo n.º 3
0
def teste_tetrominos_nao_encaixados_nao_devem_moverse_na_marcacao_de_pontos(
        tipo, tabuleiro_vazio):

    verificador = Verificador()
    tetramino = Tetromino(tipo)
    tabuleiro_auxiliar = copy.deepcopy(tabuleiro_vazio)
    tetramino.move("BAIXO")
    tabuleiro_auxiliar.coloca_tetramino(tetramino, 1)

    for coluna in range(1, len(tabuleiro_vazio.matriz[0]) - 1):
        tabuleiro_vazio.matriz[len(tabuleiro_vazio.matriz) - 2][coluna] = 2

    tabuleiro_vazio.coloca_tetramino(tetramino, 1)
    verificador.verifica_linhas_completas(tabuleiro_vazio)

    assert tabuleiro_vazio.matriz == tabuleiro_auxiliar.matriz
Ejemplo n.º 4
0
def teste_tetraminos_devem_descer_o_tabuleiro_corretamente(
        tipo, tabuleiro_vazio):

    tetramino = Tetromino(tipo)
    verificador = Verificador()

    for i in range(4):
        while (verificador.cabe_tetramino(tabuleiro_vazio, tetramino,
                                          "BAIXO")):
            tetramino.move("BAIXO")
            tabuleiro_esperado = tabuleiro_com_tetramino(
                tabuleiro_vazio, tetramino)
            tabuleiro_vazio.coloca_tetramino(tetramino, 1)
            assert tabuleiro_esperado == tabuleiro_vazio

            tabuleiro_vazio.apaga_tetramino(tetramino)

        tetramino.rotaciona()
        tetramino.linha = 0
        tetramino.coluna = 5
Ejemplo n.º 5
0
def teste_tetraminos_devem_movimentarse_livremente_ao_surgir_em_tabuleiro_vazio(
        tipo, tabuleiro_vazio):
    verificador = Verificador()
    tetramino = Tetromino(tipo)
    assert verificador.cabe_tetramino(tabuleiro_vazio, tetramino, "ESQUERDA")
    assert verificador.cabe_tetramino(tabuleiro_vazio, tetramino, "DIREITA")
    assert verificador.cabe_tetramino(tabuleiro_vazio, tetramino, "BAIXO")
    assert verificador.cabe_tetramino(tabuleiro_vazio, tetramino, "ROTACAO")
Ejemplo n.º 6
0
def teste_tetrominos_nao_devem_atravessar_parede_direita_do_tabuleiro(
        tipo, tabuleiro_vazio):
    verificador = Verificador()
    tetramino = Tetromino(tipo)

    tetramino.move("BAIXO")

    if tipo == 'A':
        limite_para_direita = tetramino.coluna - 2

    elif tipo == 'B' or tipo == 'C' or tipo == 'D':
        limite_para_direita = tetramino.coluna - 1

    elif tipo == 'E':
        limite_para_direita = tetramino.coluna

    for i in range(limite_para_direita):
        assert verificador.cabe_tetramino(tabuleiro_vazio, tetramino,
                                          "DIREITA")
        tetramino.move("DIREITA")

    assert not verificador.cabe_tetramino(tabuleiro_vazio, tetramino,
                                          "DIREITA")
Ejemplo n.º 7
0
def teste_todos_os_tabuleiros_devem_ficar_vazios(tabuleiro):
    global tabuleiro_zerado
    verificador = Verificador()
    verificador.verifica_linhas_completas(tabuleiro)
    assert tabuleiro.matriz == tabuleiro_zerado