コード例 #1
0
    // Update is called once per frame
    void Update()
    {
        bool isUpdateStop = (gameState == SIMUL_STATE.INIT) || isSimulPause == true;

        if (isUpdateStop)
        {
            return;
        }

        switch (gameState)
        {
        case SIMUL_STATE.SIMULATION:
            DoSimulation();
            break;

        case SIMUL_STATE.CHECK_FITNESS:
            geneticManager.StartFitnessCheck();
            break;

        case SIMUL_STATE.SELECTION_AND_CROSSOVER:
            geneticManager.StartSelectionAndCrossOver();
            MoveNextStep();
            break;

        case SIMUL_STATE.MUTATION:
            geneticManager.StartMutation();
            MoveNextStep();
            break;
        }

        if (isMoveNext)
        {
            MoveNextStep_Internal();

            if (gameState == SIMUL_STATE.SIMULATION)
            {
                StartNextGeneration();
            }
        }
    }