void Start (){ delta = new Vector3 (1, 1); pos = transform.position + delta; fs = GameObject.Find ("FoodSpawner").GetComponent <FoodSpawn> (); }
public void SpawnFood(FoodSpawn oldFoodSpawn) { int randomInt = Random.Range(0, emptyFoodSpawns.Count); emptyFoodSpawns[randomInt].SpawnFood(); emptyFoodSpawns.RemoveAt(randomInt); emptyFoodSpawns.Add(oldFoodSpawn); }
private void Awake() { if (instance == null) { instance = this; } else { Destroy(gameObject); } }
public void onFoodPress() //Leslyanne { FoodSpawn fs = GameObject.Find("FoodSpawner").GetComponent <FoodSpawn>(); if (!fs.feeding) { fs.feeding = true; } else { fs.feeding = false; } }
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 }
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; }
// Use this for initialization void Awake() { Reference = this; Spawn(); }
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(); }
// 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); }