Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Reto #[47] - [java]" #5989

Merged
merged 10 commits into from
Dec 8, 2023
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()
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!")
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;
}
}