Esempio n. 1
0
    // *3
    //Aplico la ruleta a mi lista de coeficientes.

    private void Start()
    {
        calculateCoef(); //Calculo los coeficientes.
        fillList();      //Relleno la lista de los coeficientes.
        int decition = RoulleteSelection.RoulleteWheelSelection(CoefValues);

        //Segun el resultado Ejecuto una acción:
        switch (decition)
        {
        case 1:
            print("Se ha seleccionado la primera acción");
            break;

        case 2:
            print("Se ha seleccionado la segunda acción");
            break;

        case 3:
            print("Se ha selecconado la tercera acción");
            break;

        default:
            break;
        }
    }
    //--------------------------------------------------------------------------------
    private void ExcludeAndDestroyConections()
    {
        foreach (var item in IncludedNodes)
        {
            int conectionsAviable = item.Connections.Count;
            //Si no tiene conecciones--> Elimino el nodo.
            if (item == StartingNode || item == FinalleNode)
            {
                continue;
            }

            switch (conectionsAviable)
            {
            case 0:    //Posibilidad--> Ninguna, destuyo el objeto.
                Nodes.Remove(item);
                DestroyImmediate(item.gameObject);
                break;

            case 1:
                //Si tiene 1 sola coneccion.
                //Posibilidades--> Elimino todas las conecciones. No hago nada.
                List <float> A = new List <float>()
                {
                    38, 62
                };
                if (RoulleteSelection.RoulleteWheelSelection(A) == 1)
                {
                    Nodes.Remove(item);
                    DestroyImmediate(item.gameObject);
                }
                break;

            case 2:
                //Si tiene 2 conecciones.
                //Posibilidades--> Elimino 1 coneccion. Elimino todas las conecciones. No hago nada.
                List <float> B = new List <float>()
                {
                    53, 12, 35
                };
                int AccionT1 = RoulleteSelection.RoulleteWheelSelection(B);
                if (AccionT1 == 1)
                {
                    int randomNumber = UnityEngine.Random.Range(0, conectionsAviable);
                    item.Connections.RemoveAt(randomNumber);
                }
                else
                if (AccionT1 == 2)
                {
                    Nodes.Remove(item);
                    DestroyImmediate(item.gameObject);
                }
                break;

            case 3:
                //Si tiene 3 conecciones.
                //Posibilidades--> Elimino 1 o 2 conecciones.Elimino todas las conecciones. No hago nada.
                List <float> C = new List <float>()
                {
                    18.33f, 18.33f, 18.33f, 5, 35
                };
                int AccionT2 = RoulleteSelection.RoulleteWheelSelection(C);
                if (AccionT2 == 1)
                {
                    int randomNumber = UnityEngine.Random.Range(0, conectionsAviable);
                    item.Connections.RemoveAt(randomNumber);
                }
                else
                if (AccionT2 == 2)
                {
                    int randomNumber = UnityEngine.Random.Range(0, conectionsAviable);
                    item.Connections.RemoveAt(randomNumber);
                    int randomNumber2 = UnityEngine.Random.Range(0, item.Connections.Count);
                    item.Connections.RemoveAt(randomNumber2);
                }
                else
                if (AccionT2 == 3)
                {
                    Nodes.Remove(item);
                    DestroyImmediate(item.gameObject);
                }
                break;

            case 4:
                //Si tiene 4 conecciones.
                //Posibilidades--> Elmino 1 o 2 o 3 conecciones. Elimino todas las conecciones. No hago nada.
                List <float> D = new List <float>()
                {
                    13.75f, 13.75f, 13.75f, 5, 35
                };
                int AccionT3 = RoulleteSelection.RoulleteWheelSelection(D);
                if (AccionT3 == 1)
                {
                    int randomNumber = UnityEngine.Random.Range(0, conectionsAviable);
                    item.Connections.RemoveAt(randomNumber);
                }
                else
                if (AccionT3 == 2)
                {
                    int randomNumber = UnityEngine.Random.Range(0, conectionsAviable);
                    item.Connections.RemoveAt(randomNumber);
                    int randomNumber2 = UnityEngine.Random.Range(0, item.Connections.Count);
                    item.Connections.RemoveAt(randomNumber2);
                }
                else
                if (AccionT3 == 3)
                {
                    int randomNumber = UnityEngine.Random.Range(0, conectionsAviable);
                    item.Connections.RemoveAt(randomNumber);
                    int randomNumber2 = UnityEngine.Random.Range(0, item.Connections.Count);
                    item.Connections.RemoveAt(randomNumber2);
                    int randomNumber3 = UnityEngine.Random.Range(0, item.Connections.Count);
                    item.Connections.RemoveAt(randomNumber3);
                }
                else
                if (AccionT3 == 4)
                {
                    Nodes.Remove(item);
                    DestroyImmediate(item.gameObject);
                }
                break;

            default:
                break;
            }
        }
    }