No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Reto: Nuevos niveles de dificultad

26/31
Recursos

Vamos a aumentar la dificultad de nuestro videojuego y tenemos muchas formas de hacerlo:

  • Podemos añadir un tiempo límite.
  • Multiplicar la cantidad de puntos entre más grande sea la cantidad de caramelos destruidos.
  • Podemos cambiar la forma aleatoria de generar elementos por una lista de caramelos con mayor o menor probabilidad.
  • Podemos añadir nuevos desafíos para los jugadores, por ejemplo, destruir un cierto tipo de caramelo de alta dificultad, es decir, con menor probabilidad de aparecer varias veces.

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hello!
Vine a actualizar el status de como llevo el juego. Me demoré en terminar el curso pensando como aplicar la parte de probabilidad y lo he logrado de una forma sencilla y dinámica.

Este es el resultado:

La probabilidad la maneje de la siguiente manera: Tengo dos Arrays Nuevos.
.

  • Un array público para las probabilidades de los candies, candyProbabilities. Aquí podemos configurar con que % queremos que salga el candy (1 = 10%, 2 = 20%, 3 = 20%, etc)
  • Otro array en este caso privado que se llama **tableProbabilities ** para manejar las probabilidades. Tiene un size de 10, que representa mi 100%. Los caramelos van a ser llenados en este array y dependiendo la probabilidad que le dimos pueden ocupar menos o más espacios en el nuevo arreglo.

En una funcion se debe recorrer el arreglo de CandyProbabilities y obtener el número de veces que saldrá el caramelo (moves). Luego realicé otro for para los (moves) y los agrego al array de tableProbabilities. También lleno unas variables que uso para saber cuál es el caramelo que tiene mas probabilidades de salir y tomo su id.
.

    private void SetCandiesProbabilities(){
        
        int moves = 0;
        int k=0;
        highProbability = 0;
        int bestCandy = -1;

            for (int i = 0; i < candiesProbabilities.Length; i++){
                moves = candiesProbabilities[i];
                if(highProbability < moves){
                    highProbability = moves;
                    bestCandy = i;
                }
                for (int j = 0; j < moves; j++){
                    if(k<probabilitiesTable.Length)
                        probabilitiesTable[k++] = i;
                }
            }
            candyGoalId = bestCandy;
          
    }

.
Por último al generar el board inicial y consultar el Id del candy, este debe tomarse aleatoriamente del nuevo arreglo tableProbabilites. Ejemplo: En este caso si colocaste un 3 para el sol, eso representa el 30% de probabilidades de que salga al general el board inicial. En este sentido el 30% para 60 celdas, es aproximadamente 18 candies.
.
Cabe resaltar que no es perfecto y por las propias reglas del juego a la hora de no repetirse caramelos a los lados en el inicio, los números pueden variar. Pero si hace su función.
.
Bueno esa es la respuesta al reto. Espero que a alguien le pueda servir de algo 💚

de paso lo empecé a incrementar en sumas además de lo demás

public void AumentoSuma()
{
candies = new int[] { 1 + 10, 2 + 20, 3 + 30, 4 + 40 };
Probabilidad = new int[id];

}

Hola alguien sabe como hacer que el score del game over Canvas quede con el mismo puntaje que el score

Genial