Azul oscuro casi negro
ProgramaciónCambio de bases
La semana pasada el director de cine Daniel Sánchez Arévalo nos enviaba un reto en el que nos pedía que transformáramos colores en decimal a hexadecimal y que titulamos #0000FF oscuro casi #000000.
Enunciado del reto:
El reto decía:
Hola, Ada:
Necesito un programa sencillito que transforme un código en RGB en hexadecimal. La idea es que, a partir de tres variables (rojo, verde y azul) devuelva el código de color en hexadecimal.
Ejemplo de entrada: 0, 36, 255
Ejemplo de salida: #0024ff
En este caso dimos con cuatro maneras de resolverlo; o mejor dicho, dos, una de ellas con variaciones, que podrás ver en dos vídeos:
- La primera, la más clásica, en la que no utilizamos funciones especiales de Javascript. Esta sería la versión que, desde el punto de vista algorítmico, podría trasladarse a otros lenguajes de programación de alto nivel cambiando detalles mínimos.
- La segunda, en la que utilizamos una función de Javascript que nos permite parsear un número en binario a hexadecimal.
- La tercera, similar a la anterior, pero con una comprobación un poco más sencilla para asegurarnos que los números recibidos están entre 0 y 255.
- La última, una versión de la tercera utilizando una función flecha, o arrow function.
Pero como siempre, recordad, ¡no hay una única solución al problema; hay soluciones mejores y soluciones peores!
¿Qué aprenderás en los vídeos?
En este vídeo veremos:
- Cómo seleccionar un elemento de un array constante.
- Cómo trabajar con las operaciones división con decimales, división entera y módulo o resto.
- La función toString para hacer una transformación entre bases.
- La función slice para extraer un número de caracteres de una cadena.
- La función toUpperCase para transformar una cadena a mayúsculas.
- Un modo de reducir un número a un rango de valores con Math.max y Math.min.
- Y por último, cómo transformar una función normal a una arrow function.
Vídeos y código fuente
¡¿A qué esperas?! ¡Echa un ojo a los vídeos vídeo!
Código fuente de la solución
[/not_logged_in]
¿Tú cómo lo habrías hecho? ¡Espero tus propuestas en los comentarios!
Y si quieres compartir código, te recomiendo que utilices alguna herramienta online de testing de código como Codepen, JSFiddle, PlayCode, etc. o repositorios como GitHub, GitLab, BitBucket…
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.