-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #5989 from CarlosRivera4726/main
"Reto #[47] - [java]"
- Loading branch information
Showing
3 changed files
with
191 additions
and
0 deletions.
There are no files selected for viewing
74 changes: 74 additions & 0 deletions
74
Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/python/CarlosRivera4726.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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() |
53 changes: 53 additions & 0 deletions
53
Retos/Reto #3 - EL GENERADOR DE CONTRASEÑAS [Media]/python/CarlosRivera4726.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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!") |
64 changes: 64 additions & 0 deletions
64
Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [Fácil]/java/CarlosRivera4726.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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<Character, Integer> 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; | ||
} | ||
} |