Hola a todos,
Hace unas semanas que empecé a crear a modo de pasatiempo una pequeña aplicación que funcionase como un juego que generase un sorteo. Del tipo de juego de azar como una lotería.
La idea es que la aplicación genere una combinación aleatoria del 1 al 49 de 6 números y donde el jugador apostará sobre seis números también del 1 al 49. La herramienta detectará las coincidencias (los aciertos).
Ya sé que tendría que desarrollar una parte con los premios, pero es una tarea que podréis crear utilizando un switch case (tenéis post en esta web). Y ahora vayamos al código:
function main(workbook: ExcelScript.Workbook) {
//creamos constantes, combinación ganadora, apuesta y acertados
const combinacion = generarCombinacion();
const jugador = [7, 49, 21, 28, 35, 42];
const acertados = compApuesta(jugador, combinacion);
// Primera función generamos la combinación ganadora
// hasta el 49
function generarCombinacion(): number[] {
var apuesta: number[] = [];
while (apuesta.length < 7) {
const numero = Math.floor(Math.random() * 49) + 1;
if (!apuesta.includes(numero)) {
apuesta.push(numero);
}
}
return apuesta;
}
// Crealizamos comparación de ambas matrices y extraemos aciertos
function compApuesta(jugador: number[], combinacion: number[]): number[] {
var aciertos: number[] = [];
for (var i = 0; i < jugador.length; i++) {
if (combinacion.includes(jugador[i])) {
aciertos.push(jugador[i]);
}
}
return aciertos;
}
//mostramos en la consola
console.log(`La combinación ganadora es: ${combinacion.join(", ")}` );
console.log(`Los números elegidos por el jugador son: ${jugador.join(", ")}`);
console.log(`El jugador ha acertado ${acertados.length} número(s): ${acertados.join(", ")}`);
}
En este código he incorporado dos funciones, una que genera la combinación ganadora y otra que realiza la comparación con los números que hayamos elegido.
El resultado sería así:

Lo he creado para que se muestra en nuestra consola de office scripts, pero podríais fácilmente trasladar los resultados a la hoja utilizando getRange y setValue o setValues.
Y esto es todo, espero que os haya parecido interesante.
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies