Por mal camino vas, si no sabes ni por donde empezar...
Deja por un momento de pensar en que tienes que programar... esencialmente lo primero es pensar, discurrir, buscar una solución incluso mecánica, luego es cuetión de traducirlo a código...
Imagina eso, 3 monedas... las lanzas al aire (al gusto, las 3 ala vez o una tras otra), luego cuentas el resultado y replicas: han salido 3 caras, dos caras, 1 cara, ninguna cara... luego cuando eso sucede, en vez de decir eso, lo cambias por el adejtivo que te reclaman...
Esto mismo se plasma aquí:
constante c_MONEDAS = 3, c_FACETAS = 2, c_SOLUCION = 1
funcion Lanzamiento3Monedas
entero caras
string respuesta
Hacer
caras = LanzarMonedas(c_MONEDAS, c_FACETAS, c_SOLUCION)
Seleccionar casos para caras
caso 3; respuesta = "excelente"
caso 2; respuesta = "muy bien"
caso 1; respuesta = "regular"
caso 0; respuesta = "pésima"
fin seleccion
MostrarMensaje ("Tu tirada ha sido " + respuesta)
respuesta = PreguntarAlJugador("Desea jugar otra vez? (S/N).")
Repetir mientras Respuesta = "s" o respuesta ="S"
fin funcion
Se lanzan 3 monedas. Cada moneda tiene 2 facetas. la que se da por buena es la 1 (cara, la 2 sería cruz) // ó 0 y 1...
Interesa usar el parámetro facetas, porque si nos piden tirar un dado de 6 caras, o de 12, ó de 3, 5, etc... no requiere modificar la función, solo cambiar los valores asignados a las constantes.
entero = funcion LanzarMonedas(entero cantidad, entero facetas, entero facetaEsperada)
entero k, cuenta, valor
bucle para k desde 1 hasta cantidad
valor = random(entre 1 y facetas) // ó entre 0 y facetas-1
si (valor = facetaesperada) luego
cuenta +=1
fin si
fin bucle
devolver cuenta
fin funcion
Hale, a tu esfuerzo queda entenderlo y pasarlo desde pseudocódigo a código...