コード例 #1
0
ファイル: LameVictimLife.cs プロジェクト: TixerInc/Evol
	void Start (){
		delta = new Vector3 (1, 1);
		pos = transform.position + delta;
		fs = GameObject.Find ("FoodSpawner").GetComponent <FoodSpawn> ();
		
	
	}
コード例 #2
0
    public void SpawnFood(FoodSpawn oldFoodSpawn)
    {
        int randomInt = Random.Range(0, emptyFoodSpawns.Count);

        emptyFoodSpawns[randomInt].SpawnFood();

        emptyFoodSpawns.RemoveAt(randomInt);
        emptyFoodSpawns.Add(oldFoodSpawn);
    }
コード例 #3
0
ファイル: FoodSpawn.cs プロジェクト: zmanRoman/Snake-Test
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }
コード例 #4
0
ファイル: Buttons.cs プロジェクト: rhodgeson/Fish-in-the-C
    public void onFoodPress() //Leslyanne
    {
        FoodSpawn fs = GameObject.Find("FoodSpawner").GetComponent <FoodSpawn>();

        if (!fs.feeding)
        {
            fs.feeding = true;
        }
        else
        {
            fs.feeding = false;
        }
    }
コード例 #5
0
    void Start()
    {
        _instance = this;
        InvokeRepeating("Spawn", 0.0f, spawnTime);

        /*
         *  蛇身长度为1,背景长度宽度都应该是奇数
         *  1. 上部分 + 中间1格 + 下部分 = 宽度
         *  2. 左部分 + 中间1格 + 右部分 = 长度
         *  在上下左右对称的情况下,1和2结果都是奇数
         */
        maxX = bgX / 2;  // 33 / 2 = 16
        maxY = bgY / 2;  // 19 / 2 = 9
    }
コード例 #6
0
ファイル: Buttons.cs プロジェクト: rhodgeson/Fish-in-the-C
 void Start()
 {
     plant       = GameObject.Find("Plant").GetComponent <Button>();
     shortD      = GameObject.Find("ShortDecor").GetComponent <Button>();
     tallD       = GameObject.Find("TallDecor").GetComponent <Button>();
     sand        = GameObject.Find("Sand").GetComponent <Button>();
     coll        = GameObject.Find("GameController").GetComponent <Collections>();
     fs          = GameObject.Find("FoodSpawner").GetComponent <FoodSpawn>();
     fishNote    = GameObject.Find("FishUpdateNote");
     fishNoteBtn = fishNote.GetComponentInChildren <Button>();
     //dayLightsParent = GameObject.Find("Daylight");
     // dayLights = dayLightsParent.transform.Find("Lights").gameObject;
     // nightLightsParent = GameObject.Find("Nightlight");
     // nightLights = nightLightsParent.transform.Find("Lights").gameObject;
     plant.enabled  = false;
     shortD.enabled = false;
     tallD.enabled  = false;
     sand.enabled   = false;
 }
コード例 #7
0
 // Use this for initialization
 void Awake()
 {
     Reference = this;
     Spawn();
 }
