Rutas
/
Cairo
Cairo
/
Ejercicios
/
El reino de los ecos
El reino de los ecos

El reino de los ecos

Ejercicio de aprendizaje

Introducción

Imprimir en Cairo te permite mostrar mensajes o información de depuración durante la ejecución del programa.

Conceptos básicos

Cairo proporciona dos macros para imprimir:

  • println!: muestra un mensaje seguido de un salto de línea.
  • print!: muestra un mensaje sin un salto de línea.
println!("Hello, Cairo!"); 
println!("x = {}, y = {}", 10, 20); 

Los marcadores de posición {} se sustituyen por los valores proporcionados.

Dar formato a strings

Usa format! para crear un ByteArray sin imprimirlo inmediatamente:

let result = format!("{}-{}-{}", "tic", "tac", "toe");
println!("{}", result); // Output: tic-tac-toe

Tipos de datos personalizados

Para los tipos personalizados, implementa Display o deriva Debug para imprimirlos:

#[derive(Debug)]
struct Point { x: u8, y: u8 }

let p = Point { x: 3, y: 4 };
println!("{:?}", p); // Debug output: Point { x: 3, y: 4 }

Impresión en hexadecimal

Usa {:x} para imprimir números enteros en hexadecimal:

println!("{:x}", 255); // Output: ff

Instrucciones

En el mundo mágico de Echoes existe un poderoso hechizo llamado «EchoSpeak». Este hechizo permite a los magos comunicar sus pensamientos y observaciones mediante palabras habladas, que unas plumas mágicas se encargan de escribir. Para dominar este hechizo, los magos deben aprender a formular sus palabras y sus pensamientos de forma clara y concisa, ya sea sobre números, objetos o complejas construcciones mágicas.

Tu tarea como aprendiz de mago es dominar el arte de EchoSpeak. Para ello tendrás que aprender a imprimir distintos tipos de datos mágicos en los pergaminos encantados. EchoSpeak funciona tomando una tinta mágica especial, representada por el ByteArray, e inscribiendo mensajes formateados en el pergamino mediante hechizos como println! y print!.

Sin embargo, cuando se trata de construcciones mágicas personalizadas, como objetos o hechizos encantados, EchoSpeak necesita un conjuro especial para entender cómo representar esos objetos. Ahí es donde entra tu magia: aprender a implementar hechizos especiales conocidos como traits para objetos mágicos personalizados.

1. Formatear palabras mágicas

A veces, los magos necesitan formatear sus palabras mágicas antes de inscribirlas en los pergaminos. Escribirás una función que formatee tres palabras mágicas en un único mensaje.

Implementa una función llamada format_magical_chant que devuelva un string con la forma «chant1-chant2-chant3».

Ejemplo:

let result = format_magical_chant("Spark", "Shine", "Glow");
assert_eq!(result, "Spark-Shine-Glow");

2. Hacer eco de objetos encantados personalizados

El reino de Echoes está lleno de objetos encantados. Uno de ellos es la EchoStone, que contiene dos atributos mágicos: poder y duración. Tu tarea es implementar la función stringify_echo_stone, que convierte una EchoStone en un ByteArray con el formato especial "EchoStone [power: x, duration: y]" implementando el trait Display.

Ejemplo:

let stone = EchoStone { power: 100, duration: 300 };
assert_eq!(stringify(stone), "EchoStone [power: 100, duration: 300]");

3. Depurar la magia

Como aprendiz de mago, depurar es esencial para las construcciones mágicas complejas. Crearás una función que imprima una EchoStone para depurarla usando el trait Debug. El formato debe ser: "Debugging EchoStone: { power: x, duration: y }".

Ejemplo:

let stone = EchoStone { power: 25, duration: 10 };
assert_eq!(format!("{:?}", stone), "Debugging EchoStone: { power: 25, duration: 10 }");
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Cairo Exercism

¿Listo para empezar El reino de los ecos?

Regístrate en Exercism para aprender y dominar Cairo con 25 conceptos68 ejercicios y mentoría humana real, todo gratis.