From 936b489b4db48e9372340d6f6bf8c235dcd5d5a3 Mon Sep 17 00:00:00 2001 From: Abel Iglesias Moure <71591899+Abel-ADE@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:40:30 +0100 Subject: [PATCH 01/30] Reto #0 - Java --- .../java/Abel-ADE.java" | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 "Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/java/Abel-ADE.java" diff --git "a/Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/java/Abel-ADE.java" "b/Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/java/Abel-ADE.java" new file mode 100644 index 0000000000..3960c09575 --- /dev/null +++ "b/Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/java/Abel-ADE.java" @@ -0,0 +1,41 @@ +/** + * Escribe un programa que muestre por consola (con un print) los números de 1 a + * 100 (ambos incluidos y con un salto de línea entre cada impresión), + * sustituyendo los siguientes: - Múltiplos de 3 por la palabra "fizz". - + * Múltiplos de 5 por la palabra "buzz". - Múltiplos de 3 y de 5 a la vez por la + * palabra "fizzbuzz". + * + * @author abel + */ +public class AbelADEJava { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + + for (int i = 1; i <= 100; i++) { + + //Si es múltiplo de 15 + if (i % 3 == 0 && i % 5 == 0) { + //Imprimo la palabra "fizzbuzz" + System.out.println("fizzbuzz"); + //Sinó compruebo si es mútliplo de 5 + } else if (i % 5 == 0) { + //Imprimo la palabra "buzz" + System.out.println("buzz"); + //Sinó compruebo si es mútliplo de 3 + } else if (i % 3 == 0) { + //Imprimo la palabra "fizz" + System.out.println("fizz"); + //Si no es múltiplo de los anteriores + } else { + //Imprimo el número + System.out.println(i); + } + + } + + } + +} From 7432e7a559a4a709dfe7a69e6d765b1c58f6b0de Mon Sep 17 00:00:00 2001 From: AlbertoVf Date: Mon, 4 Dec 2023 21:56:11 +0100 Subject: [PATCH 02/30] reto#47 - typescript --- .../typescript/albertovf.ts" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/typescript/albertovf.ts" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/typescript/albertovf.ts" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/typescript/albertovf.ts" new file mode 100644 index 0000000000..038e919b4c --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/typescript/albertovf.ts" @@ -0,0 +1,27 @@ + +const valor = (palabra: string): number => { + const LETRAS = [" ", "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"] + let letras = palabra.toUpperCase().split("") + let v = 0 + letras.forEach(e => { + v += LETRAS.findIndex(l => l == e) + }) + return (v > 0) ? v : 0 +} + +const reto = (): void => { + let puntos = 0 + while (puntos < MAXIMO) { + let palabra = prompt("Introduce una palabra: ") ?? "" + puntos = valor(palabra) + console.log(`La palabra ${palabra} tiene ${puntos} puntos`) + if (puntos < MAXIMO) { + console.log("Busca una palabra mas grande") + } else { + console.log("Has ganado") + } + } +} +const MAXIMO = 100 + +reto() \ No newline at end of file From 2c40b1006a0657e7035453a68e86acdde5210dd2 Mon Sep 17 00:00:00 2001 From: blackriper Date: Mon, 4 Dec 2023 17:28:13 -0600 Subject: [PATCH 03/30] Reto#47-go --- .../go/blackriper.go" | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/go/blackriper.go" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/go/blackriper.go" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/go/blackriper.go" new file mode 100644 index 0000000000..fcf6c6119c --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/go/blackriper.go" @@ -0,0 +1,89 @@ +package main + +import ( + "fmt" + "strings" +) + +/* metodos de trabajo y variables estaticas*/ + +var ALPHA = map[string]int{ + "A": 1, + "B": 2, + "C": 3, + "D": 4, + "E": 5, + "F": 6, + "G": 7, + "H": 8, + "I": 9, + "J": 10, + "K": 11, + "L": 12, + "M": 13, + "N": 14, + "Ñ": 15, + "O": 16, + "P": 17, + "Q": 18, + "R": 19, + "S": 20, + "T": 21, + "U": 22, + "V": 23, + "W": 24, + "X": 25, + "Y": 26, + "Z": 27, +} + +type Hundred interface { + ReadWord() +} + +/* implementar funciones */ + +type WordHundred struct { + Word string +} + +func (w *WordHundred) ReadWord() { + + for { + fmt.Println("Write a word if it is worth 100 points you will win the game : ") + fmt.Scanf("%s", &w.Word) + if val := Validate(w.Word); val == true { + if points := EvaluteWord(w.Word); points == 100 { + fmt.Printf("Congratulations you have won with the world %v \n ", w.Word) + break + } else { + fmt.Printf("With the word %v you have obtained %v points \n", w.Word, points) + } + } else { + fmt.Println("The word must have a minimum length of 4 characters") + } + } + +} + +// funcion auxilar para evaluar la frase +func EvaluteWord(word string) (points int) { + for _, w := range word { + value := ALPHA[strings.ToUpper(string(w))] + points += value + } + return points +} + +// funcion para validar palabra +func Validate(word string) (validate bool) { + if len(word) > 4 { + validate = true + } + return validate +} + +func main() { + var hundred Hundred = &WordHundred{} + hundred.ReadWord() +} From 2fc2de194121b75b60df5fefbeded3618c0fc48c Mon Sep 17 00:00:00 2001 From: Jordi Ayala Date: Mon, 4 Dec 2023 17:57:46 -0600 Subject: [PATCH 04/30] Reto #42 - Java --- .../java/asjordi.java" | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 "Retos/Reto #42 - PUNTO DE ENCUENTRO [Dif\303\255cil]/java/asjordi.java" diff --git "a/Retos/Reto #42 - PUNTO DE ENCUENTRO [Dif\303\255cil]/java/asjordi.java" "b/Retos/Reto #42 - PUNTO DE ENCUENTRO [Dif\303\255cil]/java/asjordi.java" new file mode 100644 index 0000000000..509ee5f4c6 --- /dev/null +++ "b/Retos/Reto #42 - PUNTO DE ENCUENTRO [Dif\303\255cil]/java/asjordi.java" @@ -0,0 +1,70 @@ +public class MeetingPoint { + + public static void main(String[] args) { + String res1 = MeetingPoint.collision( + new double[]{0, 0}, + new double[]{1, 1}, + new double[]{1, 2}, + new double[]{0, 1} + ); + + String res2 = MeetingPoint.collision( + new double[]{2, 0}, + new double[]{0, 1}, + new double[]{0, 2}, + new double[]{1, 0} + ); + + String res3 = MeetingPoint.collision( + new double[]{0, 0}, + new double[]{10, 5}, + new double[]{100, 50}, + new double[]{-5, -2.5} + ); + + System.out.println(res1); + System.out.println(res2); + System.out.println(res3); + } + + public static String collision(double[] positionA, double[] speedA, double[] positionB, double[] speedB) { + + double xa = positionA[0]; + double ya = positionA[1]; + double xb = positionB[0]; + double yb = positionB[1]; + double sxa = speedA[0]; + double sya = speedA[1]; + double sxb = speedB[0]; + double syb = speedB[1]; + double tx = 0; + double ty = 0; + double time = 0; + double x = 0; + double y = 0; + + if ((sxa - sxb) == 0) { + if (xa == xb) tx = 0; + else return "Objects are not intercepted."; + } else { + tx = (xb - xa) / (sxa - sxb); + } + + if ((sya - syb) == 0) { + if (ya == yb) ty = 0; + else return "Objects are not intercepted."; + } else { + ty = (yb - ya) / (sya - syb); + } + + if (tx == ty) { + time = tx; + x = xa + sxa * tx; + y = ya + sya * ty; + return String.format("The objects intersect at the point ({%f}, {%f}) and in time {%f}.", x, y, time); + } else { + return "Objects are not intercepted."; + } + } + +} From 221569bf7cdcd9dd3102776809ec70821da0630e Mon Sep 17 00:00:00 2001 From: Claudio Rodriguez Herrera Date: Mon, 4 Dec 2023 21:33:32 -0300 Subject: [PATCH 05/30] Reto #47 - Python --- .../python/inkhemi.py" | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/inkhemi.py" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/inkhemi.py" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/inkhemi.py" new file mode 100644 index 0000000000..8b68859c64 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/inkhemi.py" @@ -0,0 +1,33 @@ +def pointsPerWord(): + letterPoints = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5, + "f": 6, "g": 7, "h": 8, "i": 9, "j": 10, + "k": 11, "l": 12, "m": 13, "n": 14, "ñ": 15, + "o": 16, "p": 17, "q": 18, "r": 19, "s": 20, + "t": 21, "u": 22, "v": 23, "w": 24, "x": 25, + "y": 26, "z": 27 + } + + print("Intenta escribir una palabra de 100 puntos. \nCada palabra tiene una cantidad de puntos según su lugar en el alfabeto.") + print("Escribe 0 para salir") + + while True: + points = 0 + word = input("Ingresa una palabra sin utilizar tildes: ").lower() + if word == "0": + print("Saliste con éxito") + break + + try: + for letter in word: + points += letterPoints[letter] + + if points == 100: + print("Lograste escribir una palabra de 100 puntos. \nHas ganado") + break + print(f"La palabra tiene {points} puntos") + except KeyError: + print("Argumento incorrecto") + + +if __name__ == "__main__": + pointsPerWord() From eba7832aae5aef77c499ccbb300c2eeb4d2138e0 Mon Sep 17 00:00:00 2001 From: patotal Date: Mon, 4 Dec 2023 22:57:43 -0300 Subject: [PATCH 06/30] reto#8 - python --- .../python/patotal.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 Retos/Reto #8 - EL GENERADOR PSEUDOALEATORIO [Media]/python/patotal.py diff --git a/Retos/Reto #8 - EL GENERADOR PSEUDOALEATORIO [Media]/python/patotal.py b/Retos/Reto #8 - EL GENERADOR PSEUDOALEATORIO [Media]/python/patotal.py new file mode 100644 index 0000000000..c0336e0d42 --- /dev/null +++ b/Retos/Reto #8 - EL GENERADOR PSEUDOALEATORIO [Media]/python/patotal.py @@ -0,0 +1,4 @@ + +import time + +print (*[time.time_ns() % 101 for i in range(101)]) \ No newline at end of file From 27e0a16719cdc0fef961be3ac38c80c5905142f1 Mon Sep 17 00:00:00 2001 From: carlosbb70 <65777163+carlosbb70@users.noreply.github.com> Date: Mon, 4 Dec 2023 22:25:23 -0500 Subject: [PATCH 07/30] Create carlosbb70.py --- .../python/carlosbb70.py" | 1 + 1 file changed, 1 insertion(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" @@ -0,0 +1 @@ + From f07c2cab53715499bd519941645a5ee2bbf4ca2e Mon Sep 17 00:00:00 2001 From: carlosbb70 <65777163+carlosbb70@users.noreply.github.com> Date: Mon, 4 Dec 2023 22:28:48 -0500 Subject: [PATCH 08/30] Add files via upload --- .../python/carlosbb70.py" | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" index 8b13789179..dbbc18e0d0 100644 --- "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" @@ -1 +1,24 @@ - + + +abecedario = { + 'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6, 'g':7, 'h':8, 'i':9, 'j':10, + 'k':11, 'l':12, 'm':13, 'n':14, 'ñ':15, 'o':16, 'p':17, 'q':18, 'r':19, + 's':20, 't':21, 'u':22, 'v':23, 'w':24, 'x':25, 'y':26, 'z':27 +} + +while True: + palabra = input("Por favor introduzca una palabra: ") + suma = 0 + for char in palabra: + for clave in abecedario: + if char == clave: + suma += abecedario [clave] + print(clave, ' -> ', abecedario[clave]) + print("La palabra ", palabra, " suma ", suma, " puntos.") + if suma == 100: + print("Lo lograstes la palabra suma 100 puntos.") + break + + + + \ No newline at end of file From 8e8e82543ca19f8e79d9443f4000aa761c9b0e64 Mon Sep 17 00:00:00 2001 From: jcdm60 Date: Mon, 4 Dec 2023 23:43:32 -0400 Subject: [PATCH 09/30] Reto #47 - Python --- .../python/jcdm60.py" | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/jcdm60.py" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/jcdm60.py" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/jcdm60.py" new file mode 100644 index 0000000000..1d72c3de15 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/jcdm60.py" @@ -0,0 +1,41 @@ +# Reto #47: La palabra de 100 puntos +#### Dificultad: Fácil | Publicación: 04/12/23 | Corrección: 11/12/23 + +## Enunciado + +# +# La última semana de 2021 comenzamos la actividad de retos de programación, +# con la intención de resolver un ejercicio cada semana para mejorar +# nuestra lógica... ¡Hemos llegado al EJERCICIO 100! Gracias 🙌 +# +# Crea un programa que calcule los puntos de una palabra. +# - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario +# español de 27 letras, la A vale 1 y la Z 27. +# - El programa muestra el valor de los puntos de cada palabra introducida. +# - El programa finaliza si logras introducir una palabra de 100 puntos. +# - Puedes usar la terminal para interactuar con el usuario y solicitarle +# cada palabra. +# + +class PointsCalculator: + def calculate_points(self, word): + total_points = 0 + for letter in word: + value_of_letter = ord(letter.upper()) - 64 + if 1 <= value_of_letter <= 26: + total_points += value_of_letter + return total_points + +def main(): + calculator = PointsCalculator() + while True: + word = input("Introduce una palabra: ") + points = calculator.calculate_points(word) + print(f"La palabra '{word}' tiene {points} puntos.") + + if points >= 100: + print("Has alcanzado o superado los 100 puntos!") + break + +if __name__ == "__main__": + main() From b4e47eb4a9333c982c7c0a6188e47acfa4518927 Mon Sep 17 00:00:00 2001 From: carlosbb70 <65777163+carlosbb70@users.noreply.github.com> Date: Mon, 4 Dec 2023 23:28:58 -0500 Subject: [PATCH 10/30] Update carlosbb70.py --- .../python/carlosbb70.py" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" index dbbc18e0d0..86816d9fc4 100644 --- "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/carlosbb70.py" @@ -8,6 +8,7 @@ while True: palabra = input("Por favor introduzca una palabra: ") + palabra = palabra.lower() suma = 0 for char in palabra: for clave in abecedario: @@ -21,4 +22,4 @@ - \ No newline at end of file + From e73aedaa586d62f2cfdb3fb300a16199917f17a7 Mon Sep 17 00:00:00 2001 From: marco cruz Date: Tue, 5 Dec 2023 00:05:32 -0600 Subject: [PATCH 11/30] Reto #47 - Javascript --- .../js/marcode24.js" | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/js/marcode24.js" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/js/marcode24.js" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/js/marcode24.js" new file mode 100644 index 0000000000..eed0c5963a --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/js/marcode24.js" @@ -0,0 +1,56 @@ +/* + * La última semana de 2021 comenzamos la actividad de retos de programación, + * con la intención de resolver un ejercicio cada semana para mejorar + * nuestra lógica... ¡Hemos llegado al EJERCICIO 100! Gracias 🙌 + * + * Crea un programa que calcule los puntos de una palabra. + * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario + * español de 27 letras, la A vale 1 y la Z 27. + * - El programa muestra el valor de los puntos de cada palabra introducida. + * - El programa finaliza si logras introducir una palabra de 100 puntos. + * - Puedes usar la terminal para interactuar con el usuario y solicitarle + * cada palabra. + */ + +const readline = require('readline'); + +const letterAValue = 'a'.charCodeAt(0); + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, +}); + +const getResume = (word) => [...word] + .map((letter) => `${letter} = ${letter.charCodeAt(0) - letterAValue + 1}\n`) + .join(''); + +function calculatePoints(word) { + let points = 0; + for (let i = 0; i < word.length; i++) { + const letter = word[i]; + if (letter >= 'a' && letter <= 'z') { + points += letter.charCodeAt(0) - letterAValue + 1; + } + } + return points; +} + +function jugar() { + rl.question('Introduce una palabra: ', (word) => { + const points = calculatePoints(word.toLowerCase()); + console.log(`\nPuntos de "${word}": ${points}`); + console.log(`${getResume(word)}`); + + if (points === 100) { + console.log('¡Felicidades! Has alcanzado 100 puntos.'); + rl.close(); + } else { + jugar(); + } + }); +} + +jugar(); + +// Visita mi repo en GitHub para ver y correr los tests de este código --> https://github.com/marcode24/weekly-challenges From 6460b303135ad507b52edb7b5b8f3681311c2aea Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Tue, 5 Dec 2023 07:53:54 +0100 Subject: [PATCH 12/30] Reto #47 - Kotlin --- .../kotlin/pisanowp.kt" | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/kotlin/pisanowp.kt" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/kotlin/pisanowp.kt" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/kotlin/pisanowp.kt" new file mode 100644 index 0000000000..05d2d15a6c --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/kotlin/pisanowp.kt" @@ -0,0 +1,68 @@ +fun main() { + + /* + * Reto #47 04/12/2023 LA PALABRA DE 100 PUNTOS + * + * La última semana de 2021 comenzamos la actividad de retos de programación, + * con la intención de resolver un ejercicio cada semana para mejorar + * nuestra lógica... ¡Hemos llegado al EJERCICIO 100! Gracias 🙌 + * + * Crea un programa que calcule los puntos de una palabra. + * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario + * español de 27 letras, la A vale 1 y la Z 27. + * - El programa muestra el valor de los puntos de cada palabra introducida. + * - El programa finaliza si logras introducir una palabra de 100 puntos. + * - Puedes usar la terminal para interactuar con el usuario y solicitarle + * cada palabra. + * + */ + + // Inicializamos el abeceraio, añadiendo la Ñ + val abecedario : MutableList = mutableListOf() + ('A'..'N').forEachIndexed(){ indice, letra -> + abecedario.add(letra) + } + abecedario.add('Ñ') + ('O'..'Z').forEachIndexed(){ indice, letra -> + abecedario.add(letra) + } + + var seguirJugando = true + while (seguirJugando) { + print("Introduce palabra (EXIT para terminar)> ") + val palabra = readLine() + var puntuacion = 0 + if (palabra != null) { + val pal = palabra.uppercase() + pal.forEach { + puntuacion += abecedario.lastIndexOf(it) + 1 + } + } + + when { + (puntuacion < 20) -> { + println("Tu palabra tiene un valor de $puntuacion puntos, aún muy lejos de los 100 esperados :(") + } + (puntuacion < 50) -> { + println("Tu palabra tiene un valor de $puntuacion puntos,más cerca de los 100 :|") + + } + (puntuacion < 70) -> { + println("Tu palabra tiene un valor de $puntuacion puntos,has pasado la media pero aún queda para los 100 :)") + + } + (puntuacion < 99) -> { + println("Tu palabra tiene un valor de $puntuacion puntos, cada vez estas más cerca de conseguirlo :)") + + } else -> { + println("¡¡¡ ENHORABUENA !!! Tu palabra tiene un valor de $puntuacion puntos :D ") + seguirJugando = false + } + } + if (palabra?.uppercase() == "EXIT"){ + seguirJugando = false + } + + } + +} From 5ecd1c4fd7e507db6e8ca81ddb30a6128db5e4a3 Mon Sep 17 00:00:00 2001 From: Hector Date: Tue, 5 Dec 2023 09:32:25 +0100 Subject: [PATCH 13/30] Reto #47- Javascript --- .../javascript/HectorIglesias.js" | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/HectorIglesias.js" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/HectorIglesias.js" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/HectorIglesias.js" new file mode 100644 index 0000000000..0a5d22e85b --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/HectorIglesias.js" @@ -0,0 +1,40 @@ +/* + * La última semana de 2021 comenzamos la actividad de retos de programación, + * con la intención de resolver un ejercicio cada semana para mejorar + * nuestra lógica... ¡Hemos llegado al EJERCICIO 100! Gracias 🙌 + * + * Crea un programa que calcule los puntos de una palabra. + * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario + * español de 27 letras, la A vale 1 y la Z 27. + * - El programa muestra el valor de los puntos de cada palabra introducida. + * - El programa finaliza si logras introducir una palabra de 100 puntos. + * - Puedes usar la terminal para interactuar con el usuario y solicitarle + * cada palabra. + */ +const abecedario = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ" + +function reto_100(){ + let suma = 0 + + let respuesta = prompt("Introduce una palabra: ") + suma = contar_palabras(respuesta) + console.log(respuesta+" suma "+suma) + if(suma == 100){ + console.log("Enhorabuena, has introducido una palabra de 100 puntos") + } + else{ + console.log("La palabra no suma 100 puntos. Sigue intentadolo") + reto_100() + } +} + +function contar_palabras(respuesta){ + let aux = 0 + respuesta = respuesta.toUpperCase() + for(let i= 0; i < respuesta.length; i++){ + aux += abecedario.indexOf(respuesta[i])+1 + } + return aux +} + +reto_100() \ No newline at end of file From 74d06389bebb598f598b4f5f6f92fd7f5bc60cad Mon Sep 17 00:00:00 2001 From: Othamae Date: Tue, 5 Dec 2023 11:32:32 +0100 Subject: [PATCH 14/30] Reto #47 - javascript --- .../javascript/othamae.js" | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/othamae.js" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/othamae.js" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/othamae.js" new file mode 100644 index 0000000000..baaaad4f21 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/othamae.js" @@ -0,0 +1,42 @@ +/* + * La última semana de 2021 comenzamos la actividad de retos de programación, + * con la intención de resolver un ejercicio cada semana para mejorar + * nuestra lógica... ¡Hemos llegado al EJERCICIO 100! Gracias 🙌 + * + * Crea un programa que calcule los puntos de una palabra. + * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario + * español de 27 letras, la A vale 1 y la Z 27. + * - El programa muestra el valor de los puntos de cada palabra introducida. + * - El programa finaliza si logras introducir una palabra de 100 puntos. + * - Puedes usar la terminal para interactuar con el usuario y solicitarle + * cada palabra. + */ +const readline = require('readline') +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout +}) + +console.log("Welcome to 100 points word!!") +game() + +function game(){ + let points = 0 + console.log("Try to find a word of 100 points:") + rl.on('line', (input) => { + for (let char of input.toLowerCase()){ + points += char.charCodeAt(0) - 96 + } + if(points == 100){ + console.log("Congratulations!! You found the word!!") + rl.close() + } else { + console.log(`You get ${points} points,`) + console.log("Try again!!") + rl.removeAllListeners('line'); + game() + } + }) +} + + From aba99a9e9b5bc96dc16b9d19f554ec66b3b0ea44 Mon Sep 17 00:00:00 2001 From: Adridoce Date: Tue, 5 Dec 2023 13:17:15 +0100 Subject: [PATCH 15/30] Reto #0 - Python --- .../python/adridoce.py" | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 "Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/python/adridoce.py" diff --git "a/Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/python/adridoce.py" "b/Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/python/adridoce.py" new file mode 100644 index 0000000000..2c9ab525d1 --- /dev/null +++ "b/Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/python/adridoce.py" @@ -0,0 +1,23 @@ +""" +/* + * Escribe un programa que muestre por consola (con un print) los + * números de 1 a 100 (ambos incluidos y con un salto de línea entre + * cada impresión), sustituyendo los siguientes: + * - Múltiplos de 3 por la palabra "fizz". + * - Múltiplos de 5 por la palabra "buzz". + * - Múltiplos de 3 y de 5 a la vez por la palabra "fizzbuzz". + */ +""" + +for num in range(1, 101): + if num % 3 == 0 and num % 5 == 0: + print("\nfizzbuzz") + + elif num % 3 == 0: + print("\nfizz") + + elif num % 5 == 0: + print("\nbuzz") + + else: + print("\n", num) From 4327429a5d44e60f6534d4d87523d9e0aaca4fad Mon Sep 17 00:00:00 2001 From: Hool45 <152042752+Hool45@users.noreply.github.com> Date: Tue, 5 Dec 2023 10:53:34 -0300 Subject: [PATCH 16/30] Hool45.py --- .../python/Hool45.py" | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/Hool45.py" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/Hool45.py" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/Hool45.py" new file mode 100644 index 0000000000..0e4c6c5373 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/Hool45.py" @@ -0,0 +1,58 @@ +""" + * Crea un programa que calcule los puntos de una palabra. + * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario + * español de 27 letras, la A vale 1 y la Z 27. + * - El programa muestra el valor de los puntos de cada palabra introducida. + * - El programa finaliza si logras introducir una palabra de 100 puntos. + * - Puedes usar la terminal para interactuar con el usuario y solicitarle + * cada palabra. +""" +import re + +abedecario = "abcdefghijklmnñopqrstuvwxyz" +def WordPoints(): + real_word = "" + points_word = 0 + list_letters = list() + word = str(input("hola, escribe una palabra, solo una palabra ")) + + for i in word: + + if i == " ": + break + real_word += i + + real_word = real_word.lower() + pattern = r'[a-z]' + real_word = re.findall(pattern, real_word) + print(real_word) + + for letters in real_word: + for index, letter in enumerate(abedecario): + if letter == letters: + points_word += index + 1 + + print(points_word) + + if points_word < 100: + print("no es mayor que 100 puntos, intenta de nuevo crack") + WordPoints() + elif points_word >= 100: + print("LO LOGRASTE") + try_again = input("quieres volver a jugar?(y/n) ") + if try_again == "y": + try_again = "" + WordPoints() + elif try_again == "n": + print("OK") + else: + try_again = "" + print("lo tomare como un si") + WordPoints() + + + + + + +WordPoints() From aa2102006d18d481559254a0c380c3945b474ffc Mon Sep 17 00:00:00 2001 From: RXVLC Date: Tue, 5 Dec 2023 16:12:35 +0100 Subject: [PATCH 17/30] Ej 47 acabado --- .../c#/RXVLC.cs" | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/c#/RXVLC.cs" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/c#/RXVLC.cs" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/c#/RXVLC.cs" new file mode 100644 index 0000000000..e507f31b30 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/c#/RXVLC.cs" @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +/* + * La última semana de 2021 comenzamos la actividad de retos de programación, + * con la intención de resolver un ejercicio cada semana para mejorar + * nuestra lógica... ¡Hemos llegado al EJERCICIO 100! Gracias 🙌 + * + * Crea un programa que calcule los puntos de una palabra. + * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario + * español de 27 letras, la A vale 1 y la Z 27. + * - El programa muestra el valor de los puntos de cada palabra introducida. + * - El programa finaliza si logras introducir una palabra de 100 puntos. + * - Puedes usar la terminal para interactuar con el usuario y solicitarle + * cada palabra. + */ +namespace ConsoleApp1 +{ + internal class Program + { + static void Main(string[] args) + { + char[] abecedario = { + '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' + }; + int puntos, intentos = 0; + Console.WriteLine("¡Bienvenido al programa de la palabra de los 100 puntos!"); + do + { + puntos = 0; + intentos++; + Console.Write("Introduce una palabra para calcular sus puntos: "); + string palabra = Console.ReadLine(); + char[] letras = (palabra).ToLower().ToCharArray(); + List resultado = new List(letras); + + foreach (var letra in resultado) + { + int index = Array.IndexOf(abecedario, letra); + if(index == -1) Console.WriteLine($"La letra {letra} no está en el abecedario."); + else + puntos += index + 1; + } + + if (puntos < 100 | puntos > 100) + { + Console.WriteLine($"La palabra {palabra} tiene {puntos} puntos."); + Console.WriteLine($"Llevas {intentos} intentos."); + Console.WriteLine("Pulsa cualquier tecla para continuar..."); + Console.ReadKey(); + Console.Clear(); + } + else + { + Console.WriteLine($"¡Has ganado! ¡Felicidades! ¡La palabra {palabra} tiene {puntos} puntos! "); + Console.WriteLine($"Has acabado con {intentos} intentos."); + Console.WriteLine("¡Gracias por jugar!"); + Console.WriteLine("Pulsa cualquier tecla para salir..."); + Console.ReadKey(); + Console.Clear(); + } + + + + + } while (puntos != 100); + + } + } +} From 126ccbb2d077b9b2af72edeaf5c1b2a4b4e42b18 Mon Sep 17 00:00:00 2001 From: markosci89 <75733403+markosci89@users.noreply.github.com> Date: Tue, 5 Dec 2023 16:43:51 +0100 Subject: [PATCH 18/30] Reto #47 - Javascript Resuelto el ejercicio del reto semanal con javascript --- .vscode/launch.json | 15 ++++++ .../javascript/marcoscontrerasizquierdo.js" | 48 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 .vscode/launch.json create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcoscontrerasizquierdo.js" diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000..24cd6055e0 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense para saber los atributos posibles. + // Mantenga el puntero para ver las descripciones de los existentes atributos. + // Para más información, visite: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "Iniciar Chrome para localhost", + "url": "http://localhost:8080", + "webRoot": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcoscontrerasizquierdo.js" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcoscontrerasizquierdo.js" new file mode 100644 index 0000000000..915ad280ef --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcoscontrerasizquierdo.js" @@ -0,0 +1,48 @@ +/* + * Crea un programa que calcule los puntos de una palabra. + * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario + * español de 27 letras, la A vale 1 y la Z 27. + * - El programa muestra el valor de los puntos de cada palabra introducida. + * - El programa finaliza si logras introducir una palabra de 100 puntos. + * - Puedes usar la terminal para interactuar con el usuario y solicitarle + * cada palabra. + */ + +const validapuntos = () => { + var puntuacion = 0; + var acumuladopuntos = 0 + var diccionario = {a:1,b:2,c:3,d:4,e:5,f:6,g:7,h:8,i:9,j:10,k:11,l:12,m:13,n:14,ñ:15,o:16,p:17,q:18,r:19,s:20,t:21,u:22,v:23,w:24,x:25,y:26,z:27} + + while(acumuladopuntos < 100){ + var palabra = prompt(`Qué palabra quieres puntuar? La palabra vale ${puntuacion} y un total de ${acumuladopuntos}`); + + if(palabra===null) + return + + if(palabra==="") alert(`No puedes poner una palabra vacía`) + // Validamos + for (let i in palabra){ + let letra = palabra.charAt(i) + if (letra in diccionario){ + puntuacion += diccionario[letra]; + } + } + // almacena en localstorage para el acumulado. + if(!localStorage.getItem("acumuladopuntos")){ + localStorage.setItem("acumuladopuntos",puntuacion); + acumuladopuntos = parseInt(localStorage.getItem("acumuladopuntos")) + }else{ + acumuladopuntos = parseInt(localStorage.getItem("acumuladopuntos"))+puntuacion + localStorage.setItem("acumuladopuntos",acumuladopuntos); + } + + if(acumuladopuntos >= 100){ + alert('Enhorabuena!! Has pasado los 100 puntos'); + localStorage.removeItem("acumuladopuntos"); + } + console.log(`Tus puntos son: ${puntuacion} y llevas acumulados ${acumuladopuntos}`) + +} +} + +validapuntos() From 1df577e16574efbac70c974ce50c1a844208cec9 Mon Sep 17 00:00:00 2001 From: markosci89 <75733403+markosci89@users.noreply.github.com> Date: Tue, 5 Dec 2023 16:46:53 +0100 Subject: [PATCH 19/30] Quitado fichero json --- .vscode/launch.json | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 24cd6055e0..0000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - // Use IntelliSense para saber los atributos posibles. - // Mantenga el puntero para ver las descripciones de los existentes atributos. - // Para más información, visite: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "chrome", - "request": "launch", - "name": "Iniciar Chrome para localhost", - "url": "http://localhost:8080", - "webRoot": "${workspaceFolder}" - } - ] -} \ No newline at end of file From 8304fc12be3dc8f1721e8fe20f0638c6af762348 Mon Sep 17 00:00:00 2001 From: markosci89 <75733403+markosci89@users.noreply.github.com> Date: Tue, 5 Dec 2023 16:48:23 +0100 Subject: [PATCH 20/30] Cambio para el nombre del nick --- .../javascript/markosci89.js" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcoscontrerasizquierdo.js" => "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/markosci89.js" (100%) diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcoscontrerasizquierdo.js" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/markosci89.js" similarity index 100% rename from "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcoscontrerasizquierdo.js" rename to "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/markosci89.js" From bc4d4bc8ae6c9752a445569f93737d1c7fd9deb9 Mon Sep 17 00:00:00 2001 From: DHiebl <108873454+sirnas1983@users.noreply.github.com> Date: Tue, 5 Dec 2023 13:57:28 -0300 Subject: [PATCH 21/30] Reto #47 - python --- .../python/sirnas1983.py" | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/sirnas1983.py" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/sirnas1983.py" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/sirnas1983.py" new file mode 100644 index 0000000000..e7d62c1774 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/sirnas1983.py" @@ -0,0 +1,29 @@ + +def palabra_100_puntos(): + print(''' +Reglas: Para ganar debe ingresar una palabra y que la suma de sus +letras sea de 100 puntos. La letra 'a' equivale a 1 punto y la 'z' +a 27 puntos.No distingue mayusculas de minusculas! ¡A divertirse! +''') + palabra = input("Ingrese una palabra: ") + play = True + while play: + puntos = 0 + for letra in palabra: + punto = ord(letra.upper()) - 64 + if punto in range(1,28): + puntos += punto + if puntos == 100: + print("¡Has logrado escribir una palabra de 100 puntos!") + print("¡Felicitaciones!") + break + else: + print(f'Tu palabra sumó {puntos} puntos') + print('¿Deseas intentarlo nuevamente? (S/N)') + if input()[0].upper() == "S": + palabra = input("Ingrese una palabra: ") + else: + print("¡Gracias por participar!") + break + +palabra_100_puntos() From 1b6540421828fd3a83afa4225fd5a7daa4f43ba2 Mon Sep 17 00:00:00 2001 From: danivendetta Date: Tue, 5 Dec 2023 18:29:10 +0100 Subject: [PATCH 22/30] Reto #47 - Python --- .../python/danivendetta.py" | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/danivendetta.py" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/danivendetta.py" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/danivendetta.py" new file mode 100644 index 0000000000..bfba66026f --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/danivendetta.py" @@ -0,0 +1,89 @@ +# /* +# * La última semana de 2021 comenzamos la actividad de retos de programación, +# * con la intención de resolver un ejercicio cada semana para mejorar +# * nuestra lógica... ¡Hemos llegado al EJERCICIO 100! Gracias 🙌 +# * +# * Crea un programa que calcule los puntos de una palabra. +# * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario +# * español de 27 letras, la A vale 1 y la Z 27. +# * - El programa muestra el valor de los puntos de cada palabra introducida. +# * - El programa finaliza si logras introducir una palabra de 100 puntos. +# * - Puedes usar la terminal para interactuar con el usuario y solicitarle +# * cada palabra. +# */ +# ``` +import string +import getpass as gt +def create_dict_abc_values(abc: list) -> dict: + val = 1 + abc_values_reference = dict() + for char in abc: + abc_values_reference.update({char: val}) + val += 1 + return abc_values_reference + +def calculate_word_value(word: str, abc_values_reference: dict) -> int: + value = 0 + for char in word: + try: + value += abc_values_reference[char] + except Exception as Error: + print(f"Tu diccionario no contiene la letra {Error} por lo tanto, te sumará 0 puntos") + print(Error) + # print(f'{char} vale {abc_values_reference[char]}') + + return value + +def select_diccionario() -> list: + diccionario = None + while not diccionario: + diccionario = input("Elige que diccionario usar: EN or ES:\n").upper() + if diccionario == "ES": + abc = list(string.ascii_lowercase) + abc.insert(14, "ñ") + elif diccionario == "EN": + abc = list(string.ascii_lowercase) + else: + diccionario = None + + return abc + +def select_word() -> str: + word = input("Escribe tu palabra!:\n").lower() + while not word.isalpha(): + word = input("Escribe tu palabra! sin numeros ni simbolos!!:\n").lower() + + return word +def start_game(): + user = gt.getuser().title() + print(f'{user} bienvenido a "La palabra mágica de 100 puntos"') + jugando = True + abc = select_diccionario() + abc_ref_values = create_dict_abc_values(abc) + while jugando: + word = select_word() + word_value = calculate_word_value(word, abc_ref_values) + print(f'Palabra: {word} vale: {word_value} puntos.\n') + if word_value == 100: + print(f'Tenemos palabra ganadora: {word}:\n') + seguir = input(f'{user} ¿quieres seguir jugando? [y/N]:\n').lower() + if seguir == "y": + continue + else: + jugando = False + + + print(f'Gracias {user} por jugar y hasta la proxima') + + +if __name__ == "__main__": + # abc = list(string.ascii_lowercase) + # abc_es = abc.copy() + # abc_es.insert(14, "ñ") + # abc_values_reference = create_dict_abc_values(abc_es) + # word1 = "murcielago" + # word2 = "ñapa" + # calculate_word_value(word1, abc_values_reference) + # calculate_word_value(word2, abc_values_reference) + + start_game() \ No newline at end of file From a25750ffed487873cbe1ebd85f9a0f30ffecc77f Mon Sep 17 00:00:00 2001 From: vicgallego Date: Tue, 5 Dec 2023 20:32:32 +0100 Subject: [PATCH 23/30] Reto_#6_vicgallego --- .../c#/vicgallego.cs | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 Retos/Reto #6 - PIEDRA, PAPEL, TIJERA, LAGARTO, SPOCK [Media]/c#/vicgallego.cs diff --git a/Retos/Reto #6 - PIEDRA, PAPEL, TIJERA, LAGARTO, SPOCK [Media]/c#/vicgallego.cs b/Retos/Reto #6 - PIEDRA, PAPEL, TIJERA, LAGARTO, SPOCK [Media]/c#/vicgallego.cs new file mode 100644 index 0000000000..9f408796ad --- /dev/null +++ b/Retos/Reto #6 - PIEDRA, PAPEL, TIJERA, LAGARTO, SPOCK [Media]/c#/vicgallego.cs @@ -0,0 +1,104 @@ +/* + * Crea un programa que calcule quien gana más partidas al piedra, + * papel, tijera, lagarto, spock. + * - El resultado puede ser: "Player 1", "Player 2", "Tie" (empate) + * - La función recibe un listado que contiene pares, representando cada jugada. + * - El par puede contener combinaciones de "🗿" (piedra), "📄" (papel), + * "✂️" (tijera), "🦎" (lagarto) o "🖖" (spock). + * - Ejemplo. Entrada: [("🗿","✂️"), ("✂️","🗿"), ("📄","✂️")]. Resultado: "Player 2". + * - Debes buscar información sobre cómo se juega con estas 5 posibilidades. + */ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Reto__6 +{ + internal class Program + { + + static void Main(string[] args) + { + string jugador1 = "jugador1"; + string jugador2 = "jugador2"; + + + int victoriasJugador1 = 0; + int victoriasJugador2 = 0; + + // Bucle para jugar múltiples rondas + while (true) + { + Console.WriteLine("\nNueva ronda:"); + + // Solicitar jugadas de los jugadores + Console.Write("Jugador 1 elige: Piedra, Papel, Tijera, Lagarto o Spock: "); + string jugadaJugador1 = Console.ReadLine().ToUpper(); + + Console.Write("Jugador 2 elige: Piedra, Papel, Tijera, Lagarto o Spock: "); + string jugadaJugador2 = Console.ReadLine().ToUpper(); + + // Validar las jugadas y determinar el ganador + string resultado = DeterminarGanador(jugadaJugador1, jugadaJugador2); + + // Mostrar el resultado de la ronda + Console.WriteLine($"Resultado: {resultado}"); + + // Actualizar el contador de victorias + if (resultado == jugador1) + victoriasJugador1++; + else if (resultado == jugador2) + victoriasJugador2++; + + // Preguntar si los jugadores quieren jugar otra ronda + Console.Write("\n¿Quieren jugar otra ronda? (Sí/No): "); + string respuesta = Console.ReadLine().ToUpper(); + + if (respuesta != "SI") + break; // Salir del bucle si la respuesta no es "Sí" + } + + // Mostrar el resultado final + Console.WriteLine($"\nResultados finales:"); + Console.WriteLine($"Jugador 1: {victoriasJugador1} victorias"); + Console.WriteLine($"Jugador 2: {victoriasJugador2} victorias"); + + if (victoriasJugador1 > victoriasJugador2) + Console.WriteLine("Jugador 1 es el ganador!"); + else if (victoriasJugador2 > victoriasJugador1) + Console.WriteLine("Jugador 2 es el ganador!"); + else + Console.WriteLine("¡Empate!"); + + // Esperar a que el usuario presione una tecla antes de salir + Console.ReadKey(); + } + + // Función para determinar el ganador de una ronda + static string DeterminarGanador(string jugada1, string jugada2) + { + if ((jugada1 == "PIEDRA" && (jugada2 == "LAGARTO" || jugada2 == "TIJERA")) || + (jugada1 == "PAPEL" && (jugada2 == "PIEDRA" || jugada2 == "SPOCK")) || + (jugada1 == "TIJERA" && (jugada2 == "PAPEL" || jugada2 == "LAGARTO")) || + (jugada1 == "LAGARTO" && (jugada2 == "PAPEL" || jugada2 == "SPOCK")) || + (jugada1 == "SPOCK" && (jugada2 == "PIEDRA" || jugada2 == "TIJERA"))) + { + return "jugador1"; + } else if ((jugada2 == "PIEDRA" && (jugada1 == "LAGARTO" || jugada1 == "TIJERA")) || + (jugada2 == "PAPEL" && (jugada1 == "PIEDRA" || jugada1 == "SPOCK")) || + (jugada2 == "TIJERA" && (jugada1 == "PAPEL" || jugada1 == "LAGARTO")) || + (jugada2 == "LAGARTO" && (jugada1 == "PAPEL" || jugada1 == "SPOCK")) || + (jugada2 == "SPOCK" && (jugada1 == "PIEDRA" || jugada1 == "TIJERA"))) + + { + return "jugador2"; + } else { + return "Empate"; + } + } + } + +} \ No newline at end of file From 6a1a8bd9ad4a5d910c7c523c6e71422de75b5977 Mon Sep 17 00:00:00 2001 From: Mardo <134632446+Mardowen@users.noreply.github.com> Date: Tue, 5 Dec 2023 15:34:56 -0400 Subject: [PATCH 24/30] Add files via upload --- .../c++/Mardowen.cpp | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 Retos/Reto #4 - PRIMO, FIBONACCI Y PAR [Media]/c++/Mardowen.cpp diff --git a/Retos/Reto #4 - PRIMO, FIBONACCI Y PAR [Media]/c++/Mardowen.cpp b/Retos/Reto #4 - PRIMO, FIBONACCI Y PAR [Media]/c++/Mardowen.cpp new file mode 100644 index 0000000000..23cbcc3ad6 --- /dev/null +++ b/Retos/Reto #4 - PRIMO, FIBONACCI Y PAR [Media]/c++/Mardowen.cpp @@ -0,0 +1,92 @@ +#include +using namespace std; + +/* + * Escribe un programa que, dado un nmero, compruebe y muestre si es primo, fibonacci y par. + * Ejemplos: + * - Con el nmero 2, nos dir: "2 es primo, fibonacci y es par" + * - Con el nmero 7, nos dir: "7 es primo, no es fibonacci y es impar" + */ + +void fibonacci(int); +void primo(int); +void par(int); + + + +int main(){ + int numero; + + cout<<"Coloca un numero: "; cin>>numero; + + fibonacci(numero); + primo(numero); + par(numero); + + + + + + return 0; +} + +void fibonacci(int n){ + int a=0, b=1,c=0; + + do{ + c= a+b; + b=a; + a=c; + + }while(c!=n and c <= n); + + if(c == n){ + cout<<"Es fibonacci, "; + } + + else{ + cout<<"No es fibonacci, "; + } +} + +void primo(int n){ + + int div=0; + + if(n < 2){ + + } + + else{ + + for(int i=2; i Date: Tue, 5 Dec 2023 20:13:20 +0000 Subject: [PATCH 25/30] Reto #8 - Python --- .../python/JoseAntonioRuizGarcia.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Retos/Reto #8 - EL GENERADOR PSEUDOALEATORIO [Media]/python/JoseAntonioRuizGarcia.py diff --git a/Retos/Reto #8 - EL GENERADOR PSEUDOALEATORIO [Media]/python/JoseAntonioRuizGarcia.py b/Retos/Reto #8 - EL GENERADOR PSEUDOALEATORIO [Media]/python/JoseAntonioRuizGarcia.py new file mode 100644 index 0000000000..0049a91ba9 --- /dev/null +++ b/Retos/Reto #8 - EL GENERADOR PSEUDOALEATORIO [Media]/python/JoseAntonioRuizGarcia.py @@ -0,0 +1,15 @@ +import numpy as np +import time + +def randomNumber() -> None: + # Extrae los últimos 3 números de la hora de ejecución del código + seconds = time.time() + number = int(str(seconds)[-3:]) + + if number > 100: + number = int(np.round(number / 10, 0)) + + print(number) + +if __name__=='__main__': + randomNumber() From c58c5dd9bbd9e32b39e32d63e839ab16ee9a0604 Mon Sep 17 00:00:00 2001 From: deathiwng Date: Tue, 5 Dec 2023 23:04:29 +0100 Subject: [PATCH 26/30] Reto #47 - C# --- .../c#/deathwing696.cs" | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/c#/deathwing696.cs" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/c#/deathwing696.cs" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/c#/deathwing696.cs" new file mode 100644 index 0000000000..e08818dde7 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/c#/deathwing696.cs" @@ -0,0 +1,80 @@ +/* + * La última semana de 2021 comenzamos la actividad de retos de programación, + * con la intención de resolver un ejercicio cada semana para mejorar + * nuestra lógica... ¡Hemos llegado al EJERCICIO 100! Gracias 🙌 + * + * Crea un programa que calcule los puntos de una palabra. + * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario + * español de 27 letras, la A vale 1 y la Z 27. + * - El programa muestra el valor de los puntos de cada palabra introducida. + * - El programa finaliza si logras introducir una palabra de 100 puntos. + * - Puedes usar la terminal para interactuar con el usuario y solicitarle + * cada palabra. + */ + +using System; +using System.Globalization; +using System.Text; +using System.Web; + +namespace reto_47 +{ + public class Reto47 + { + static void Main(string[] args) + { + string palabra; + int puntos = 0; + + do + { + Console.Write("Introduce una palabra que tenga una puntuación igual o mayor a 100 puntos:"); + palabra = Console.ReadLine(); + puntos = Calcula_puntos(palabra); + Console.WriteLine($"La palabra {palabra} tiene {puntos} puntos"); + } while (puntos < 100); + + Console.WriteLine("Enhorabuena! Has conseguido una palabra de 100 puntos! Hasta la próxima!"); + + Console.ReadKey(); + } + + static private int Calcula_puntos(string palabra) + { + string palabra_mayusculas = palabra.ToUpper(); + int codigo_ascci_a = (int)'A', puntos = 0; + + palabra_mayusculas = Quitar_acentos(palabra_mayusculas); + + foreach (var letra in palabra_mayusculas) + { + if (Char.IsLetter(letra)) + { + puntos += (int)letra - codigo_ascci_a + 1; + } + else + { + puntos += 0; + } + } + + return puntos; + } + + static private string Quitar_acentos(string palabra) + { + string palabra_normalizada = palabra.Normalize(NormalizationForm.FormD); + StringBuilder salida = new StringBuilder(); + + foreach (char c in palabra_normalizada) + { + if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark) + { + salida.Append(c); + } + } + + return salida.ToString().Normalize(NormalizationForm.FormC); + } + } +} \ No newline at end of file From 5c4180dc7aae276c33e22dff08243fda7b5938b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateo=20=C3=81lvarez?= Date: Tue, 5 Dec 2023 17:48:35 -0500 Subject: [PATCH 27/30] Reto #47 - Python --- .../python/drifterDev.py" | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/drifterDev.py" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/drifterDev.py" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/drifterDev.py" new file mode 100644 index 0000000000..e8368192eb --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/python/drifterDev.py" @@ -0,0 +1,33 @@ +def game(): + points = 0 + letters1 = "abcdefghijklmnñopqrstuvwxyz" + letters2 = letters1.upper() + try: + word = input('Ingrese la palabra: ').split(' ')[0] + for c in word: + if not c in letters1 and not c in letters2: + raise Exception('No es una palabra valida') + for c in word: + points+=letters1.index(c.lower())+1 + except Exception as e: + print(e.args[0]) + return points + + +def main(): + print('#'*50) + print('Bienvenido al juego de palabras') + print('El objetivo es ingresar una palabra con 100 puntos') + print('Cada letra tiene un valor de 1 a 27 dependiendo de su posicion en el alfabeto') + print('Solo se tendra en cuenta la primera palabra ingresada') + print('#'*50) + while True: + points = game() + if points == 100: + break + print('Puntos: '+str(points)+', vuelve a intentarlo') + print('Ganaste!') + + +if __name__ == '__main__': + main() From 5389b8238a53ba68d505c6e9b3ba06eb8435b4ed Mon Sep 17 00:00:00 2001 From: allbertoMD Date: Wed, 6 Dec 2023 15:18:42 +0100 Subject: [PATCH 28/30] Reto 47 Swift --- .../swift/allbertoMD.swift" | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/swift/allbertoMD.swift" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/swift/allbertoMD.swift" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/swift/allbertoMD.swift" new file mode 100644 index 0000000000..2cecd1fb69 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/swift/allbertoMD.swift" @@ -0,0 +1,33 @@ +import Foundation + + +let puntuationForCharacter: [Character:Int] = [ + "a" : 1, "b" : 2, "c" : 3, "d" : 4, "e" : 5, "f" : 6, "g" : 7, "h" : 8, "i" : 9, "j" : 10, + "k" : 11, "l" : 12, "m" : 13, "n" : 14, "ñ" : 15, "o" : 16, "p" : 17, "q" : 18, "r" : 19, + "s" : 20, "t" : 21, "u" : 22, "v" : 23, "w" : 24, "x" : 25, "y" : 26, "z" : 27] + +var counter: Int = 0 +var flag = true + +print("Introduce tu palabra") +print("Para salir del programa introduce [q") + +while flag { + if let word: String = readLine() { + if word == "[q" { + flag = false + break + } + for character in word.lowercased() { + counter += puntuationForCharacter[character] ?? 0 + } + if counter == 100 { + print("Palabra de \(counter) puntos. ¡Lo conseguiste!") + flag = false + } else { + print("Palabra de \(counter), intentalo de nuevo") + } + counter = 0 + } +} + From 1f30359e802710619f3e416837d861e0316a6169 Mon Sep 17 00:00:00 2001 From: Bruce Date: Wed, 6 Dec 2023 19:33:37 -0300 Subject: [PATCH 29/30] =?UTF-8?q?Correcci=C3=B3n=20Carpeta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../javascript/marcode24.js" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/js/marcode24.js" => "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcode24.js" (100%) diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/js/marcode24.js" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcode24.js" similarity index 100% rename from "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/js/marcode24.js" rename to "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/javascript/marcode24.js" From 79411d34238f05872dd3b5cdc993680fcd851ef6 Mon Sep 17 00:00:00 2001 From: VitriVix Date: Thu, 7 Dec 2023 04:01:43 -0400 Subject: [PATCH 30/30] Reto#0-javascrip => resuelto --- .../javascript/vitrivix.js" | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 "Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/javascript/vitrivix.js" diff --git "a/Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/javascript/vitrivix.js" "b/Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/javascript/vitrivix.js" new file mode 100644 index 0000000000..ef60c9a25c --- /dev/null +++ "b/Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [F\303\241cil]/javascript/vitrivix.js" @@ -0,0 +1,18 @@ +/* + * Escribe un programa que muestre por consola (con un print) los + * números de 1 a 100 (ambos incluidos y con un salto de línea entre + * cada impresión), sustituyendo los siguientes: + * - Múltiplos de 3 por la palabra "fizz". + * - Múltiplos de 5 por la palabra "buzz". + * - Múltiplos de 3 y de 5 a la vez por la palabra "fizzbuzz". + */ + +function fizzbuzz(){ + for (let i = 1; i <= 100; i++) { + if(i % 3 === 0 && i % 5 === 0) console.log('fizzbuzz'); + else if (i % 3 === 0) console.log('fizz'); + else if (i % 5 === 0) console.log('buzz'); + else console.log(i); + } +} +fizzbuzz() \ No newline at end of file