Track
/
Cairo
Cairo
/
Esercizi
/
Il regno degli echi
Il regno degli echi

Il regno degli echi

Esercizio di apprendimento

Introduzione

La stampa in Cairo ti permette di visualizzare messaggi o informazioni di debug durante l'esecuzione del programma.

Le basi

Cairo fornisce due macro per la stampa:

  • println!: Stampa un messaggio e poi va a capo.
  • print!: Stampa un messaggio senza andare a capo.
println!("Hello, Cairo!"); 
println!("x = {}, y = {}", 10, 20); 

I segnaposto {} vengono sostituiti con i valori forniti.

Formattazione delle stringhe

Usa format! per creare un ByteArray senza stamparlo subito:

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

Tipi di dati personalizzati

Per i tipi personalizzati, implementa Display o deriva Debug per stamparli:

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

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

Stampa esadecimale

Usa {:x} per stampare i numeri interi in esadecimale:

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

Istruzioni

Nel mondo magico di Echoes esiste un potente incantesimo chiamato «EchoSpeak». Questo incantesimo permette ai maghi di comunicare i propri pensieri e le proprie osservazioni attraverso parole pronunciate, che vengono trascritte da piume magiche. Per padroneggiare questo incantesimo, i maghi devono imparare a formulare le proprie parole e i propri pensieri in modo chiaro e conciso, che si tratti di numeri, oggetti o complesse costruzioni magiche.

Il tuo compito di Apprendista Mago è padroneggiare l'arte di EchoSpeak. Per riuscirci, dovrai imparare a stampare vari tipi di dati magici sulle pergamene incantate. EchoSpeak funziona prendendo un inchiostro magico speciale, rappresentato dal ByteArray, e incidendo messaggi formattati sulla pergamena usando incantesimi come println! e print!.

Tuttavia, quando si ha a che fare con costruzioni magiche personalizzate come oggetti incantati o incantesimi, EchoSpeak ha bisogno di una formula speciale per capire come rappresentare questi oggetti. Ed è qui che entra in gioco la tua magia: imparare a implementare incantesimi speciali noti come traits per oggetti magici personalizzati.

1. Formattare le parole magiche

A volte i maghi devono formattare le loro parole magiche prima di inciderle sulle pergamene. Scriverai una funzione che formatta tre parole magiche in un unico messaggio.

Implementa una funzione chiamata format_magical_chant che restituisce una stringa formattata nella forma "chant1-chant2-chant3".

Esempio:

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

2. Fare eco a oggetti incantati personalizzati

Il regno di Echoes è pieno di oggetti incantati. Uno di questi è l'EchoStone, che contiene due attributi magici: power e duration. Il tuo compito è implementare la funzione stringify_echo_stone, che converte un EchoStone in un ByteArray in un formato speciale "EchoStone [power: x, duration: y]" implementando il trait Display.

Esempio:

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

3. Il debug della magia

Come apprendista mago, il debug è essenziale per le costruzioni magiche complesse. Creerai una funzione che stampa un EchoStone per il debug usando il trait Debug. Il formato dovrebbe essere: "Debugging EchoStone: { power: x, duration: y }".

Esempio:

let stone = EchoStone { power: 25, duration: 10 };
assert_eq!(format!("{:?}", stone), "Debugging EchoStone: { power: 25, duration: 10 }");
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Cairo Exercism

Vuoi iniziare Il regno degli echi?

Iscriviti a Exercism per imparare e padroneggiare Cairo con 25 concetti68 esercizi e il mentoring di persone reali, tutto gratis.