{ POOR, true, false, 1, HIDE }
};
-char * behaviors[4] = { "Run", "Hide", "Wander", "Attack" };
+const char * behaviors[4] = { "Run", "Hide", "Wander", "Attack" };
#define NUM_EXAMPLES (sizeof(examples) / sizeof(Example))
int i,h,o;
int c;
- RandomSeed((int)(GetTime() * 1000));
+ RandomSeed((uint)(((uint64)(GetTime() * 1000)) & MAXDWORD));
// Input to hidden cells synapses
for(i = 0; i<NUM_HIDDEN; i++)
hiddenNeurons[i].Init();
for(h = 0; h<NUM_HIDDEN; h++)
{
Neuron * hidden = &hiddenNeurons[h];
- Synapse * synapse = &input->axons._[h];
+ Synapse * synapse = &input->axons[h];
if(!hidden->dendrons.size)
hidden->dendrons.size = NUM_INPUT;
- hidden->dendrons._[i] = synapse;
+ hidden->dendrons[i].ptr = synapse;
synapse->dendron = input;
synapse->axon = hidden;
for(o = 0; o<NUM_OUTPUT; o++)
{
Neuron * output = &outputNeurons[o];
- Synapse * synapse = &hidden->axons._[o];
+ Synapse * synapse = &hidden->axons[o];
if(!output->dendrons.size)
output->dendrons.size = NUM_HIDDEN;
- output->dendrons._[h] = synapse;
+ output->dendrons[h].ptr = synapse;
synapse->dendron = hidden;
synapse->axon = output;
outputNeurons[c].Unactivate();
inputNeurons[0].activation = (double)example->health;
- inputNeurons[1].activation = example->hasKnife;
- inputNeurons[2].activation = example->hasGun;
+ inputNeurons[1].activation = (double)example->hasKnife;
+ inputNeurons[2].activation = (double)example->hasGun;
inputNeurons[3].activation = example->ennemies;
for(c = 0; c<NUM_OUTPUT; c++)
outputNeurons[c].Activate();
for(c = 0; c<NUM_OUTPUT; c++)
- outputNeurons[c].error = ((double)example->result == c) - outputNeurons[c].activation;
+ outputNeurons[c].error = (double)((int)example->result == c) - outputNeurons[c].activation;
for(c = 0; c<NUM_INPUT; c++)
inputNeurons[c].BackPropagate();
outputNeurons[o].Unactivate();
inputNeurons[0].activation = (double)example->health;
- inputNeurons[1].activation = example->hasKnife;
- inputNeurons[2].activation = example->hasGun;
+ inputNeurons[1].activation = (double)example->hasKnife;
+ inputNeurons[2].activation = (double)example->hasGun;
inputNeurons[3].activation = example->ennemies;
for(o = 0; o<NUM_OUTPUT; o++)
outputNeurons[o].Unactivate();
inputNeurons[0].activation = (double)example->health;
- inputNeurons[1].activation = example->hasKnife;
- inputNeurons[2].activation = example->hasGun;
+ inputNeurons[1].activation = (double)example->hasKnife;
+ inputNeurons[2].activation = (double)example->hasGun;
inputNeurons[3].activation = example->ennemies;
for(o = 0; o<NUM_OUTPUT; o++)