コード例 #8
0
    static public void SetSimulation(Parameters parameters, float RUNNING_SPEED)
    {
        foreach (var org in GameObject.FindObjectsOfType <Organism>())
        {
            GameObject.DestroyImmediate(org.gameObject);
        }
        foreach (var food in GameObject.FindObjectsOfType <Food>())
        {
            GameObject.DestroyImmediate(food.gameObject);
        }
        foreach (var barrier in GameObject.FindObjectsOfType <Barrier>())
        {
            GameObject.DestroyImmediate(barrier.gameObject);
        }
        GameObject.FindObjectOfType <DisplayStatistics>().reset();


        var spawner = GameObject.FindObjectOfType <OrganismSpawn>();

        spawner._mutationRate                           = parameters.MUTATION_PROBABILITY;
        spawner._neuralMutationRate                     = parameters.NEURAL_MUTATION_PROBABILITY;
        Hyperparameters.ELIMINATION_PROBABILITY         = parameters.ELIMINATION_PROBABILITY;
        Hyperparameters.INSERTION_PROBABILITY           = parameters.INSERTION_PROBABILITY;
        Hyperparameters.MODIFICATION_PROBABILITY        = parameters.MODIFICATION_PROBABILITY;
        Hyperparameters.TRANSPOSITION_PROBABILITY       = parameters.TRANSPOSITION_PROBABILITY;
        Hyperparameters.INSERTION_COPY_PROBABILITY      = parameters.INSERTION_COPY_PROBABILITY;
        Hyperparameters.INSERTION_NEWNUMBER_PROBABILITY = parameters.INSERTION_NEWNUMBER_PROBABILITY;

        Hyperparameters.SPECIES_DIFFERENCE_THRESHOLD = parameters.SPECIES_DIFFERENCE_THRESHOLD;
        Hyperparameters.ALLOW_MITOSIS            = parameters.ALLOW_MITOSIS;
        Hyperparameters.SUBSTITUTION_PROBABILITY = parameters.SUBSTITUTION_PROBABILITY;
        Hyperparameters.FLAGELLO_FORCE           = parameters.FLAGELLO_FORCE;

        OrganismSpawn.organismSpawner = spawner;

        var foodSpawn = GameObject.FindObjectOfType <FoodSpawn>();

        foodSpawn.foodRate = (float)parameters.FOOD_RATE;
        foodSpawn.MAX_FOOD = parameters.MAX_FOOD;
        foodSpawn.movableFood.GetComponent <Food>().energyValue = parameters.FOOD_ENERGY_VALUE;

        foodSpawn.startingPoint = new Vector2(0, 0);
        foodSpawn.size          = new Vector2(parameters.MAP_SIZE / 2, parameters.MAP_SIZE / 2);

        FoodSpawn foodSpawn2 = GameObject.Instantiate(foodSpawn);

        foodSpawn2.startingPoint = new Vector2(parameters.MAP_SIZE / 2, 0);
        foodSpawn2.size          = new Vector2(parameters.MAP_SIZE / 2, parameters.MAP_SIZE / 2);
        foodSpawn2.foodRate      = (float)parameters.FOOD_RATE / 22f;

        FoodSpawn foodSpawn3 = GameObject.Instantiate(foodSpawn);

        foodSpawn3.startingPoint = new Vector2(0, parameters.MAP_SIZE / 2);
        foodSpawn3.size          = new Vector2(parameters.MAP_SIZE / 2, parameters.MAP_SIZE / 2);
        foodSpawn3.foodRate      = (float)parameters.FOOD_RATE / 2.8f;

        FoodSpawn foodSpawn4 = GameObject.Instantiate(foodSpawn);


        foodSpawn4.startingPoint = new Vector2(parameters.MAP_SIZE / 2, parameters.MAP_SIZE / 2);
        foodSpawn4.size          = new Vector2(parameters.MAP_SIZE / 2, parameters.MAP_SIZE / 2);
        foodSpawn4.foodRate      = (float)parameters.FOOD_RATE / 8f;

        Hyperparameters.BARRIERS_NUMBER = parameters.BARRIERS_NUMBER;


        var map = GameObject.FindObjectOfType <Map>();

        Hyperparameters.MAP_SIZE = parameters.MAP_SIZE;
        map.height = parameters.MAP_SIZE;
        map.width  = map.height;

        Map newmap = GameObject.Instantiate(map);

        newmap.timescale = RUNNING_SPEED;

        GameObject.DestroyImmediate(map.gameObject);

        newmap.name = "Map";

        foodSpawn.UpdateFoodCount();
    }
