Example #1
0
def obtener_direccion(velocidad, dif_velocidad):
    """La funcion recibe la entrada del usuario y determina el movimiento de la serpiente"""
    tecla_actual = ""
    entrada_usuario = timed_input(velocidad + dif_velocidad)
    direccion = ""
    poder_especial = ""
    if not entrada_usuario == "":
        tecla_actual = entrada_usuario[0]
        if not tecla_actual in "awsdzxc":
            tecla_actual = ""
    if tecla_actual == "w":
        direccion = "arriba"
    if tecla_actual == "s":
        direccion = "abajo"
    if tecla_actual == "a":
        direccion = "izquierda"
    if tecla_actual == "d":
        direccion = "derecha"
    if tecla_actual == "z":
        poder_especial = "$"
    if tecla_actual == "c":
        poder_especial = "%"
    if tecla_actual == "x":
        poder_especial = "&"
    return direccion, poder_especial
Example #2
0
def pedir_movimiento(movimiento_anterior, tiempo_max):
    '''Recibe por parámetro el movieminto anterior y el tiempo máximo para ingresar una tecla. Cuando el usuario
	ingresa una tecla, se valida si es válida o no. La función devuelve el movimiento válido actual o el movimiento
	anterior.'''
    movimiento = terminal.timed_input(tiempo_max).lower()

    if es_movimiento_valido(movimiento):
        return obtener_movimiento_valido(movimiento)
    return movimiento_anterior
Example #3
0
def pedir_movimiento(movimiento_anterior, tiempo_max, teclas_especiales):
	'''Recibe por parámetro el movieminto anterior, el tiempo máximo para ingresar una tecla y las teclas necesarias para activar un especial. 
	Cuando el usuario ingresa una tecla, se valida si es válida o no. La función devuelve una secuencia con el movimiento válido actual o
	el movimiento anterior y con la tecla para activar el especial.'''
	movimiento = terminal.timed_input(tiempo_max).lower()

	movimiento_ingresado = obtener_movimiento_valido(movimiento, movimiento_anterior)
	especial_activado = obtener_especial_valido(movimiento, teclas_especiales)

	return movimiento_ingresado, especial_activado
Example #4
0
def start_game_loop():
  """Comienza el loop de renderizacion del tablero de juego"""
  global snake
  snake = [(random.randint(0, board_size - 1), random.randint(0, board_size - 1))]
  direction = 'w'
  while True:
    user_input = parse_user_input(timed_input(seconds_between_key_input))
    if user_input in directions.keys():
      direction = user_input

    generate_fruit()

    if not try_to_move_snake(direction): return False

    update_snake_position()
    clear_terminal()
    render_frame()
    if snake_size == max_snake_size: return True
def obtener_direccion():
    """La funcion recibe la entrada del usuario y determina el movimiento de la serpiente"""
    tecla_actual = ""
    entrada_usuario = timed_input(1)
    direccion = ""
    if not entrada_usuario == "":
        tecla_actual = entrada_usuario[0]
        if not tecla_actual in "awsd":
            tecla_actual = ""
    if tecla_actual == "w":
        direccion = "arriba"
    if tecla_actual == "s":
        direccion = "abajo"
    if tecla_actual == "a":
        direccion = "izquierda"
    if tecla_actual == "d":
        direccion = "derecha"
    return direccion
Example #6
0
def inputJugada(movimiento):
    """Recibe la variable de movimiento. Recibe, medianta input la
    jugada y comprueba que sea válida. Si no es válida, devuelve <NoneType>.
    Comprueba que lo ingresado no sea el opuesto del movimiento anterior."""

    entrada = timed_input(SPEED)

    if entrada.isspace():  #Para salir del juego, presiona <SPACE>
        return False

    if entrada == 'w' and not movimiento == 's':
        return entrada
    elif entrada == 'a' and not movimiento == 'd':
        return entrada
    elif entrada == 's' and not movimiento == 'w':
        return entrada
    elif entrada == 'd' and not movimiento == 'a':
        return entrada
    return movimiento
Example #7
0
def main():
    snake = 'O'
    tamañoSnake = 0
    fruta = '+'
    frutaCol, frutaFil = generarFruta()
    direccion = '+y'
    posX = (FILAS // 2)
    posY = (COLUMNAS // 2)

    for t in range(0, TIEMPO):
        tablero = []
        clear_terminal()
        print('Tiempo restante: ' + str(TIEMPO - t))
        print(f'Score: {tamañoSnake}')

        #Construir tablero
        for fila in range(0, FILAS):
            tablero.append([])
            for col in range(0, COLUMNAS):
                tablero[fila].append('.')

        if direccion == '+y': posY -= 1
        if direccion == '-y': posY += 1

        if direccion == '+x': posX += 1
        if direccion == '-x': posX -= 1

        #Posicionar fruta
        tablero[frutaFil][frutaCol] = COLOR_ROJO + '+' + COLOR_NORMAL

        #Snake come la fruta
        if frutaFil == abs(posY) and frutaCol == abs(posX):
            tamañoSnake += 1
            frutaCol, frutaFil = generarFruta()

        tablero[(posY)][(posX)] = COLOR_VERDE + snake + COLOR_NORMAL

        for s in range(0, tamañoSnake):
            if direccion == '+x': tablero[(posY + s)][(posX)] += snake
            if direccion == '-x': tablero[(posY - s)][(posX)] += snake

            if direccion == '+y': tablero[(posY)][(posX + s)] += snake
            if direccion == '-y': tablero[(posY)][(posX - s)] += snake

        #DEBUG ZONE
        #print(f"({posX}, {posY})")
        #END DEBUG ZONE

        if tamañoSnake == SNAKE_MAX_LENGHT: break

        #Imprime el tablero
        for fila in range(0, FILAS):
            lst = tablero[fila]
            tableroFinal = ""
            for dot in lst:
                tableroFinal += dot
            print(tableroFinal)

        #Recibe el input y fija una direccion
        entrada = timed_input(VELOCIDAD)

        if entrada == '' or len(entrada) > 1: continue
        if entrada.isspace() == True: break

        if entrada == 'w': direccion = '+y'
        if entrada == 's': direccion = '-y'
        if entrada == 'd': direccion = '+x'
        if entrada == 'a': direccion = '-x'

    print('Gracias por jugar!')