Esempio n. 1
0
def MoveSelect(matriz, x, y, p1, p2, instrucoes, c,
               enter):  #Recebe uma tecla, retorna coordenadas para > <
    if (ord(c) == 32):  #espaço -> enter
        enter = 1
    elif (ord(c) == 119):  #w
        if (x != 0):
            x = Move.W(matriz, x, y)
            MontaMatriz(matriz, x, y, p1, p2, instrucoes)
    elif (ord(c) == 97):  #a
        if (y != 0):
            y = Move.A(matriz, x, y)
            MontaMatriz(matriz, x, y, p1, p2, instrucoes)
    elif (ord(c) == 115):  #s
        if (x != 6):
            x = Move.S(matriz, x, y)
            MontaMatriz(matriz, x, y, p1, p2, instrucoes)
    elif (ord(c) == 100):  #d
        if (y != 6):
            y = Move.D(matriz, x, y)
            MontaMatriz(matriz, x, y, p1, p2, instrucoes)
    elif (ord(c) == 63):  #?
        Help()
        MontaMatriz(matriz, x, y, p1, p2, instrucoes)
    elif (ord(c) == 102):  #ff
        if (MenuAbandono.MenuAbandono()):
            enter = 2
        else:
            MontaMatriz(matriz, x, y, p1, p2, instrucoes)
    elif (ord(c) == 99):  #c
        enter = 3

    coordenadas = []
    coordenadas.append(x)
    coordenadas.append(y)
    coordenadas.append(enter)
    return coordenadas
