IPC
Universidad de San Carlos
Segundo semestre 2021
Semana 0 Scratch
Semana 1 C
Semana 2 Arrays
Semana 3 Algoritmos
Semana 4 Memoria
Semana 6 Python
Proyecto Final
Programa de estudios
Horas de oficina
Conjuntos de problemas
Preguntas Frecuentes
IDE
Manual
Scrath
Guías de estilo
Scrabble
Determina cuál de las dos palabras de Scrabble vale más.
$ ./scrabble
Player 1: COMPUTER
Player 2: science
Player 1 wins!
Fondo
En el juego de Scrabble, los jugadores crean palabras para ganar puntos, y el número de puntos es la suma de los valores de puntos de cada letra de la palabra.
Por ejemplo, si quisiéramos puntuar la palabra Codigo, observaríamos que en las reglas generales de Scrabble, la C vale 3 puntos, la o vale 1 punto, la d vale 2 puntos, la I vale 1 punto, la G vale 2 puntos y la o vale 1 punto. Sumando estos, obtenemos que el Código vale 3 + 1 + 2 + 1 +2 + 1 = 10 puntos.
Empezando
Detalles de implementación
Complete la implementación de scrabble.c, de modo que determine el ganador de un juego corto similar al scrabble, donde dos jugadores ingresan su palabra y el jugador con mayor puntuación gana.
- Observe que hemos almacenado los valores en puntos de cada letra del alfabeto en una matriz de números enteros denominada PUNTOS.
- Por ejemplo, A o a vale 1 punto (representado por PUNTOS [0]), B o b vale 3 puntos (representado por PUNTOS [1]), etc.
- Observe que hemos creado un prototipo para una función auxiliar llamada compute_score () que toma una cadena como entrada y devuelve un int. Siempre que queramos asignar valores en puntos a una palabra en particular, podemos llamar a esta función. Tenga en cuenta que este prototipo es necesario para que C sepa que compute_score () existe más adelante en el programa.
- En main (), el programa pide a los dos jugadores sus palabras usando la función get_string (). Estos valores se almacenan dentro de variables denominadas palabra1 y palabra2.
- En compute_score (), su programa debe calcular, usando la matriz POINTS, y devolver la puntuación para el argumento de cadena. Los caracteres que no son letras deben recibir cero puntos, y las letras mayúsculas y minúsculas deben recibir los mismos valores de puntos.
- Por ejemplo, ! vale 0 puntos, mientras que A y a valen 1 punto.
- Aunque las reglas de Scrabble normalmente requieren que una palabra esté en el diccionario, ¡no es necesario verificarlo en este problema!
- En main (), su programa debería imprimir, dependiendo de las puntuaciones de los jugadores, ¡el jugador 1 gana !, ¡el jugador 2 gana! O ¡Empate !.
Video
Consejos
- Puede que las funciones isupper () e islower () le resulten útiles. Estas funciones toman un carácter como argumento y devuelven un valor distinto de cero si el carácter está en mayúsculas (para isupper) o en minúsculas (para islower).
- Para encontrar el valor en el n-ésimo índice de una matriz llamada arr, podemos escribir arr [n]. También podemos aplicar esto a las cadenas, ya que las cadenas son matrices de caracteres.
- Recuerde que las computadoras representan caracteres usando ASCII, un estándar que representa cada carácter como un número.
¿Cómo probar su código?
Su programa debería comportarse según los ejemplos siguientes.
$ ./scrabble
Player 1: Question?
Player 2: Question!
Empate
$ ./scrabble
Player 1: Oh,
Player 2: hai!
Player 2 Gana!
$ ./scrabble
Player 1: COMPUTER
Player 2: science
Player 1 Gana!
$ ./scrabble
Player 1: Scrabble
Player 2: wiNNeR
Player 1 Gana!