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

El reino de los ecos

Ejercicio de aprendizaje

Introducción

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

Conceptos básicos

Cairo ofrece dos macros para imprimir:

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

Los marcadores de posición {} se reemplazan con los valores proporcionados.

Dar formato a strings

Usa format! para crear un ByteArray sin imprimirlo de inmediato:

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 poder 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 los Ecos, existe un poderoso hechizo llamado "EchoSpeak". Este hechizo permite a los magos comunicar sus pensamientos y observaciones mediante palabras habladas, que son escritas por plumas mágicas. Para dominar este hechizo, los magos deben aprender a formular sus palabras y 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. Esto requiere que aprendas a imprimir varios 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 usando hechizos como println! y print!.

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

1. Dar formato a palabras mágicas

A veces, los magos necesitan dar formato a sus palabras mágicas antes de inscribirlas en pergaminos. Escribirás una función que da formato a tres palabras mágicas en un solo mensaje.

Implementa una función llamada format_magical_chant que devuelve un string formateado con la forma "canto1-canto2-canto3".

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 los Ecos está lleno de objetos encantados. Uno de esos objetos es EchoStone, que contiene dos atributos mágicos: poder y duración. Tu tarea es implementar la función stringify_echo_stone, que convierte un EchoStone en un ByteArray con un 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 construcciones mágicas complejas. Crearás una función que imprime un EchoStone para depuración 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 una pestaña nuevas
Cairo Exercism

¿Todo 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.