Memory en JavaScript aplicando Programación Orientada a Objetos:
//Memory en JavaScriptclass Memory {
constructor() {
this.chars = ['"', '#', '$', '%', '(', ')', '/', '&'] //8 caracteresthis.numberChars = 4this.part1() //Muestra 4 caracteres entre los siguientes de forma aleatoria: "#$%()/&this.part2() //Lleva un registro del Orden en el que aparecieron los caracteresthis.part3() //Dale al usuario un menú para que elija en el orden correcto los caracteres
}
part1() {
this.charsList = []
for (let i = 0; i < this.numberChars; i++) {
let randomChar
do {
randomChar = this.chars[Math.floor(Math.random() * this.chars.length)]
} while (this.charsList.includes(randomChar))
this.charsList.push(randomChar)
}
}
part2() {
let message = (
`Caracteres aleatorios:
1. ${this.charsList[0]}
2. ${this.charsList[1]}
3. ${this.charsList[2]}
4. ${this.charsList[3]}
Acuérdate del orden`
)
alert(message)
}
part3() {
let answer
do {
let message = (
`Lista de caracteres:
0. ${this.chars[0]} 1. ${this.chars[1]}
2. ${this.chars[2]} 3. ${this.chars[3]}
4. ${this.chars[4]} 5. ${this.chars[5]}
6. ${this.chars[6]} 7. ${this.chars[7]}
Introduce los números correspondientes al orden de los caracteres anteriores
Ejemplo: #$%( = 1234`
)
answer = prompt(message).split('')
if (answer.length != this.numberChars) alert('Debes ingresar 4 números. Intenta otra vez')
} while (answer.length != this.numberChars)
let answerChars = answer.map(number => this.chars[number])
// Verificando respuestaif (answerChars.toString() === this.charsList.toString()) {
alert('Felicidades, escribiste el orden correcto')
} else {
alert('Lo siento, ese no es el orden correcto')
}
}
}
//Inicia el juegowindow.memory = new Memory()
import random
caracteres=['"','#','$','%','(',')','/','&']
mensaje='''Tenemos los siguientes caracteres
1-->"
2-->#
3-->$
4-->%
5-->(
6-->)
7-->/
8-->& '''
seleccion=[]
for s in range(4):
print(mensaje)
elegido=int(input('Elige un numero: '))
elegido=elegido-1
elegi=caracteres[elegido]
seleccion.append(elegi)
seleccion=''.join(seleccion)
print(f'Los caracteres elegidos por usted son: {seleccion}')
nuevo=[]
cont=0for i in range(4):
cont=cont+1
aleatorio=random.choice(caracteres)
print(f'En la posicion {cont} se tiene el caracter: {aleatorio}')
nuevo.append(aleatorio)
caracteres.remove(aleatorio)
nuevo=''.join(nuevo)
print(f'Y los caracteres elegidos aleatoriamente son: {nuevo}')```
""" Programa que muestra de forma aleatoria 4 caracteres entre los siguientes: "#$%()/& y lleva un registro del orden en el que aparecieron los caracteres.
Program that randomly displays 4 characters among the following: "#$%()/& and keep record of the order in which the characters appeared. """import random
if __name__ == "__main__":
print('Memory part 2!!!')
chars = ['"','#','$','%','(',')','/','&']
random_chars = []
print('Your 4 random characters are:')
for i in range(1,5):
random_char = random.choice(chars)
random_chars.append(random_char)
print('Random character {}: {}' .format(i, random_char))
Memory (part 3):
""" Programa que muestra de forma aleatoria 4 caracteres entre los siguientes: "#$%()/& y lleva un registro del orden en el que aparecieron los caracteres y da al usuario un menú para que elija en el orden correcto los caracteres.
Program that randomly displays 4charactersamongthe following: "#$%()/& and keep record of the order in which the characters appeared and gives to user a menu to choose the characters in the right order. """
import randomif __name__ == "__main__":
print('Memory part 2!!!')
chars = ['"','#','$','%','(',')','/','&']
random_chars = []
print('Your 4 random characters are:')
for i in range(1,5):
random_char = random.choice(chars)
random_chars.append(random_char)
print('Random character {}: {}' .format(i, random_char))
input('Enter any key to continue... ')
forcharinchars:
ifchars.index(char) % 2 ==0:
print('{}-> {} {}-> {}' .format(chars.index(char)+1, char, chars.index(char)+2, chars[chars.index(char)+1]))
wrong = 0for i in range (1,5):
number = input('Please insert the digit correspondent to the random character number {}: ' .format(i))
whilenotnumber == str(chars.index(random_chars[i-1]) + 1):
wrong += 1number = input(' Wrong digit correspondent to the random character number {}, try again: ' .format(i))
print('Congratulations you remembered the order!!! Number of wrong tries: {}' .format(wrong))
functionmemory(numbers) {
var result = '';
var characters = '"#$%()/&';
var charactersNumbers = characters.length;
for ( var i = 0; i < numbers; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersNumbers));
}
registro = ''
arr = Array.from(result)
for(i = 0; i < result.length; i++) {
registro += `
${i+1} = ${arr[i]}
`
}
alert(`Simbolos:
${registro}`)
}
memory(4)
Dia 20
functionmemory(number) {
var result = '';
var characters = '"#$%()/&';
var charactersNumbers = characters.length;
for ( var i = 0; i < number; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersNumbers));
}
return result
}
functionorder(parameter) {
var menu = prompt(`
Caracteres: ${memory(parameter)}
Ingresa en orden los caracteres mostrados:
`)
return menu
}
order(4)```
Mi codigo es un poco largo por que incluye los 3 retos pero aqui esta:
play();
//Menu de la parte 3asyncfunctionplay() {
alert(
"Press Ok when you are ready, \n You will have 5 seconds to memorize the characters."
);
const ramdomChars = randomCharacter();
const charArray = saveCharacters(ramdomChars);
//Muestra un timer y el texto por 5 segundosfor (let i = 1; i < 6; i++) {
document.getElementById("charText").innerHTML = `${ramdomChars}`;
document.getElementById("time").innerHTML = `${i}`;
await wait(1000);
}
document.getElementById("charText").innerHTML = "";
document.getElementById("time").innerHTML = "";
let userInput = prompt("Can you remember the characters?", "");
//Evalua si las cadenas de inputs coincidenif(rememberCharacters(userInput, charArray)){
alert("Excellent memory, you remembered the characters");
}else{
alert(`Sorry the characters where ${ramdomChars}`);
}
}
asyncfunctionwait(ms) {
returnnewPromise((resolve) => {
setTimeout(resolve, ms);
});
}
functionrandomCharacter() {
let result = "";
for (let i = 0; i < 4; i++) {
let randomNumber = Math.floor(Math.random() * (41 - 34) + 34);
let character = String.fromCharCode(randomNumber);
result = result.concat(character);
}
return result;
}
//Parte #2functionsaveCharacters(str) {
let values = [];
for (let i = 0; i < str.length; i++) {
const charVal = str.charCodeAt(i);
values.push(charVal);
}
return values;
}
functionrememberCharacters(userInput, charArray) {
for (let i = 0; i < userInput.length; i++) {
if (userInput.charCodeAt(i) !== charArray[i]) {
returnfalse;
}
}
returntrue;
}
importrandom
CARACTERES = ['\"', '#', '$', '%', '(', ')', '/', '&']
seleccion = random.choices(CARACTERES, k = 4)
simbolos = {}
for i, char in enumerate(seleccion):
simbolos[i] = char
simbolos_desordenados = list(simbolos.values())
random.shuffle(simbolos_desordenados)
simbolos_desordenados = ''.join(simbolos_desordenados)
# print(simbolos) #Scaffolding
print(f'Los símbolos fueron: {simbolos_desordenados}. Adivina el orden en que se ingresaron.')
simbolos_elegidos = {}
while simbolos_elegidos != simbolos:
simbolos_ingresados = input('\nIngresa todos los simbolos en el orden: ')
for i, char in enumerate(simbolos_ingresados):
simbolos_elegidos[i] = charif simbolos_elegidos != simbolos:
print('\tIncorrecto. Intenta de nuevo.')
print(f'¡Felicidades! El orden es {simbolos}.')
public class MemoryV4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
char[] allowedCharacters = "\"#$%()/&".toCharArray();
StringBuffer cadena = new StringBuffer();
SecureRandom random = new SecureRandom();
ArrayList<String> arrayOrden = new ArrayList<>();int salir = 0;
String cadenaUsuario;while (salir != 1) {
for (int i = 0; i < 4; i++) {
cadena.append(allowedCharacters[ random.nextInt(allowedCharacters.length) ]);
}
arrayOrden.add(cadena.toString());System.out.println(cadena);
cadena.delete(0, cadena.length()); // reiniciar el StringBufferSystem.out.println("Desea generar otra cadena de texto? (ingrese 1 para salir o 2 para seguir con el programa)");
salir = scanner.nextInt();
}
System.out.println("Ingresa la última cadena en el orden correcto");
cadenaUsuario = scanner.next();if (arrayOrden.get(arrayOrden.size()-1).equals(cadenaUsuario)) {
System.out.println("Ganaste! :) el orden es el correcto");
} else {
System.out.println("Perdiste :(");
}
System.out.println();System.out.println("El orden fue: "+ arrayOrden.toString());
}
}
const memory2 = () => {
const characters = ['"','#','$','%','(',')','/','&'];
let result = [];
for(let i = 0; i < characters.length; i++) {
result += characters[Math.floor(Math.random() * characters.length)];
console.log(`In the position ${i + 1} => The result is ${result[i]}`)
}
console.log(`All order is: ${result}`)
}
// memory2()
const memory3 = () => {
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
letresult = [];
for(let i = 0; i < numbers.length; i++) {
result += numbers[Math.floor(Math.random() * numbers.length)];
console.log(`In the position ${i + 1} => Theresultis ${result[i]}`);
}
for(let n = 0; n < numbers.length; n++) {
let correctPosition = prompt('Enter the correct positions of the symbols show');
if(correctPosition === result[n]) {
console.log('Great!! The symbol entered is correct')
} else {
console.log('Oh, that symbol position is wrong. Try again!!')
}
}
console.log(`All order is: ${result}`)
}
memory3()```
importrandom
caracteres=['"','#','$','%','(',')','/','&']
nuevo=[]
cont=0for i in range(4):
cont=cont+1
aleatorio=random.choice(caracteres)
print(f'En la posicion {cont} se tiene el caracter: {aleatorio}')
nuevo.append(aleatorio)
caracteres.remove(aleatorio)
nuevo=''.join(nuevo)
print(f'Los caracteres elegidos son: {nuevo}')```
import random
import os
defmain():
caracteres = ['#','$','%','(',')','/','&']
memoria = []
control = True
camino = '0'for i in range(4):
caracter_aux = random.choice(caracteres)
print(f'Caracter {i + 1} : {caracter_aux}')
memoria.append(caracter_aux)
print('Recuerda los caracteres')
camino = input("""Presiona "c" para continuar""")
if camino == 'c':
os.system("clear")
for i in range(4):
car = input(f'Cual era el caracter {i + 1}: ')
if str(car) == str(memoria[i]):
control = Trueelse:
control = Falseif control == True:
print('Correcto')
else:
print('Error')
else:
print('Selecciona una opcion valida')
if __name__ == '__main__':
main()
Y el reto 20 en Python.
A ver como me va en las siguientes:
import random
defposicion_inicial(character):for x in character:
indice = character.index(x)
print(' Posicion {} del símbolo: {} '. format(indice, x))
defseleccion_de_usuario(character, limite_simbolo):
posicion_inicial(character)
memory = []
for i in range(limite_simbolo):
indice_simbolo = int(input('Selecciona el índice: '))
simbolo = character[indice_simbolo]
memory.append(simbolo)
resultado = ''.join(memory)
print('Escogiste los símbolos: {}'. format(resultado))
if __name__ == "__main__":
character = '"#$%()/&'
print('Escoga los símbolos que más te gustan')
print('Marque el número para escoger:')
limite_simbolo = int(input('Cuántos símbolos quieres : '))
print('-'*15)
seleccion_de_usuario(character, limite_simbolo)
Memory en JavaScript aplicando Programación Orientada a Objetos:
//Memory en JavaScriptclass Memory { constructor() { this.chars = ['"', '#', '$', '%', '(', ')', '/', '&'] //8 caracteresthis.numberChars = 4this.part1() //Muestra 4 caracteres entre los siguientes de forma aleatoria: "#$%()/&this.part2() //Lleva un registro del Orden en el que aparecieron los caracteresthis.part3() //Dale al usuario un menú para que elija en el orden correcto los caracteres } part1() { this.charsList = [] for (let i = 0; i < this.numberChars; i++) { let randomChar do { randomChar = this.chars[Math.floor(Math.random() * this.chars.length)] } while (this.charsList.includes(randomChar)) this.charsList.push(randomChar) } } part2() { let message = ( `Caracteres aleatorios: 1. ${this.charsList[0]} 2. ${this.charsList[1]} 3. ${this.charsList[2]} 4. ${this.charsList[3]} Acuérdate del orden` ) alert(message) } part3() { let answer do { let message = ( `Lista de caracteres: 0. ${this.chars[0]} 1. ${this.chars[1]} 2. ${this.chars[2]} 3. ${this.chars[3]} 4. ${this.chars[4]} 5. ${this.chars[5]} 6. ${this.chars[6]} 7. ${this.chars[7]} Introduce los números correspondientes al orden de los caracteres anteriores Ejemplo: #$%( = 1234` ) answer = prompt(message).split('') if (answer.length != this.numberChars) alert('Debes ingresar 4 números. Intenta otra vez') } while (answer.length != this.numberChars) let answerChars = answer.map(number => this.chars[number]) // Verificando respuestaif (answerChars.toString() === this.charsList.toString()) { alert('Felicidades, escribiste el orden correcto') } else { alert('Lo siento, ese no es el orden correcto') } } } //Inicia el juegowindow.memory = new Memory()
Lo hice como un juego:
<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Memory Parte 2 y 3</title></head><style> * { margin: 0; } .contenedor { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; } .section { padding: 0.25rem2rem; } .inputs { display: inherit; align-items: center; padding: 2rem; } #resultado { font-size: 24px; } .escondido { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; height: 50%; } .pantalla { display: flex; justify-content: center; width: 100%; height: 50%; } .pantallah2 { margin-top: 45px; width: 80%; font-size: 35px; border-radius: 10px; background-color: lightblue; display: flex; align-items: center; padding-left: 15px; justify-content: center; } .pad { border-radius: 15px; background-color: rgb(88, 88, 88); display: grid; width: 80%; height: 50%; grid-template-columns: 10%16%16%16%16%16%10%; grid-template-rows: 5%45%45%5% ; grid-template-areas: ". . . . . . ."". quotes hash dollar perc clear ."". par1 par2 slash something equal ."". . . . . . ." ; } #quotes { grid-area: quotes; } #hash { grid-area: hash; } #dollar { grid-area: dollar; } #perc { grid-area: perc; } #par1 { grid-area: par1; } #par2 { grid-area: par2; } #slash { grid-area: slash; } #something { grid-area: something; } #clear { grid-area: clear; } #equal { grid-area: equal; } .btn { background-color: gray; padding: 15px; margin: 8px; border-radius: 15px; outline: none; font-size: 24px; border: none; color: white; text-align: center; } .btn:hover { cursor: pointer; transform: scale(1.1); } #contra { padding: 020px; width: 95%; } </style><bodyid='body'><divclass="contenedor"><h1id='titulo'style="margin-bottom: 24px;">Click para mostrar 4 caracteres entre "#$%()/& de forma aleatoria</h1><buttononclick="escribe()"class="btn"id='btn'>Click</button><buttonstyle="display: none;"onclick="continuar()"class="btn"id='btn-continuar'>Continuar...</button><buttonstyle="display: none;"onclick="repetir()"class="btn"id='btn-reiniciar'>Reiniciar...</button><divstyle="margin-top: 24px;"id="resultado"></div><divid='escondido'class='escondido'style="display: none;"><divclass="pantalla"><h2cols="18"row="1"id="valores"></h2></div><divclass="pad"><inputclass="btn"type="button"value='"'id="quotes"><inputclass="btn"type="button"value="#"id="hash"><inputclass="btn"type="button"value="$"id="dollar"><inputclass="btn"type="button"value="%"id="perc"><inputclass="btn"type="button"value="("id="par1"><inputclass="btn"type="button"value=")"id="par2"><inputclass="btn"type="button"value="/"id="slash"><inputclass="btn"type="button"value="&"id="something"><inputclass="btn"type="button"value="◀"id="clear"><inputclass="btn"type="button"value="="id="equal"></div></div></div><script>const alt = [] functionescribe() { const boton = document.getElementById('btn') const botonContinuar = document.getElementById('btn-continuar') const array = ['34', '35', '36', '37', '38', '40', '41', '47'] for (let i = 0; i < 4; i++){ let num = Math.floor(Math.random()*8) alt[i] = array[num] } let resultado = '' alt.map(charcode => resultado = resultado + String.fromCharCode(charcode)) document.getElementById('resultado').innerHTML = `Salió ${resultado} de forma aleatoria` boton.style = "display: none;" botonContinuar.style = "display: inline-block;" } functioncontinuar () { const botonContinuar = document.getElementById('btn-continuar') botonContinuar.style = "display: none;"const botonReiniciar = document.getElementById('btn-reiniciar') const titulo = document.getElementById('titulo') titulo.innerHTML = 'Escoja el orden que aparecio previamente...'const resultado = document.getElementById('resultado') resultado.innerHTML = ''const escondido = document.getElementById('escondido') escondido.style = 'display: flex'const pantalla = document.getElementById('valores') const quotes = document.getElementById('quotes') const hash = document.getElementById('hash') const dollar = document.getElementById('dollar') const perc = document.getElementById('perc') const par1 = document.getElementById('par1') const par2 = document.getElementById('par2') const slash = document.getElementById('slash') const something = document.getElementById('something') const clear = document.getElementById('clear') const equal = document.getElementById('equal') let cant = 4 quotes.onclick = () => { if (pantalla.innerHTML.length < cant){ pantalla.innerHTML = pantalla.innerHTML + '"' } } hash.onclick = () => { if (pantalla.innerHTML.length < cant){ pantalla.innerHTML = pantalla.innerHTML + '#' } } dollar.onclick = () => { if (pantalla.innerHTML.length < cant){ pantalla.innerHTML = pantalla.innerHTML + '$' } } perc.onclick = () => { if (pantalla.innerHTML.length < cant){ pantalla.innerHTML = pantalla.innerHTML + '%' } } par1.onclick = () => { if (pantalla.innerHTML.length < cant){ pantalla.innerHTML = pantalla.innerHTML + '(' } } par2.onclick = () => { if (pantalla.innerHTML.length < cant){ pantalla.innerHTML = pantalla.innerHTML + ')' } } slash.onclick = () => { if (pantalla.innerHTML.length < cant){ pantalla.innerHTML = pantalla.innerHTML + '/' } } something.onclick = () => { if (pantalla.innerHTML.length < cant){ pantalla.innerHTML = pantalla.innerHTML + '&' cant = cant + 4 } } clear.onclick = () => { const array = pantalla.innerHTML.replace(/amp;/g, '').split('') const borrar = array.pop() if (borrar === '&'){ cant = cant - 4 } pantalla.innerHTML = array.join('') } equal.onclick = () => { cant = 4let respuesta = pantalla.innerHTML.replace(/amp;/g, '').split('') let charRes = [] respuesta.map( char => { charRes.push(char.charCodeAt(0)) }) for (let i = 0; i < alt.length; i++){ alt[i] = parseInt(alt[i]) } if (alt[0] === charRes[0] && alt[1] === charRes[1] && alt[2] === charRes[2] && alt[3] === charRes[3]){ escondido.style = 'display: none;' titulo.innerHTML = 'Felicidades! tu respuesta es correcta, si era igual a la solución' botonReiniciar.style = 'display: inline-block' } else { escondido.style = 'display: none;' titulo.innerHTML = 'Lastima! tu respuesta es incorrecta, no es igual a la solución' botonReiniciar.style = 'display: inline-block' } } } functionrepetir() { const boton = document.getElementById('btn') boton.style = 'display: inline-block;'const botonReiniciar = document.getElementById('btn-reiniciar') botonReiniciar.style = 'display: none;'const titulo = document.getElementById('titulo') titulo.innerHTML = 'Click para mostrar 4 caracteres entre "#$%()/& de forma aleatoria'const pantalla = document.getElementById('valores') pantalla.innerHTML = '' } </script></body></html>
Jajajaja, no sabía que el siguiente reto era decir si gano o no, bueno ya lo hice de todas formas.
Memory part3 en Python 😃
import random caracteres=['"','#','$','%','(',')','/','&'] mensaje='''Tenemos los siguientes caracteres 1-->" 2--># 3-->$ 4-->% 5-->( 6-->) 7-->/ 8-->& ''' seleccion=[] for s in range(4): print(mensaje) elegido=int(input('Elige un numero: ')) elegido=elegido-1 elegi=caracteres[elegido] seleccion.append(elegi) seleccion=''.join(seleccion) print(f'Los caracteres elegidos por usted son: {seleccion}') nuevo=[] cont=0for i in range(4): cont=cont+1 aleatorio=random.choice(caracteres) print(f'En la posicion {cont} se tiene el caracter: {aleatorio}') nuevo.append(aleatorio) caracteres.remove(aleatorio) nuevo=''.join(nuevo) print(f'Y los caracteres elegidos aleatoriamente son: {nuevo}')```
Memory Parte 2 y Parte 3
Siendo sincero, no sé si comprendí bien lo que se solicitaba pero aquí les dejo mi versión:
Muestro aleatoriamente 4 caracteres, guardo este orden y lo comparo con el orden que el usuario ingresa según valores del menú.
// 0 1 2 3 4 5 6 7 var caracteres = '",#,$,%,(,),/,&'var arrChar = caracteres.split(',') var long = arrChar.length; var rdm = []; for( let i = 0; i < long; i++){ rdm[i] = arrChar[Math.round(Math.random() * (long - 1))] } var res = rdm.slice(0,4) var ordenUsuario = prompt(`Caracteres: ${res.join('')} Digite el orden correcto de los caracteres mostrados: " --> 0 , # --> 1 $ --> 2 , % --> 3 ( --> 4 , ) --> 5 / --> 6 , & --> 7`); (parseToIndex(res) === ordenUsuario) ?alert('Orden digitado correctamente!') :alert('No es el orden correcto, favor reintente.') functionparseToIndex(arr){ var a =""; for(let c of res){ a += arrChar.indexOf(c) } return a; }
Solicud de digitar orden de caracteres
En Python:
""" Programa que muestra de forma aleatoria 4 caracteres entre los siguientes: "#$%()/& y lleva un registro del orden en el que aparecieron los caracteres. Program that randomly displays 4 characters among the following: "#$%()/& and keep record of the order in which the characters appeared. """import random if __name__ == "__main__": print('Memory part 2!!!') chars = ['"','#','$','%','(',')','/','&'] random_chars = [] print('Your 4 random characters are:') for i in range(1,5): random_char = random.choice(chars) random_chars.append(random_char) print('Random character {}: {}' .format(i, random_char))
""" Programa que muestra de forma aleatoria 4 caracteres entre los siguientes: "#$%()/& y lleva un registro del orden en el que aparecieron los caracteres y da al usuario un menú para que elija en el orden correcto los caracteres. Program that randomly displays 4charactersamongthe following: "#$%()/& and keep record of the order in which the characters appeared and gives to user a menu to choose the characters in the right order. """ import randomif __name__ == "__main__": print('Memory part 2!!!') chars = ['"','#','$','%','(',')','/','&'] random_chars = [] print('Your 4 random characters are:') for i in range(1,5): random_char = random.choice(chars) random_chars.append(random_char) print('Random character {}: {}' .format(i, random_char)) input('Enter any key to continue... ') forcharinchars: ifchars.index(char) % 2 ==0: print('{}-> {} {}-> {}' .format(chars.index(char)+1, char, chars.index(char)+2, chars[chars.index(char)+1])) wrong = 0for i in range (1,5): number = input('Please insert the digit correspondent to the random character number {}: ' .format(i)) whilenotnumber == str(chars.index(random_chars[i-1]) + 1): wrong += 1number = input(' Wrong digit correspondent to the random character number {}, try again: ' .format(i)) print('Congratulations you remembered the order!!! Number of wrong tries: {}' .format(wrong))
JavaScript
Dia 19
functionmemory(numbers) { var result = ''; var characters = '"#$%()/&'; var charactersNumbers = characters.length; for ( var i = 0; i < numbers; i++ ) { result += characters.charAt(Math.floor(Math.random() * charactersNumbers)); } registro = '' arr = Array.from(result) for(i = 0; i < result.length; i++) { registro += ` ${i+1} = ${arr[i]} ` } alert(`Simbolos: ${registro}`) } memory(4)
Dia 20
functionmemory(number) { var result = ''; var characters = '"#$%()/&'; var charactersNumbers = characters.length; for ( var i = 0; i < number; i++ ) { result += characters.charAt(Math.floor(Math.random() * charactersNumbers)); } return result } functionorder(parameter) { var menu = prompt(` Caracteres: ${memory(parameter)} Ingresa en orden los caracteres mostrados: `) return menu } order(4)```
Mi codigo es un poco largo por que incluye los 3 retos pero aqui esta:
play(); //Menu de la parte 3asyncfunctionplay() { alert( "Press Ok when you are ready, \n You will have 5 seconds to memorize the characters." ); const ramdomChars = randomCharacter(); const charArray = saveCharacters(ramdomChars); //Muestra un timer y el texto por 5 segundosfor (let i = 1; i < 6; i++) { document.getElementById("charText").innerHTML = `${ramdomChars}`; document.getElementById("time").innerHTML = `${i}`; await wait(1000); } document.getElementById("charText").innerHTML = ""; document.getElementById("time").innerHTML = ""; let userInput = prompt("Can you remember the characters?", ""); //Evalua si las cadenas de inputs coincidenif(rememberCharacters(userInput, charArray)){ alert("Excellent memory, you remembered the characters"); }else{ alert(`Sorry the characters where ${ramdomChars}`); } } asyncfunctionwait(ms) { returnnewPromise((resolve) => { setTimeout(resolve, ms); }); } functionrandomCharacter() { let result = ""; for (let i = 0; i < 4; i++) { let randomNumber = Math.floor(Math.random() * (41 - 34) + 34); let character = String.fromCharCode(randomNumber); result = result.concat(character); } return result; } //Parte #2functionsaveCharacters(str) { let values = []; for (let i = 0; i < str.length; i++) { const charVal = str.charCodeAt(i); values.push(charVal); } return values; } functionrememberCharacters(userInput, charArray) { for (let i = 0; i < userInput.length; i++) { if (userInput.charCodeAt(i) !== charArray[i]) { returnfalse; } } returntrue; }
Esa es la finalidad, que de los 3 retos salga un solo programa. 😄
Así terminé este reto con las últimas dos partes:
importrandom CARACTERES = ['\"', '#', '$', '%', '(', ')', '/', '&'] seleccion = random.choices(CARACTERES, k = 4) simbolos = {} for i, char in enumerate(seleccion): simbolos[i] = char simbolos_desordenados = list(simbolos.values()) random.shuffle(simbolos_desordenados) simbolos_desordenados = ''.join(simbolos_desordenados) # print(simbolos) #Scaffolding print(f'Los símbolos fueron: {simbolos_desordenados}. Adivina el orden en que se ingresaron.') simbolos_elegidos = {} while simbolos_elegidos != simbolos: simbolos_ingresados = input('\nIngresa todos los simbolos en el orden: ') for i, char in enumerate(simbolos_ingresados): simbolos_elegidos[i] = charif simbolos_elegidos != simbolos: print('\tIncorrecto. Intenta de nuevo.') print(f'¡Felicidades! El orden es {simbolos}.')
Memory v3 y v4 en Java ☕️ ☕️
public class MemoryV4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); char[] allowedCharacters = "\"#$%()/&".toCharArray(); StringBuffer cadena = new StringBuffer(); SecureRandom random = new SecureRandom(); ArrayList<String> arrayOrden = new ArrayList<>();int salir = 0; String cadenaUsuario;while (salir != 1) { for (int i = 0; i < 4; i++) { cadena.append(allowedCharacters[ random.nextInt(allowedCharacters.length) ]); } arrayOrden.add(cadena.toString());System.out.println(cadena); cadena.delete(0, cadena.length()); // reiniciar el StringBufferSystem.out.println("Desea generar otra cadena de texto? (ingrese 1 para salir o 2 para seguir con el programa)"); salir = scanner.nextInt(); } System.out.println("Ingresa la última cadena en el orden correcto"); cadenaUsuario = scanner.next();if (arrayOrden.get(arrayOrden.size()-1).equals(cadenaUsuario)) { System.out.println("Ganaste! :) el orden es el correcto"); } else { System.out.println("Perdiste :("); } System.out.println();System.out.println("El orden fue: "+ arrayOrden.toString()); } }
Ejecución del programa

const memory2 = () => { const characters = ['"','#','$','%','(',')','/','&']; let result = []; for(let i = 0; i < characters.length; i++) { result += characters[Math.floor(Math.random() * characters.length)]; console.log(`In the position ${i + 1} => The result is ${result[i]}`) } console.log(`All order is: ${result}`) } // memory2()
const memory3 = () => { const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]; letresult = []; for(let i = 0; i < numbers.length; i++) { result += numbers[Math.floor(Math.random() * numbers.length)]; console.log(`In the position ${i + 1} => Theresultis ${result[i]}`); } for(let n = 0; n < numbers.length; n++) { let correctPosition = prompt('Enter the correct positions of the symbols show'); if(correctPosition === result[n]) { console.log('Great!! The symbol entered is correct') } else { console.log('Oh, that symbol position is wrong. Try again!!') } } console.log(`All order is: ${result}`) } memory3()```
Memory en JS, C y C++.
https://github.com/ceporro/PlatziCodingChallenge
Memory part 2 en Python 😃
importrandom caracteres=['"','#','$','%','(',')','/','&'] nuevo=[] cont=0for i in range(4): cont=cont+1 aleatorio=random.choice(caracteres) print(f'En la posicion {cont} se tiene el caracter: {aleatorio}') nuevo.append(aleatorio) caracteres.remove(aleatorio) nuevo=''.join(nuevo) print(f'Los caracteres elegidos son: {nuevo}')```
En fin, no me quedó claro el reto pero ahí les va el Memory 19 en Python:
import random defposicion_inicial(character):for x in character: indice = character.index(x) print('Posicion {} del símbolo: {} '. format(indice, x)) defseleccion_aleatoria(character):for i in range(4): aleatorio = random.randint(0,len(character) - 1) simbolo = character[aleatorio] memory.append(simbolo) resultado = ''.join(memory) print('El símbolo {} corresponde a la posición: {} '. format(simbolo, aleatorio)) print('Se escogieron los siguiens símbolos: ',resultado) if __name__ == "__main__": character = '"#$%()/&' memory = [] seleccion_aleatoria(character) print('-'*15) posicion_inicial(character)
import random import os defmain(): caracteres = ['#','$','%','(',')','/','&'] memoria = [] control = True camino = '0'for i in range(4): caracter_aux = random.choice(caracteres) print(f'Caracter {i + 1} : {caracter_aux}') memoria.append(caracter_aux) print('Recuerda los caracteres') camino = input("""Presiona "c" para continuar""") if camino == 'c': os.system("clear") for i in range(4): car = input(f'Cual era el caracter {i + 1}: ') if str(car) == str(memoria[i]): control = Trueelse: control = Falseif control == True: print('Correcto') else: print('Error') else: print('Selecciona una opcion valida') if __name__ == '__main__': main()
Y el reto 20 en Python.
A ver como me va en las siguientes:
import random defposicion_inicial(character):for x in character: indice = character.index(x) print(' Posicion {} del símbolo: {} '. format(indice, x)) defseleccion_de_usuario(character, limite_simbolo): posicion_inicial(character) memory = [] for i in range(limite_simbolo): indice_simbolo = int(input('Selecciona el índice: ')) simbolo = character[indice_simbolo] memory.append(simbolo) resultado = ''.join(memory) print('Escogiste los símbolos: {}'. format(resultado)) if __name__ == "__main__": character = '"#$%()/&' print('Escoga los símbolos que más te gustan') print('Marque el número para escoger:') limite_simbolo = int(input('Cuántos símbolos quieres : ')) print('-'*15) seleccion_de_usuario(character, limite_simbolo)
Reto 19-20: Memory (parte 2 - 3)
Repositorio del reto: PlatziCodingChallengeRepo
GitHub pages: PlatziCodingChallengePages