diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..fbb5dc3 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,29 @@ +{ + "parserOptions": { + "ecmaVersion": 6 + }, + "rules": { + "keyword-spacing": 1, + "space-before-function-paren": [1, "never"], + "eqeqeq": 1, + "space-infix-ops": 1, + "comma-spacing": 1, + "brace-style": 1, + "no-multiple-empty-lines": 1, + "camelcase": 1, + "func-call-spacing": 1, + "key-spacing": 1, + "semi": 1, + "no-floating-decimal": 1, + "no-multi-spaces": 1, + "object-property-newline": 1, + "padded-blocks": [1, "never"], + "space-before-blocks": 1, + "space-in-parens": 1, + "spaced-comment": 1, + "quotes": [1, "single"], + "id-length": [1, { "exceptions": ["i", "j", "x"] }], + "indent": [1, 2], + "no-array-constructor": 1 + } +} diff --git a/README.md b/README.md deleted file mode 100644 index e2577d6..0000000 --- a/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Cifrado César - -> Recuerda seguir siempre esta [guía de estilos](https://github.com/Laboratoria/js-style-guide/) - -Crea una web que pida, por medio de un `prompt()`, una frase al usuario y -devuelva el mismo mensaje encriptado según el -[algoritmo de Cifrado César](https://en.wikipedia.org/wiki/Caesar_cipher) -con el parámetro de desplazamiento de **33 espacios hacia la derecha** - -Por ejemplo: - -- Texto original: `ABCDEFGHIJKLMNOPQRSTUVWXYZ` -- Texto codificado: `HIJKLMNOPQRSTUVWXYZABCDEFG` - -## Entregables - -Para cada producto debes entregar **un repositorio de GitHub** que -contenga: -1. Archivo `README.md` que explique el **pseudocódigo** de tu solución y su -**diagrama de flujo** -2. Archivo `app.js` con el **código** de tu solución -3. Archivo `index.html` vinculado con tu `app.js` - -## Tips - -A continuación un video de Michelle que te lleva a través de la fórmula -matemática del Cifrado César y un par de cosas más que debes saber para -resolver este reto. ¡Escúchala con detenimiento y sigue sus consejos! :) - -[![tips caesar cipher](https://img.youtube.com/vi/zd8eVrXhs7Y/0.jpg)](https://www.youtube.com/watch?v=zd8eVrXhs7Y) - -También te compartimos más información de lo que Michelle te ha explicado -en el video anterior: - -- [Aprende más sobre `charCodeAt()`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/String/charCodeAt) -- [Aprende más sobre `String.fromCharCode()`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/String/fromCharCode) -- [Aprende más sobre `ASCII`](http://conceptodefinicion.de/ascii/) - -## Consideraciones específicas - -1. Tu programa debe ser capaz de cifrar y descifrar tanto letras - mayúsculas como minúsculas. La fórmula para descifrar es: `(x - n) % 26` -2. Tu código debe estar compuesto por 2 funciones con los siguientes - nombres: `cipher` y `decipher` -3. El usuario no debe poder ingresar un campo vacío o que contenga números - -## Criterios de evaluación - -Se tomarán en cuenta las siguientes consideraciones a la hora de evaluar tu solución: - -1. Nombramiento de variables -2. Indentación -3. Validación de input: el usuario no debe poder ingresar un campo vacío o de tipo que no corresponda -4. Estructura de tus archivos -5. Archivo `README.md` correctamente redactado -6. Uso de comentarios para hacer tu código más legible -7. Que el programa cumpla con el propósito requerido diff --git a/index.html b/index.html new file mode 100644 index 0000000..9683d1d --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + CIPHER AND DECIPHER + + +

Cifrado Cesar

+ + + diff --git a/js/app.js b/js/app.js new file mode 100644 index 0000000..e0af5c2 --- /dev/null +++ b/js/app.js @@ -0,0 +1,42 @@ +/* creando funcion Cipher y consultando al usuario*/ +function cipher() { + var question = prompt('Escribe tu nombre'); + /* creando bucle para que en caso de que el usuario no ingrese informacion se le solicite hacerlo*/ + while (question === '') { + question = prompt('escribe algo'); + } + /* recorriendo frase del usuario */ + for (var i = 0; i < question.length; i++) { + /* de encontrar cifra numerica o un vacio solicitamos nueva informacion*/ + while (parseInt(question[i]) % 1 === 0) { + question = prompt('No coloques numero'); + while (question === '') { + question = prompt('escribe algo'); + } + } + } + /* cifrando(primero convertir a mayusculas y aplicar cifrado)*/ + var questionMayus = question.toUpperCase(); + var str = ''; + for (var j = 0; j < questionMayus.length; j++) { + var newPosition = (questionMayus.charCodeAt(j) - 65 + 33) % 26 + 65; + var letterCifher = String.fromCharCode(newPosition); + str += letterCifher; + } + return str; +} +/* creando funcion de decifrado*/ +function decipher(str) { +/* asignamos una variable , la cual almacenará la palabra decifrada*/ + var decipherWord = ''; + /* recorriendo el array cifrado y ejecutando formula*/ + for (var ij = 0; ij < str.length; ij++) { + var retroPosition = (str.charCodeAt(ij) + 65 - 33) % 26 + 65; + var letterCesar = String.fromCharCode(retroPosition); + decipherWord += letterCesar; + } + alert('tu nombre cifrado es' + ' ' + str); + alert('tu nombre decifrado es' + ' ' + decipherWord); +} + +decipher(cipher());