示例#1
0
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
示例#2
0
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
示例#3
0
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'
示例#4
0
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
示例#5
0
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'
示例#6
0
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
示例#7
0
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
示例#8
0
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]
示例#9
0
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]
示例#10
0
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)
示例#11
0
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))
示例#12
0
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)
示例#13
0
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))
示例#14
0
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