Exemplo n.º 1
0
 public void SendOutput()
 {
     foreach (NeuronConnection connection in neuronConnections)
     {
         connection.OutputNeuron.SubmitInput(HTan.getHTan(inputSum) * connection.Weight);
     }
     inputSum = 0f;
 }
Exemplo n.º 2
0
    public Decision Decide(Vector2 position, float heading, PlayField playField, float energy, float age, float foodBearing, float foodDistance, float foodEnergy, List <Peer> peers)
    {
//		StandardInputNeurons[0].SubmitInput(HTan.getHTan(position.x));
//		StandardInputNeurons[1].SubmitInput(HTan.getHTan(position.y));
//		StandardInputNeurons[2].SubmitInput(HTan.getHTan(heading));
//		StandardInputNeurons[3].SubmitInput(HTan.getHTan(playField.NorthBorder));
//		StandardInputNeurons[4].SubmitInput(HTan.getHTan(playField.SouthBorder));
//		StandardInputNeurons[5].SubmitInput(HTan.getHTan(playField.EastBorder));
//		StandardInputNeurons[6].SubmitInput(HTan.getHTan(playField.WestBorder));
//		StandardInputNeurons[7].SubmitInput(HTan.getHTan(energy));
//		StandardInputNeurons[8].SubmitInput(HTan.getHTan(age));
        StandardInputNeurons[0].SubmitInput(HTan.getHTan(foodBearing));
        StandardInputNeurons[1].SubmitInput(HTan.getHTan(foodDistance));
//		StandardInputNeurons[5].SubmitInput(HTan.getHTan(foodEnergy));

//		for(int i = 0; i < PeerInputNeurons.Count; i++)
//		{
//			PeerInputNeurons[1].HeadingInputNeuron.SubmitInput(HTan.getHTan(peers[i].Heading));
//			PeerInputNeurons[1].BearingInputNeuron.SubmitInput(HTan.getHTan(peers[i].Bearing));
//			PeerInputNeurons[1].DistanceInputNeuron.SubmitInput(HTan.getHTan(peers[i].Distance));
//			PeerInputNeurons[1].EnergyInputNeuron.SubmitInput(HTan.getHTan(peers[i].Energy));
//		}

        foreach (Neuron neuron in StandardInputNeurons)
        {
            neuron.SendOutput();
        }

//		foreach(PeerInputNeuronSet neuronSet in PeerInputNeurons)
//		{
//			neuronSet.HeadingInputNeuron.SendOutput();
//			neuronSet.BearingInputNeuron.SendOutput();
//			neuronSet.DistanceInputNeuron.SendOutput();
//			neuronSet.EnergyInputNeuron.SendOutput();
//		}

        return(new Decision(HTan.getHTan(TurnEffortOutputNeuron.ExtractOutput()), HTan.getHTan(MoveEffortOutputNeuron.ExtractOutput())));
    }