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
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")