def completar_fichas_iniciales(fichas): '''completa las fichas con los valores iniciales (4 en el medio del tablero)''' from_x = floor(settings.ALTO / 2) - 1 from_y = floor(settings.ANCHO / 2) - 1 for i in range(from_y, from_y + 2): for j in range(from_x, from_x + 2): fichas[j][i] = util.get_simbolo_jugador('blanco') if i == j else util.get_simbolo_jugador('negro') return fichas
def completar_fichas_iniciales(fichas): '''completa las fichas con los valores iniciales (4 en el medio del tablero)''' from_x = floor(settings.ALTO / 2) - 1 from_y = floor(settings.ANCHO / 2) - 1 for i in range(from_y, from_y + 2): for j in range(from_x, from_x + 2): fichas[j][i] = util.get_simbolo_jugador( 'blanco') if i == j else util.get_simbolo_jugador('negro') return fichas
def obtener_ganador(fichas): fichas_blanco = 0 fichas_negro = 0 for fichas_x in fichas: for ficha in fichas_x: if ficha == util.get_simbolo_jugador('blanco'): fichas_blanco += 1 elif ficha == util.get_simbolo_jugador('negro'): fichas_negro += 1 if fichas_blanco == fichas_negro: return 'empate' return 'negro' if fichas_negro > fichas_blanco else 'blanco'
def pintar_linea(fichas, coordenada, coordenada_distancia, jugador): x, y = coordenada distancia_x, distancia_y = coordenada_distancia x += distancia_x y += distancia_y while fichas[x][y] == util.get_simbolo_jugador(util.get_oponente(jugador)): fichas[x][y] = util.get_simbolo_jugador(jugador) x += distancia_x y += distancia_y if not existe_coordenada(x, y): break
def obtener_lineas_a_pintar(fichas, coordenada, jugador): '''obtiene las lineas a pintar segun coordenada y jugador''' lineas_analizables = obtener_fichas_alrededor_oponente( fichas, coordenada, jugador) lineas_a_pintar = [] for coordenada_distancia in lineas_analizables: if obtener_ficha_final_de_linea( fichas, coordenada, coordenada_distancia, jugador) == util.get_simbolo_jugador(jugador): lineas_a_pintar.append(coordenada_distancia) return lineas_a_pintar
def obtener_ficha_final_de_linea(fichas, coordenada, coordenada_distancia, jugador): '''obtiene la ficha final (que no sea la del oponente) de la linea''' x, y = coordenada distancia_x, distancia_y = coordenada_distancia x += distancia_x y += distancia_y while fichas[x][y] == util.get_simbolo_jugador(util.get_oponente(jugador)): x += distancia_x y += distancia_y if not existe_coordenada(x, y): return '' return fichas[x][y]
def colocar_ficha(fichas, coordenada, jugador): '''coloca la ficha del jugador correspondiente en la coordenada correspondiente, colocando las fichas capturadas''' x, y = coordenada fichas[x][y] = util.get_simbolo_jugador(jugador) capturar_fichas(fichas, coordenada, jugador)
def existe_ficha_de_oponente(fichas, x, y, jugador): '''existe una ficha del oponente en la coordenada del parametro?''' if existe_coordenada(x, y): return fichas[x][y] == util.get_simbolo_jugador( util.get_oponente(jugador))
def existe_ficha_de_oponente(fichas, x, y, jugador): '''existe una ficha del oponente en la coordenada del parametro?''' if existe_coordenada(x, y): return fichas[x][y] == util.get_simbolo_jugador(util.get_oponente(jugador))
def obtener_lineas_a_pintar(fichas, coordenada, jugador): '''obtiene las lineas a pintar segun coordenada y jugador''' lineas_analizables = obtener_fichas_alrededor_oponente(fichas, coordenada, jugador) lineas_a_pintar = [] for coordenada_distancia in lineas_analizables: if obtener_ficha_final_de_linea(fichas, coordenada, coordenada_distancia, jugador) == util.get_simbolo_jugador(jugador): lineas_a_pintar.append(coordenada_distancia) return lineas_a_pintar