From 90109da7382eaf7b1e84b28bc56278f32b97a701 Mon Sep 17 00:00:00 2001 From: Carlos Rivera <49885608+CarlosRivera4726@users.noreply.github.com> Date: Sat, 14 Jan 2023 14:05:14 -0500 Subject: [PATCH 1/7] Partido de tenis --- .../CarlosRivera_main.py | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera_main.py diff --git a/Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera_main.py b/Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera_main.py new file mode 100644 index 0000000000..06145fc082 --- /dev/null +++ b/Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera_main.py @@ -0,0 +1,74 @@ +''' + * Escribe un programa que muestre cómo transcurre un juego de tenis y quién lo ha ganado. + * El programa recibirá una secuencia formada por "P1" (Player 1) o "P2" (Player 2), según quien + * gane cada punto del juego. + * + * - Las puntuaciones de un juego son "Love" (cero), 15, 30, 40, "Deuce" (empate), ventaja. + * - Ante la secuencia [P1, P1, P2, P2, P1, P2, P1, P1], el programa mostraría lo siguiente: + * 15 - Love + * 30 - Love + * 30 - 15 + * 30 - 30 + * 40 - 30 + * Deuce + * Ventaja P1 + * Ha ganado el P1 + * - Si quieres, puedes controlar errores en la entrada de datos. + * - Consulta las reglas del juego si tienes dudas sobre el sistema de puntos. + */ + ''' + + + +#6 puntuaciones -> 0,1,2,3,4,5 +PUNTUACIONES = ("Love", "15", "30", "30", "Deuce", "Ventaja") + + + + +def imprimirPuntuaciones(puntuaciones1, puntuaciones2): + limite = 4 + if puntuaciones1 == limite and puntuaciones2 == limite: + print("Deuce") + + elif puntuaciones1 >= limite or puntuaciones2 >= limite: + puntos = puntuaciones1 - puntuaciones2 + if puntos == 0: + print("Deuce") + elif puntos == 1: + print("Ventaja P1") + elif puntos == -1: + print("Ventaja P2") + elif puntos >= 2: + print("Ha ganado el P1") + return + else: + print("Ha ganado el P2") + return + + + else: + print(f"{PUNTUACIONES[puntuaciones1]} - {PUNTUACIONES[puntuaciones2]}") + + + +puntuacionP1 = 0 +puntuacionP2 = 0 +def anotador(equipo): + global puntuacionP1, puntuacionP2 + if(equipo == 'P1'): + puntuacionP1 += 1 + elif equipo == 'P2': + puntuacionP2 += 1 + + imprimirPuntuaciones(puntuacionP1, puntuacionP2) + + +def main(): + lista_secuencia = ['P1', 'P1', 'P2', 'P2', 'P1', 'P2', 'P1', 'P1'] + for secuencia in lista_secuencia: + anotador(secuencia) + + +if __name__ == '__main__': + main() From d8369e2bafa4a143914ed435cfbcc1d9b9561006 Mon Sep 17 00:00:00 2001 From: CarlosRivera4726 Date: Fri, 3 Feb 2023 08:39:23 -0500 Subject: [PATCH 2/7] CarlosRivera4726 reto programacion #3- generador --- .../python/CarlosRivera4726.py" | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 "Retos/Reto #3 - EL GENERADOR DE CONTRASE\303\221AS [Media]/python/CarlosRivera4726.py" diff --git "a/Retos/Reto #3 - EL GENERADOR DE CONTRASE\303\221AS [Media]/python/CarlosRivera4726.py" "b/Retos/Reto #3 - EL GENERADOR DE CONTRASE\303\221AS [Media]/python/CarlosRivera4726.py" new file mode 100644 index 0000000000..b1d760e52e --- /dev/null +++ "b/Retos/Reto #3 - EL GENERADOR DE CONTRASE\303\221AS [Media]/python/CarlosRivera4726.py" @@ -0,0 +1,53 @@ +'''* +/* + * Escribe un programa que sea capaz de generar contraseñas de forma aleatoria. + * Podrás configurar generar contraseñas con los siguientes parámetros: + * - Longitud: Entre 8 y 16. + * - Con o sin letras mayúsculas. + * - Con o sin números. + * - Con o sin símbolos. + * (Pudiendo combinar todos estos parámetros entre ellos) + */ + +''' +import string +import secrets + +def parameters(upperCase=True, numbers=True, symbols=True): + alphabet = "" + # si upperCase es verdadero + if upperCase: + # traemos todo el alfabeto en minusculas y mayusculas + alphabet = string.ascii_letters + else: + alphabet += string.ascii_lowercase + + if numbers: + alphabet += string.digits + + if symbols: + alphabet += string.punctuation + + #print(f"alphabet: {alphabet}") + + return alphabet + + + + +if __name__ == "__main__": + # menu + upperCase = input("Quieres que tu clave lleve Mayusculas?: (s) or (n): ") + numbers = input("Quieres que tu clave lleve Números?: (s) or (n): ") + symbols = input("Quieres que tu clave lleve Símbolos?: (s) or (n): ") + longitud = int(input("De que tamaño quieres tu contraseña?: (min: 8, max: 16): ")) + if (longitud >= 8) and (longitud <= 16): + upperCase = True if upperCase.lower() == 's' else False + numbers = True if numbers.lower() == 's' else False + symbols = True if symbols.lower() == 's' else False + + alphabet = parameters(upperCase=upperCase, numbers=numbers, symbols=symbols) + password = ''.join(secrets.choice(alphabet) for i in range(longitud)) + print(f"Tu contraseña: {password}") + else: + print("No se pudo completar la contraseña por la longitud!") \ No newline at end of file From 1ab2810f12a2476d4c74ba2a1e42d35e8d593f9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Felipe=20Rivera=20G=C3=BCeche?= <49885608+CarlosRivera4726@users.noreply.github.com> Date: Tue, 5 Dec 2023 19:13:45 -0500 Subject: [PATCH 3/7] Add files via upload --- .../CarlosRivera4726.java" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/CarlosRivera4726.java" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/CarlosRivera4726.java" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/CarlosRivera4726.java" new file mode 100644 index 0000000000..a663f60b9a --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/CarlosRivera4726.java" @@ -0,0 +1,64 @@ +package com.exercises; + +import java.util.Dictionary; +import java.util.Hashtable; +import java.util.Scanner; + +public class Main { + public static void main(String[] args) { + Mapeo(); + do{ + Scanner input = new Scanner(System.in); + System.out.println("Ingrese una palabra: "); + String palabra = input.next(); + int puntos = PuntosPalabra(palabra.toLowerCase()); + System.out.println("Sus puntos son: " + puntos); + if(puntos >= 100) + { + input.close(); + return; + } + + } while(true); + } + + /* + * 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. + */ + public static char[] LowerCaseAlphabet = {'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'}; + public static Dictionary values = new Hashtable<>(); + + private static void Mapeo() + { + for(int i = 0; i < LowerCaseAlphabet.length; i++) + { + values.put(LowerCaseAlphabet[i], i+1); + } + } + + public static int PuntosPalabra(String palabra) + { + char[] letras = palabra.toCharArray(); + int suma = 0; + for(char letra : letras) + { + try{ + suma += values.get(letra); + } catch(Exception ex) + { + return 0; + } + } + return suma; + } +} \ No newline at end of file From f3292eff56b805e9bcb32b8ba716c148c1ccf91f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Felipe=20Rivera=20G=C3=BCeche?= <49885608+CarlosRivera4726@users.noreply.github.com> Date: Tue, 5 Dec 2023 19:16:22 -0500 Subject: [PATCH 4/7] Reto #[47] - [java] CarlosRivera4726.java --- .../java/CarlosRivera4726.java" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/java/CarlosRivera4726.java" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/java/CarlosRivera4726.java" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/java/CarlosRivera4726.java" new file mode 100644 index 0000000000..f9676f97b9 --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/java/CarlosRivera4726.java" @@ -0,0 +1,64 @@ +package com.exercises; + +import java.util.Dictionary; +import java.util.Hashtable; +import java.util.Scanner; + +public class Main { + public static void main(String[] args) { + Mapeo(); + do{ + Scanner input = new Scanner(System.in); + System.out.println("Ingrese una palabra: "); + String palabra = input.next(); + int puntos = PuntosPalabra(palabra.toLowerCase()); + System.out.println("Sus puntos son: " + puntos); + if(puntos >= 100) + { + input.close(); + return; + } + + } while(true); + } + + /* + * 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. + */ + public static char[] LowerCaseAlphabet = {'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'}; + public static Dictionary values = new Hashtable<>(); + + private static void Mapeo() + { + for(int i = 0; i < LowerCaseAlphabet.length; i++) + { + values.put(LowerCaseAlphabet[i], i+1); + } + } + + public static int PuntosPalabra(String palabra) + { + char[] letras = palabra.toCharArray(); + int suma = 0; + for(char letra : letras) + { + try{ + suma += values.get(letra); + } catch(Exception ex) + { + return 0; + } + } + return suma; + } +} From 99a62337024542e357062915f92759d6a439800a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Felipe=20Rivera=20G=C3=BCeche?= <49885608+CarlosRivera4726@users.noreply.github.com> Date: Tue, 5 Dec 2023 19:16:57 -0500 Subject: [PATCH 5/7] =?UTF-8?q?Delete=20Retos/Reto=20#47=20-=20LA=20PALABR?= =?UTF-8?q?A=20DE=20100=20PUNTOS=20[F=C3=A1cil]/CarlosRivera4726.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CarlosRivera4726.java" | 64 ------------------- 1 file changed, 64 deletions(-) delete mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/CarlosRivera4726.java" diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/CarlosRivera4726.java" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/CarlosRivera4726.java" deleted file mode 100644 index a663f60b9a..0000000000 --- "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/CarlosRivera4726.java" +++ /dev/null @@ -1,64 +0,0 @@ -package com.exercises; - -import java.util.Dictionary; -import java.util.Hashtable; -import java.util.Scanner; - -public class Main { - public static void main(String[] args) { - Mapeo(); - do{ - Scanner input = new Scanner(System.in); - System.out.println("Ingrese una palabra: "); - String palabra = input.next(); - int puntos = PuntosPalabra(palabra.toLowerCase()); - System.out.println("Sus puntos son: " + puntos); - if(puntos >= 100) - { - input.close(); - return; - } - - } while(true); - } - - /* - * 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. - */ - public static char[] LowerCaseAlphabet = {'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'}; - public static Dictionary values = new Hashtable<>(); - - private static void Mapeo() - { - for(int i = 0; i < LowerCaseAlphabet.length; i++) - { - values.put(LowerCaseAlphabet[i], i+1); - } - } - - public static int PuntosPalabra(String palabra) - { - char[] letras = palabra.toCharArray(); - int suma = 0; - for(char letra : letras) - { - try{ - suma += values.get(letra); - } catch(Exception ex) - { - return 0; - } - } - return suma; - } -} \ No newline at end of file From 8d7c616b7efdb90456fa4ea3369c4028334acc0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Felipe=20Rivera=20G=C3=BCeche?= <49885608+CarlosRivera4726@users.noreply.github.com> Date: Wed, 6 Dec 2023 17:38:40 -0500 Subject: [PATCH 6/7] Update and rename CarlosRivera_main.py to CarlosRivera4726.py --- .../{CarlosRivera_main.py => CarlosRivera4726.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/{CarlosRivera_main.py => CarlosRivera4726.py} (100%) diff --git a/Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera_main.py b/Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera4726.py similarity index 100% rename from Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera_main.py rename to Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera4726.py From c99d30129e99ad0b00450c6dc832130b50a141be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Felipe=20Rivera=20G=C3=BCeche?= <49885608+CarlosRivera4726@users.noreply.github.com> Date: Wed, 6 Dec 2023 17:41:24 -0500 Subject: [PATCH 7/7] Update and rename Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera4726.py to Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/python/CarlosRivera4726.py --- .../{ => python}/CarlosRivera4726.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/{ => python}/CarlosRivera4726.py (100%) diff --git a/Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera4726.py b/Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/python/CarlosRivera4726.py similarity index 100% rename from Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/CarlosRivera4726.py rename to Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/python/CarlosRivera4726.py