Skip to content

Commit

Permalink
added layer 2 fixed pre-connections
Browse files Browse the repository at this point in the history
  • Loading branch information
zaydlang committed Dec 7, 2018
1 parent 8b7b71d commit 3fd1e4b
Showing 1 changed file with 24 additions and 9 deletions.
33 changes: 24 additions & 9 deletions WarIO.lua
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,13 @@ function getRandomGenome(number)
nodes1[j][k] = {}
nodes1[j][k].weightA = math.random() - 0.5
nodes1[j][k].weightB = math.random() * 0.1
nodes1[j][k].out = math.floor(math.random(6))
nodes1[j][k].out = {}
nodes1[j][j].out[1] = true
nodes1[j][j].out[2] = true
nodes1[j][j].out[3] = true
nodes1[j][j].out[4] = true
nodes1[j][j].out[5] = true
nodes1[j][j].out[6] = true
nodes1[j][k].value = 0
end
end
Expand Down Expand Up @@ -129,8 +135,10 @@ function testSpecie(specie, blocks)
local nodes2 = specie.layer2
for i = 0, 16 do
for j = 0, 13 do
nodes2[nodes1[i][j].out].value = nodes2[nodes1[i][j].out].value + nodes1[i][j].value
nodes2[nodes1[i][j].out].numberToAverage = nodes2[nodes1[i][j].out].numberToAverage + 1
for k = 1, 6 do
if (nodes2[nodes1[i][j]].out[k]) then
nodes2[nodes1[i][j].out[k]].value = nodes2[nodes1[i][j].out[k]].value + nodes1[i][j].value
nodes2[nodes1[i][j].out[k]].numberToAverage = nodes2[nodes1[i][j].out[k]].numberToAverage + 1
end
end
for i = 0, 6 do
Expand Down Expand Up @@ -304,12 +312,14 @@ function breed(oldGenome)
newGenome[i].layer1[j][k].weightB = parentB.layer1[j][k].weightB
end

if (math.random() > 0.5) then
newGenome[i].layer1[j][k].out = parentA.layer1[j][k].out
else
newGenome[i].layer1[j][k].out = parentB.layer1[j][k].out
for j = 1, 6 do
if (math.random() > 0.5) then
newGenome[i].layer1[j][k].out[j] = parentA.layer1[j][k].out[j]
else
newGenome[i].layer1[j][k].out[j] = parentB.layer1[j][k].out[j]
end
end

newGenome[i].value = 0

if (math.random() < mutationRate) then
Expand Down Expand Up @@ -398,7 +408,12 @@ function saveGenome(genome, filename)
for k = 0, 13 do
file:write(genome[i].layer1[j][k].weightA .. "\n")
file:write(genome[i].layer1[j][k].weightB .. "\n")
file:write(genome[i].layer1[j][k].out .. "\n")
file:write(genome[i].layer1[j][k].out[1] .. "\n")
file:write(genome[i].layer1[j][k].out[2] .. "\n")
file:write(genome[i].layer1[j][k].out[3] .. "\n")
file:write(genome[i].layer1[j][k].out[4] .. "\n")
file:write(genome[i].layer1[j][k].out[5] .. "\n")
file:write(genome[i].layer1[j][k].out[6] .. "\n")
end
end
file:write("\n\n\n")
Expand Down

0 comments on commit 3fd1e4b

Please sign in to comment.