Sunday, March 06, 2011

110104 Pantalla de cristal liquido

import java.util.Scanner;

/**
* 110104 - Pantalla de cristal líquido
*
* @author BreakDark
* @version 1.5 beta
*/
// ACEPTADO!!! xD
class Main {
// matriz para cada dígito
static char[][] d1 = {{' ', ' ', ' '}, {' ', ' ', '|'}, {' ', ' ', ' '}, {' ', ' ', '|'}, {' ', ' ', ' '}};

static char[][] d2 = {{' ', '-', ' '}, {' ', ' ', '|'}, {' ', '-', ' '}, {'|', ' ', ' '}, {' ', '-', ' '}};

static char[][] d3 = {{' ', '-', ' '}, {' ', ' ', '|'}, {' ', '-', ' '}, {' ', ' ', '|'}, {' ', '-', ' '}};

static char[][] d4 = {{' ', ' ', ' '}, {'|', ' ', '|'}, {' ', '-', ' '}, {' ', ' ', '|'}, {' ', ' ', ' '}};

static char[][] d5 = {{' ', '-', ' '}, {'|', ' ', ' '}, {' ', '-', ' '}, {' ', ' ', '|'}, {' ', '-', ' '}};

static char[][] d6 = {{' ', '-', ' '}, {'|', ' ', ' '}, {' ', '-', ' '}, {'|', ' ', '|'}, {' ', '-', ' '}};

static char[][] d7 = {{' ', '-', ' '}, {' ', ' ', '|'}, {' ', ' ', ' '}, {' ', ' ', '|'}, {' ', ' ', ' '}};

static char[][] d8 = {{' ', '-', ' '}, {'|', ' ', '|'}, {' ', '-', ' '}, {'|', ' ', '|'}, {' ', '-', ' '}};

static char[][] d9 = {{' ', '-', ' '}, {'|', ' ', '|'}, {' ', '-', ' '}, {' ', ' ', '|'}, {' ', '-', ' '}};

static char[][] d0 = {{' ', '-', ' '}, {'|', ' ', '|'}, {' ', ' ', ' '}, {'|', ' ', '|'}, {' ', '-', ' '}};

// matriz para la cadena de dígitos
static String[] vector = new String[5];
static int i, j; // para los bucles
static byte s; // para el tamaño de las lineas

public static void main(String[] args) {
Scanner Lee; // para leer los datos

String numero; // para el número a mostrar
// INICIA EL PROGRAMA
Lee = new Scanner(System.in); // leo los datos de entrada
s = Lee.nextByte();
numero = Lee.next();
while((s != 0) || !(numero.equals("0"))){
// cargo el número en la matriz
Main.cargar(numero);
// muestro la matriz
if(s > 0)
Main.mostrar();
System.out.println(); // imprimo una linea en blanco
s = Lee.nextByte();
numero = Lee.next();
}
}

/**
* Método que carga la matriz con el número num
*
* @param num
* Cadena con el valor del número
*/
static void cargar(String num) {
byte k; // para un bucle
char[][] digito = new char[5][3]; // para guardar el digito
// inicializamos el vector
vector[0] = "";
vector[1] = "";
vector[2] = "";
vector[3] = "";
vector[4] = "";
for(i = 0; i < num.length(); i++){
switch(num.charAt(i)){
case '1':
digito = d1;
break;
case '2':
digito = d2;
break;
case '3':
digito = d3;
break;
case '4':
digito = d4;
break;
case '5':
digito = d5;
break;
case '6':
digito = d6;
break;
case '7':
digito = d7;
break;
case '8':
digito = d8;
break;
case '9':
digito = d9;
break;
case '0':
digito = d0;
break;
}
for(j = 0; j < 5; j++){
vector[j] += digito[j][0];
for(k = 0; k < s; k++)
vector[j] += digito[j][1];
vector[j] += digito[j][2];
vector[j] += ' ';
}
}
}

/**
* Método que muestra la matriz
*/
static void mostrar() {
byte k; // para un bucle
for(i = 0; i < 5; i++){
if((i == 1) || (i == 3)){
for(k = 0; k < s; k++)
System.out.println(vector[i].substring(0, vector[i].length()-1));
}
else
System.out.println(vector[i].substring(0, vector[i].length()-1));
}
}
}

No comments: