Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cifrador de Polybios

Estas en el tema de Cifrador de Polybios en el foro de Javascript en Foros del Web. Hola a todos! Soy el nuevo usuario en el Foro del Web. Os voy a comentar que he intentado hacer un 'if' para descifrar el ...
  #1 (permalink)  
Antiguo 11/12/2015, 14:36
 
Fecha de Ingreso: diciembre-2015
Ubicación: Granada
Mensajes: 9
Antigüedad: 8 años, 4 meses
Puntos: 0
Pregunta Cifrador de Polybios

Hola a todos!

Soy el nuevo usuario en el Foro del Web. Os voy a comentar que he intentado hacer un 'if' para descifrar el mensaje y me obliga a poner las comas en 'prompt' (Por ejemplo, AA,EA,DB,AE). ¿Ayúdame a solucionar sin comas?

Y también, a la hora de descifrar el mensaje, si yo introduzco una sola letra 'I', el resultado me sale 'IJ' porque en la tabla de Polybios, hay una celda con dos letras juntas. Eso lo quiero saber para solucionar, ¿Ayúdame a solucionar?.

Código:
		<script type="text/javascript" >

var menu = "Elija la opción deseada (1-3):\n\
1. Cifrar el mensaje\n\
2. Descifrar el mensaje\n\
3. Salir";

var opcion = prompt(menu);
	
var normal = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',' '];
var cifrado = ['AA','AB','AC','AD','AE','BA','BB','BC','BD','BD','BE','CA','CB','CC','CD','CE','DA','DB','DC','DD','DE','EA','EB','EC','ED','EE',' '];
var resultado = [];	

if ( opcion == "1" ) {
	var texto = prompt("Introduce un mensaje para cifrarlo: ").split("");
			
	for ( var i = 0; i < texto.length; i++ ) {
		for ( var j = 0; j < normal.length; j++ ) {
			if ( texto[i] == normal[j] ) {resultado.push(cifrado[j])};
		}
	}
		
	alert("Este mensaje cifrado es <<" +resultado.join("")+ ">>.");
	location.reload();

} else if (opcion == "2") {
	var texto = prompt("Introduce el mensaje cifrado para descifrarlo (Por ejemplo, AA,EA,DB): ").split(",");

	for ( var i = 0; i < texto.length; i++ ) {
		for ( var j = 0; j < normal.length; j++ ) {
			if ( texto[i] == cifrado[j] ) {resultado.push(normal[j])};
		}
	}
	
	alert("Este mensaje descifrado es <<" +resultado.join("")+ ">>.");
	location.reload(); 

} else if (opcion == "3") {
	alert("Saliendo del programa, ¡hasta luego!");
	
} else {
	alert("¡Error, debes introducir (1-3)!");
	location.reload();
}
					
		</script>
Por favor y Gracias
Un saludo!

Última edición por jakoito90; 11/12/2015 a las 16:20
  #2 (permalink)  
Antiguo 12/12/2015, 10:06
 
Fecha de Ingreso: diciembre-2015
Ubicación: Granada
Mensajes: 9
Antigüedad: 8 años, 4 meses
Puntos: 0
Mensaje Respuesta: Cifrador de Polybios

Hola, de nuevo!

Aquí tenemos una solución para ejecute el cifrador de Polybios 100%.

Código:
		<script type="text/javascript" >

var menu = "Elija la opción deseada (1-3):\n\
1. Cifrar el mensaje\n\
2. Descifrar el mensaje\n\
3. Salir";

var opcion = prompt(menu);
	
var normal = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',' '];
var cifrado = ['AA','AB','AC','AD','AE','BA','BB','BC','BD','BD','BE','CA','CB','CC','CD','CE','DA','DB','DC','DD','DE','EA','EB','EC','ED','EE',' '];
var resultado = [];	

if ( opcion == "1" ) {
	var texto = prompt("Introduce un mensaje para cifrarlo: ").toUpperCase().split("");
			
	for ( var i = 0; i < texto.length; i++ ) {
		for ( var j = 0; j < normal.length; j++ ) {
			if ( texto[i] == normal[j] ) {resultado.push(cifrado[j])};
		}
	}
		
	alert("Este mensaje cifrado es <<" +resultado.join("")+ ">>.");
	location.reload();

} else if (opcion == "2") {
	var texto = prompt("Introduce el mensaje cifrado para descifrarlo: ").toUpperCase().replace(/ /g, '  ').match(/.{1,2}/g);

	for ( var i = 0; i < texto.length; i++ ) {
		if (texto[i] == '  ') { texto[i] = ' ';}
		for ( var j = 0; j < normal.length; j++ ) {
			if ( texto[i] == cifrado[j] ) {resultado.push(normal[j])};
		}
	}
	
	alert("Este mensaje descifrado es <<" +resultado.join("")+ ">>.");
	location.reload(); 

} else if (opcion == "3") {
	alert("Saliendo del programa, ¡hasta luego!");
	
} else {
	alert("¡Error, inténtalo de nuevo!");
	location.reload();
}
					
		</script>
Un saludo!
  #3 (permalink)  
Antiguo 12/12/2015, 10:12
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Cifrador de Polybios

Genial, has logrado arreglarlo.

Solo era cambiar esto:
Código:
var texto = prompt("Introduce el mensaje cifrado para descifrarlo (Por ejemplo, AA,EA,DB): ").split(",");
Por esto:
Código:
var texto = prompt("Introduce el mensaje cifrado para descifrarlo: ").toUpperCase().replace(/ /g, '  ').match(/.{1,2}/g);
.
Bien, ya podemos cifrar textos :D

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:14.