Esempio n. 2
0
def main():
    matriz = [" "] * 7
    for i in range(7):
        matriz[i] = [" "] * 7

    matriz[0][1] = "-"
    matriz[0][2] = "-"
    matriz[0][4] = "-"
    matriz[0][5] = "-"
    matriz[1][0] = "|"
    matriz[1][2] = "-"
    matriz[1][4] = "-"
    matriz[1][6] = "|"
    matriz[2][0] = "|"
    matriz[2][1] = "|"
    matriz[2][5] = "|"
    matriz[2][6] = "|"
    matriz[3][3] = "#"
    matriz[6][1] = "-"
    matriz[6][2] = "-"
    matriz[6][4] = "-"
    matriz[6][5] = "-"
    matriz[5][0] = "|"
    matriz[5][2] = "-"
    matriz[5][4] = "-"
    matriz[5][6] = "|"
    matriz[4][0] = "|"
    matriz[4][1] = "|"
    matriz[4][5] = "|"
    matriz[4][6] = "|"
    x = 0
    y = 3

    p1 = []
    p2 = []
    for i in range(9):  #peças que faltam paara serem posicionadas
        p1.append("X")
        p2.append("O")

    Posiciona = []  #Textinho pra mostras pro jogador
    Posiciona.append(
        "|        É a vez do jogador 1. Sua peça é 'X'. Escolha onde posiciona-la.       |\n|                                                                               |"
    )
    Posiciona.append(
        "|        É a vez do jogador 2. Sua peça é 'O'. Escolha onde posiciona-la.       |\n|                                                                               |"
    )
    coordenadas = []
    combo1 = 0
    combo2 = 0
    status = 0
    ### 1ª parte do jogo - posicionamento de peças
    for i in range(8, -1, -1):  #8
        jogada_valida = 0
        if (status == 2):
            break
        ###jogada do P1 X
        while (jogada_valida == 0):
            coordenadas = Selected(matriz, x, y, p1, p2, Posiciona[0])
            if (coordenadas[2] == 2):
                status = 2
                jogada_valida = 1
                break
            if (matriz[coordenadas[0]][coordenadas[1]] == " "
                ):  #da pra colocar ali?
                matriz[coordenadas[0]][coordenadas[1]] = "X"
                jogada_valida = 1
                p1[i] = " "  #tirou uma peça
            x = coordenadas[0]
            y = coordenadas[1]
            #Cheka o combo
            if (ehcombo(matriz, x, y, 'X')):
                retirou = 0
                while (retirou == 0):
                    coordenadas = Selected(
                        matriz, x, y, p1, p2,
                        '|      Boa! Você pontuou! Agora escolha uma peça do jogador 2 para retirar      |\n|                                                                               |'
                    )
                    if (coordenadas[2] == 2):
                        jogada_valida = 1
                        status = 2
                        break
                    if ((matriz[coordenadas[0]][coordenadas[1]] == 'O')
                            and (poderetirar(matriz, coordenadas[0],
                                             coordenadas[1], 'O'))):
                        matriz[coordenadas[0]][coordenadas[1]] = ' '
                        retirou += 1
                    x = coordenadas[0]
                    y = coordenadas[1]
        jogada_valida = 0
        if (status != 0):
            break
        ###Jogada do P2 O
        while (jogada_valida == 0):
            coordenadas = Selected(matriz, x, y, p1, p2, Posiciona[1])
            if (coordenadas[2] == 2):
                status = 1
                jogada_valida = 1
                break
            if (matriz[coordenadas[0]][coordenadas[1]] == " "):
                matriz[coordenadas[0]][coordenadas[1]] = "O"
                jogada_valida = 1
                p2[i] = " "
            x = coordenadas[0]
            y = coordenadas[1]
            #Cheka o combo
            if (ehcombo(matriz, x, y, 'O')):
                retirou = 0
                while (retirou == 0):
                    coordenadas = Selected(
                        matriz, x, y, p1, p2,
                        '|      Boa! Você pontuou! Agora escolha uma peça do jogador 1 para retirar      |\n|                                                                               |'
                    )
                    if (coordenadas[2] == 2):
                        jogada_valida = 1
                        status = 1
                        break
                    if ((matriz[coordenadas[0]][coordenadas[1]] == 'X')
                            and (poderetirar(matriz, coordenadas[0],
                                             coordenadas[1], 'X'))):
                        matriz[coordenadas[0]][coordenadas[1]] = ' '
                        retirou += 1
                    x = coordenadas[0]
                    y = coordenadas[1]
        if (status != 0):
            break

    MontaMatriz(matriz, x, y, p1, p2, 'cabo')

    ### 2ª parte do jogo - movimentação de peças

    Posiciona[
        0] = "|       É a vez do jogador 1. Sua peça é 'X'. Escolha qual deseja mover.        |\n|                                                                               |"
    Posiciona[
        1] = "|       É a vez do jogador 2. Sua peça é 'O'. Escolha qual deseja mover.        |\n|                                                                               |"
    selecionada = []
    selecionada.append(
        "|                 Peça selecioanada! Escolha para onde movê-la.                 |\n|                       Use 'C' para cancelar a seleção.                        |"
    )
    selecionada.append(
        "|    Peça selecioanada! Escolha para onde movê-la, pode ser qualquer lugar!      |\n|                       Use 'C' para cancelar a seleção.                        |"
    )
    kb = Kbhit.KBHit()
    while (status == 0):
        c = 'a'
        jogada_valida = 0
        ###jogada do P1 X
        if (Block(matriz, "X")):
            status = 2
            break
        elif (Block(matriz, "O")):
            status = 1
            break
        else:
            while (jogada_valida == 0):
                coordenadas = Selected(matriz, x, y, p1, p2, Posiciona[0])
                if (coordenadas[2] == 2):
                    jogada_valida == 1
                    status = 2
                    break
                x = coordenadas[0]
                y = coordenadas[1]
                if (matriz[coordenadas[0]][coordenadas[1]] == "X"
                    ):  #da pra mover?
                    if (conta(matriz, 'X') > 3):
                        if ((CheckSeMove.W(matriz, x, y))
                                or (CheckSeMove.A(matriz, x, y))
                                or (CheckSeMove.S(matriz, x, y))
                                or (CheckSeMove.D(matriz, x, y))):
                            MontaMatriz(matriz, x, y, p1, p2, selecionada[0])
                            while (jogada_valida == 0):
                                c = Hit()
                                #W
                                if ((ord(c) == 119)
                                        and (CheckSeMove.W(matriz, x, y))):
                                    matriz[x][y] = " "
                                    x = Move.W(matriz, x, y)
                                    matriz[x][y] = "X"
                                    jogada_valida = 1
                                #A
                                elif ((ord(c) == 97)
                                      and (CheckSeMove.A(matriz, x, y))):
                                    matriz[x][y] = " "
                                    y = Move.A(matriz, x, y)
                                    matriz[x][y] = "X"
                                    jogada_valida = 1
                                #S
                                elif ((ord(c) == 115)
                                      and (CheckSeMove.S(matriz, x, y))):
                                    matriz[x][y] = " "
                                    x = Move.S(matriz, x, y)
                                    matriz[x][y] = "X"
                                    jogada_valida = 1
                                #D
                                elif ((ord(c) == 100)
                                      and (CheckSeMove.D(matriz, x, y))):
                                    matriz[x][y] = " "
                                    y = Move.D(matriz, x, y)
                                    matriz[x][y] = "X"
                                    jogada_valida = 1
                                elif (ord(c) == 63):  #?
                                    Help()
                                    MontaMatriz(matriz, x, y, p1, p2,
                                                instrucoes)
                                elif (ord(c) == 102):  #ff
                                    if (MenuAbandono.MenuAbandono()):
                                        status = 2
                                        jogada_valida = 2
                                        break
                                    else:
                                        MontaMatriz(matriz, x, y, p1, p2,
                                                    instrucoes)
                                elif (ord(c) == 99):  #c
                                    break
                            if (ehcombo(matriz, x, y, 'X')):
                                retirou = 0
                                while (retirou == 0):
                                    coordenadas = Selected(
                                        matriz, x, y, p1, p2,
                                        '|      Boa! Você pontuou! Agora escolha uma peça do jogador 2 para retirar      |\n|                                                                               |'
                                    )
                                    if (coordenadas[2] == 2):
                                        jogada_valida = 1
                                        status = 2
                                        break
                                    if ((matriz[coordenadas[0]][coordenadas[1]]
                                         == 'O') and
                                        (poderetirar(matriz, coordenadas[0],
                                                     coordenadas[1], 'O'))):
                                        matriz[coordenadas[0]][
                                            coordenadas[1]] = ' '
                                        retirou += 1
                                    x = coordenadas[0]
                                    y = coordenadas[1]
                                    if (conta(matriz, 'O') == 2):
                                        status = 1
                    #tem menos de 3 peças?
                    else:
                        a = x
                        b = y
                        matriz[x][y] = 'x'
                        while (jogada_valida == 0):
                            coordenadas = Selected(matriz, x, y, p1, p2,
                                                   selecionada[1])
                            x = coordenadas[0]
                            y = coordenadas[1]
                            if (coordenadas[2] == 2):  #ff
                                status = 2
                                jogada_valida = 1
                                break
                            elif (coordenadas[2] == 3):  #c
                                matriz[a][b] = 'X'
                                break
                            elif (matriz[x][y] == ' '):
                                matriz[a][b] = ' '
                                matriz[x][y] = 'X'
                                jogada_valida = 1
                        if (ehcombo(matriz, x, y, 'X')):
                            retirou = 0
                            while (retirou == 0):
                                coordenadas = Selected(
                                    matriz, x, y, p1, p2,
                                    '|      Boa! Você pontuou! Agora escolha uma peça do jogador 2 para retirar      |\n|                                                                               |'
                                )
                                if (coordenadas[2] == 2):
                                    jogada_valida = 1
                                    status = 2
                                    break
                                if ((matriz[coordenadas[0]][coordenadas[1]]
                                     == 'O') and
                                    (poderetirar(matriz, coordenadas[0],
                                                 coordenadas[1], 'O'))):
                                    matriz[coordenadas[0]][
                                        coordenadas[1]] = ' '
                                    retirou += 1
                                    jogada_valida = 1
                                x = coordenadas[0]
                                y = coordenadas[1]
                                if (conta(matriz, 'O') == 2):
                                    status = 1
        if (ord(c) == 99):
            break
        jogada_valida = 0
        ###Jogada do P2 O
        if (Block(matriz, "O") and (status == 0)):
            status = 1
            break
        elif (Block(matriz, "X")):
            status = 2
            break
        elif (status == 0):
            while (jogada_valida == 0):
                coordenadas = Selected(matriz, x, y, p1, p2, Posiciona[1])
                if (coordenadas[2] == 2):
                    jogada_valida == 1
                    status = 2
                    break
                x = coordenadas[0]
                y = coordenadas[1]
                if (matriz[coordenadas[0]][coordenadas[1]] == "O"
                    ):  #da pra mover?
                    if (conta(matriz, 'O') > 3):
                        if ((CheckSeMove.W(matriz, x, y))
                                or (CheckSeMove.A(matriz, x, y))
                                or (CheckSeMove.S(matriz, x, y))
                                or (CheckSeMove.D(matriz, x, y))):
                            MontaMatriz(matriz, x, y, p1, p2, selecionada[0])
                            while (jogada_valida == 0):
                                c = Hit()
                                #W
                                if ((ord(c) == 119)
                                        and (CheckSeMove.W(matriz, x, y))):
                                    matriz[x][y] = " "
                                    x = Move.W(matriz, x, y)
                                    matriz[x][y] = "O"
                                    jogada_valida = 1
                                #A
                                elif ((ord(c) == 97)
                                      and (CheckSeMove.A(matriz, x, y))):
                                    matriz[x][y] = " "
                                    y = Move.A(matriz, x, y)
                                    matriz[x][y] = "O"
                                    jogada_valida = 1
                                #S
                                elif ((ord(c) == 115)
                                      and (CheckSeMove.S(matriz, x, y))):
                                    matriz[x][y] = " "
                                    x = Move.S(matriz, x, y)
                                    matriz[x][y] = "O"
                                    jogada_valida = 1
                                #D
                                elif ((ord(c) == 100)
                                      and (CheckSeMove.D(matriz, x, y))):
                                    matriz[x][y] = " "
                                    y = Move.D(matriz, x, y)
                                    matriz[x][y] = "O"
                                    jogada_valida = 1
                                elif (ord(c) == 63):  #?
                                    Help()
                                    MontaMatriz(matriz, x, y, p1, p2,
                                                instrucoes)
                                elif (ord(c) == 102):  #ff
                                    if (MenuAbandono.MenuAbandono()):
                                        status = 1
                                        jogada_valida = 2
                                        break
                                    else:
                                        MontaMatriz(matriz, x, y, p1, p2,
                                                    instrucoes)
                                elif (ord(c) == 99):
                                    break
                            if (ehcombo(matriz, x, y, 'O')):
                                retirou = 0
                                while (retirou == 0):
                                    coordenadas = Selected(
                                        matriz, x, y, p1, p2,
                                        '|      Boa! Você pontuou! Agora escolha uma peça do jogador 1 para retirar      |\n|                                                                               |'
                                    )
                                    if (coordenadas[2] == 2):
                                        jogada_valida = 1
                                        status = 1
                                        break
                                    if (matriz[coordenadas[0]][coordenadas[1]]
                                            == 'X' and
                                        (poderetirar(matriz, coordenadas[0],
                                                     coordenadas[1], 'O'))):
                                        matriz[coordenadas[0]][
                                            coordenadas[1]] = ' '
                                        retirou += 1
                                    x = coordenadas[0]
                                    y = coordenadas[1]
                                    if (conta(matriz, 'X') == 2):
                                        status = 2
                    #tem menos de 3 peças?
                    else:
                        a = x
                        b = y
                        matriz[x][y] = 'o'
                        while (jogada_valida == 0):
                            coordenadas = Selected(matriz, x, y, p1, p2,
                                                   selecionada[1])
                            x = coordenadas[0]
                            y = coordenadas[1]
                            if (coordenadas[2] == 2):  #ff
                                status = 2
                                jogada_valida = 1
                                break
                            elif (coordenadas[2] == 3):  #c
                                matriz[a][b] = 'O'
                                break
                            elif (matriz[x][y] == ' '):
                                matriz[a][b] = ' '
                                matriz[x][y] = 'O'
                                jogada_valida = 1
                        if (ehcombo(matriz, x, y, 'O')):
                            retirou = 0
                            while (retirou == 0):
                                coordenadas = Selected(
                                    matriz, x, y, p1, p2,
                                    '|      Boa! Você pontuou! Agora escolha uma peça do jogador 2 para retirar      |\n|                                                                               |'
                                )
                                if (coordenadas[2] == 2):
                                    jogada_valida = 1
                                    status = 2
                                    break
                                if ((matriz[coordenadas[0]][coordenadas[1]]
                                     == 'X') and
                                    (poderetirar(matriz, coordenadas[0],
                                                 coordenadas[1], 'X'))):
                                    matriz[coordenadas[0]][
                                        coordenadas[1]] = ' '
                                    retirou += 1
                                    jogada_valida = 1
                                x = coordenadas[0]
                                y = coordenadas[1]
                                if (conta(matriz, 'X') == 2):
                                    status = 2

    ############################# Status #####################
    if (status == 1):
        Vitoria("X")
    elif (status == 2):
        Vitoria("O")