コード例 #9
0
    // Use this for initialization
    void Start()
    {
        Food = GameObject.FindGameObjectWithTag("Food");
        fs   = FoodSpawnScriptObject.GetComponent <FoodSpawn>();

        List <float> weightVector = new List <float>(5);

        weightVector.Insert((int)Features.FoodX, 0.4f);
        weightVector.Insert((int)Features.FoodY, 0.4f);
        weightVector.Insert((int)Features.FoodDirX, 0.7f);
        weightVector.Insert((int)Features.FoodDirY, 0.7f);
        weightVector.Insert((int)Features.DistToFood, 0.8f);

        snakeyIn1.SetInputWeights(weightVector[0]);
        snakeyIn2.SetInputWeights(weightVector[1]);
        snakeyIn3.SetInputWeights(weightVector[2]);
        snakeyIn4.SetInputWeights(weightVector[3]);
        snakeyIn5.SetInputWeights(weightVector[4]);

        InputLayerArray.Add(snakeyIn1);
        InputLayerArray.Add(snakeyIn2);
        InputLayerArray.Add(snakeyIn3);
        InputLayerArray.Add(snakeyIn4);
        InputLayerArray.Add(snakeyIn5);

        List <float> HiddenWeightVector = new List <float>(5);

        HiddenWeightVector.Insert(0, 0.5f);
        HiddenWeightVector.Insert(1, 0.4f);
        HiddenWeightVector.Insert(2, 0.3f);
        HiddenWeightVector.Insert(3, 0.6f);
        HiddenWeightVector.Insert(4, 0.4f);

        Hidden1.SetWeights(HiddenWeightVector);
        Hidden2.SetWeights(HiddenWeightVector);
        Hidden3.SetWeights(HiddenWeightVector);
        Hidden4.SetWeights(HiddenWeightVector);
        Hidden5.SetWeights(HiddenWeightVector);
        Hidden6.SetWeights(HiddenWeightVector);
        Hidden7.SetWeights(HiddenWeightVector);
        Hidden8.SetWeights(HiddenWeightVector);

        HiddenLayerArray.Add(Hidden1);
        HiddenLayerArray.Add(Hidden2);
        HiddenLayerArray.Add(Hidden3);
        HiddenLayerArray.Add(Hidden4);
        HiddenLayerArray.Add(Hidden5);
        HiddenLayerArray.Add(Hidden6);
        HiddenLayerArray.Add(Hidden7);
        HiddenLayerArray.Add(Hidden8);

        List <float> OutputWeightVector = new List <float>(8);

        OutputWeightVector.Insert(0, 0.3f);
        OutputWeightVector.Insert(1, 0.2f);
        OutputWeightVector.Insert(2, 0.1f);
        OutputWeightVector.Insert(3, 0.6f);
        OutputWeightVector.Insert(4, 0.3f);
        OutputWeightVector.Insert(5, 0.25f);
        OutputWeightVector.Insert(6, 0.6f);
        OutputWeightVector.Insert(7, 0.8f);

        Output1.SetWeights(OutputWeightVector);
        Output2.SetWeights(OutputWeightVector);
        Output3.SetWeights(OutputWeightVector);
        Output4.SetWeights(OutputWeightVector);

        OutputLayerArray.Add(Output1);
        OutputLayerArray.Add(Output2);
        OutputLayerArray.Add(Output3);
        OutputLayerArray.Add(Output4);

        //Perceptron temp = new Perceptron((int)Features.COUNT);

        //temp.SetWeights(weightVector);

        //InputLayerArray[0] = temp;

        // for (int i = 0; i < InputLayerArray.Length; i++)
        // {
        //     InputLayerArray[i].RandomizeValues();
        // }

        for (int i = 0; i < HiddenLayerArray.Count; i++)
        {
            HiddenLayerArray[i].RandomizeValues();
        }

        for (int i = 0; i < OutputLayerArray.Count; i++)
        {
            OutputLayerArray[i].RandomizeValues();
        }

        SnakeNN = new NeuralNet(InputLayerArray, HiddenLayerArray, OutputLayerArray);

        //SnakeNN = SnakeNNTemp;

        SnakeNN.Randomize();

        //temp.RandomizeValues();

        //snakeyUp = snakeyUp.Crossover(snakeyUp, temp);
        //snakeyLeft = snakeyLeft.Crossover(snakeyLeft, temp);
        //snakeyRight = snakeyRight.Crossover(snakeyRight, temp);
        //snakeyDown = snakeyDown.Crossover(snakeyDown, temp);

        InvokeRepeating("Move", .1f, .1f);
    }