Skip to content

Instantly share code, notes, and snippets.

@neodevelop
Created March 16, 2012 18:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neodevelop/2051680 to your computer and use it in GitHub Desktop.
Save neodevelop/2051680 to your computer and use it in GitHub Desktop.
Solución de Rodrigo Salado Anaya a NumbersToLCD
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DigitosCool
{
class Digito
{
/// <summary>
/// Diccionario que define los diferentes símbolos para pintar los números.
/// </summary>
private Dictionary<int, string> leds = new Dictionary<int, string>()
{
{0, " "}, {1, " _ "}, {2, "| |"}, {3, "|_|"}, {4, " | "}, {5, " _|"}, {6, "|_ "}, {7, " |"}
};
public string fila_1 { get; set; }
public string fila_2 { get; set; }
public string fila_3 { get; set; }
/// <summary>
/// Convierte un entero a modo display.
/// </summary>
/// <param name="numeroDeEntrada">Número ha convertir.</param>
public void ConvierteDigito(int numeroDeEntrada)
{
switch (numeroDeEntrada)
{
case 0: AsignaValoresALasFilas(1, 2, 3); break;
case 1: AsignaValoresALasFilas(0, 4, 4); break;
case 2: AsignaValoresALasFilas(1, 5, 6); break;
case 3: AsignaValoresALasFilas(1, 5, 5); break;
case 4: AsignaValoresALasFilas(0, 3, 7); break;
case 5: AsignaValoresALasFilas(1, 6, 5); break;
case 6: AsignaValoresALasFilas(1, 6, 3); break;
case 7: AsignaValoresALasFilas(1, 7, 7); break;
case 8: AsignaValoresALasFilas(1, 3, 3); break;
case 9: AsignaValoresALasFilas(1, 3, 5); break;
}
}
/// <summary>
/// Asigna los símbolos necesarios a cada fila que representa un digito.
/// </summary>
/// <param name="_1">Símbolo para fila 1.</param>
/// <param name="_2">Símbolo para fila 2.</param>
/// <param name="_3">Símbolo para fila 3.</param>
private void AsignaValoresALasFilas(int _1, int _2, int _3)
{
fila_1 = leds[_1]; fila_2 = leds[_2]; fila_3 = leds[_3];
}
/// <summary>
/// Convierte una lista de caracteres numéricos a símbolos de display.
/// </summary>
/// <param name="numerosDeEntrada">Lista de caracteres ha convertir.</param>
/// <returns>Número[s] estilo display.</returns>
public string ConvirteDigitos(string numerosDeEntrada)
{
string filaCompleta_1 = null, filaCompleta_2 = null, filaCompleta_3 = null;
foreach (var caracterNuemrico in numerosDeEntrada)
{
int numero;
int.TryParse(caracterNuemrico.ToString(), out numero);
var digito = new Digito();
digito.ConvierteDigito(numero);
filaCompleta_1 += digito.fila_1 + ' ';
filaCompleta_2 += digito.fila_2 + ' ';
filaCompleta_3 += digito.fila_3 + ' ';
}
return filaCompleta_1 + '\n' + filaCompleta_2 + '\n' + filaCompleta_3;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DigitosCool
{
class Program
{
static void Main(string[] args)
{
var digitoCool = new Digito();
Console.WriteLine(digitoCool.ConvirteDigitos("1312143546575687980"));
Console.Read();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment