Monday, December 05, 2016

LED es mi nuevo Hello World - Tiempo de Rust

Como actualmente estoy aprendiendo Rust, tenía que publica mi aplicación de números LED otra vez -;)

Por favor tomen en cuenta...que..."Estoy aprendiendo Rust"...así que código puede ser flojo, redundante y nada idiomático...pero...suficiente para mostrar el lenguaje y permitirme aprender más -;)

Aquí está el código...

led_numbers.rs
use std::io;
use std::collections::HashMap;

fn main(){
 let mut leds:HashMap<&str, &str> = HashMap::new();

 leds.insert("0", " _  ,| | ,|_| ");
 leds.insert("1", "  ,| ,| ");
 leds.insert("2", " _  , _| ,|_  ");
 leds.insert("3", "_  ,_| ,_| ");
 leds.insert("4", "    ,|_| ,  | "); 
 leds.insert("5", " _  ,|_  , _| ");
 leds.insert("6", " _  ,|_  ,|_| ");
 leds.insert("7", "_   , |  , |  ");
 leds.insert("8", " _  ,|_| ,|_| ");
 leds.insert("9", " _  ,|_| , _| ");

 println!("Enter a number : ");
 let mut input_text = String::new();
 io::stdin().read_line(&mut input_text)
            .expect("failed to read");

 let split = input_text.split("");
 let vec: Vec<&str> = split.collect();
 let count = &vec.len() - 2;
 
 for i in 0..3{
  for j in 0..count{
   match leds.get(&vec[j]){
    Some(led_line) => { 
     let line = led_line.split(",");
     let vec_line: Vec<&str> = line.collect();
     print!("{}",&vec_line[i]);
     },
    None => println!("")
   }
  }
  print!("");
 }
 println!("");
}

Y aquí está el resultado...


Espero que les guste y si pueden mostrarme una manera más Rusty de hacer las cosas...por favor me avisan -:D

Saludos,

Blag.
Development Culture.

No comments: