From 18340e82ae0670eb27c1c7eb26bec123b4916e69 Mon Sep 17 00:00:00 2001 From: Vylion Date: Mon, 2 Jul 2018 03:17:48 +0200 Subject: [PATCH] Fixes in neighbor height calculation in training and kobold integration, and other fixes in population and training --- helper_mobs.lua | 3 +- kobold/kobold.lua | 55 ++++++++++---- kobold/kobold_integration.lua | 121 +++++++++++++++++++++---------- population.lua | 45 ++++++++---- training/trained_kobolds.txt | 112 ---------------------------- training/trained_kobolds_old.txt | 70 ++++++++++++++++++ training/trainer.lua | 22 ++++-- training/trainer_kobold.lua | 26 ++++--- 8 files changed, 254 insertions(+), 200 deletions(-) create mode 100644 training/trained_kobolds_old.txt diff --git a/helper_mobs.lua b/helper_mobs.lua index c3b25e8..8d9a84c 100644 --- a/helper_mobs.lua +++ b/helper_mobs.lua @@ -2,7 +2,7 @@ local helper = adaptive_ai.helper local chat_log = function(s) - minetest.chat_send_player("singleplayer", s) + --minetest.chat_send_player("singleplayer", s) end adaptive_ai.chat_log = chat_log @@ -950,5 +950,6 @@ helper.mobs.runaway_from = runaway_from helper.mobs.do_jump = do_jump helper.mobs.set_yaw = set_yaw helper.mobs.do_state_stand = do_state_stand +helper.mobs.update_tag = update_tag adaptive_ai.helper = helper diff --git a/kobold/kobold.lua b/kobold/kobold.lua index 0724e46..794f53b 100644 --- a/kobold/kobold.lua +++ b/kobold/kobold.lua @@ -13,6 +13,7 @@ local chat_log = adaptive_ai.chat_log local random = math.random local abs = math.abs local floor = math.floor +local ceil = math.ceil local min = math.min local max = math.max local round = adaptive_ai.calc.round @@ -47,6 +48,10 @@ local stats = { fear_height = 2 } +local directions = { + "northeast", "northwest", "southeast", "southwest", "north", "south", "east", "west" +} + local function get_genes(kobold) genes = {} for i = 1, stats.total_genes do @@ -62,22 +67,36 @@ local score = function(self) return floor(total + 0.5) end +local function eat(self, food) + local ate = false + if self.hp < stats.hp_max then + self.hp = self.hp + ceil(food/2) + if self.hp > stats.hp_max then self.hp = stats.hp_max end + ate = ate or true + end + if self.hunger < stats.hunger_max then + self.hunger = self.hunger + food + if self.hunger > stats.hunger_max then self.hunger = stats.hunger_max end + ate = ate or true + end + + return ate +end + local function decide(self, neighbor_list) if random() < self.focus then return nil end local pos = self.pos local hunger_level -- Hunger level - if self.hunger > stats.hunger_max * 0.6 then - hunger_level = 0 -- Good - --chat_log("Hunger: good") - elseif self.hunger > stats.hunger_max * 0.1 then - hunger_level = 1 -- Bad - --chat_log("Hunger: bad") - else + if self.hunger < stats.hunger_max * 0.1 + or self.hp < stats.hp_max * 0.8 then hunger_level = 2 -- Critical - --chat_log("Hunger: critical") + elseif self.hunger < stats.hunger_max * 0.6 then + hunger_level = 1 -- Bad + else + hunger_level = 0 -- Good end - --chat_log("Hunger "..hunger_level) + chat_log("Hunger "..hunger_level) hunger_level = hunger_level * 648 -- stats.total_genes/4 local dir_level @@ -91,7 +110,7 @@ local function decide(self, neighbor_list) else dir_level = 4 -- North end - elseif pos.z < closest_food.z then + elseif pos.z > closest_food.z then if pos.x < closest_food.x then dir_level = 2 -- South-East elseif pos.x > closest_food.x then @@ -106,9 +125,10 @@ local function decide(self, neighbor_list) else dir_level = 4 end + chat_log("Close food at "..directions[dir_level+1]) else dir_level = 5 - --chat_log("No close food") + chat_log("No close food") end --chat_log("Dir "..dir_level) dir_level = dir_level * 81 @@ -121,7 +141,7 @@ local function decide(self, neighbor_list) node_height = round(node_height/3) if node_height > self.climb then current_neighbor = 2 -- Climb - elseif node_height < self.fear_height then + elseif node_height <= -self.fear_height then current_neighbor = 1 -- Drop else current_neighbor = 0 @@ -136,7 +156,7 @@ local function decide(self, neighbor_list) node_height = round(node_height/3) if node_height > self.climb then current_neighbor = 2 -- Climb - elseif node_height < self.fear_height then + elseif node_height < -self.fear_height then current_neighbor = 1 -- Drop else current_neighbor = 0 @@ -151,7 +171,7 @@ local function decide(self, neighbor_list) node_height = round(node_height/3) if node_height > self.climb then current_neighbor = 2 -- Climb - elseif node_height < self.fear_height then + elseif node_height < -self.fear_height then current_neighbor = 1 -- Drop else current_neighbor = 0 @@ -166,7 +186,7 @@ local function decide(self, neighbor_list) node_height = round(node_height/3) if node_height > self.climb then current_neighbor = 2 -- Climb - elseif node_height < self.fear_height then + elseif node_height < -self.fear_height then current_neighbor = 1 -- Drop else current_neighbor = 0 @@ -175,6 +195,7 @@ local function decide(self, neighbor_list) --chat_log("Height: "..node_height.."\tCurrent: "..current_neighbor.."\tNeighbors "..neighbors_total) local gene = hunger_level + dir_level + neighbors_total + 1 + --chat_log("Gene: "..gene) chat_log("Gene: "..gene.."\tHunger id: "..hunger_level.."\tDirection id: "..dir_level.."\tNeighbors id: "..neighbors_total) return self.genes[gene], gene @@ -253,7 +274,7 @@ local function get_name(kobold, mother) local name = correct_name(new_name(0)) kobold.firstname = uppercase(name) - kobold.name = kobold.firstname.." "..kobold.midname.." "..kobold.family + kobold.name = kobold.firstname..(kobold.midname:len() > 0 and " "..kobold.midname or "").." "..kobold.family end local function create(self, mother, father) @@ -334,6 +355,7 @@ local function setup(self, mother, father) create(self, mother, father) self.decide = decide self.score = score + self.eat = eat self.to_lines = to_lines end @@ -365,5 +387,6 @@ kobolds.from_lines = from_lines kobolds.decide = decide kobolds.score = score kobolds.to_lines = kobolds.to_lines +kobolds.eat = eat adaptive_ai.kobolds = kobolds diff --git a/kobold/kobold_integration.lua b/kobold/kobold_integration.lua index 0467e2c..86b37df 100644 --- a/kobold/kobold_integration.lua +++ b/kobold/kobold_integration.lua @@ -23,11 +23,15 @@ local kobold_from_lines = kobolds.from_lines local kobold_score = kobolds.score local kobold_decide = kobolds.decide local kobold_create = kobolds.create +local kobold_eat = kobolds.eat local get_from_census = population.get_from_census local create_tribe = population.create_tribe local add_to_tribe = population.add_to_tribe local empty_population = population.empty +local get_couple = population.get_couple +local get_tribe = population.get_tribe +local popul_size = population.get_popul_size local do_jump = helper.mobs.do_jump local set_velocity = helper.mobs.set_velocity @@ -35,6 +39,7 @@ local is_at_cliff = helper.mobs.is_at_cliff local set_yaw = helper.mobs.set_yaw local flight_check = helper.mobs.flight_check local set_animation = helper.mobs.set_animation +local update_tag = helper.mobs.update_tag local adjacent = helper.adjacent local file_tag = kobolds.file_tag @@ -139,6 +144,7 @@ local function move_creature(self, yaw_id) self.object:set_yaw(yaws[yaw_id]) set_velocity(self, self.walk_velocity) self.state = "move" + return true end return false end @@ -193,6 +199,7 @@ local function get_founders(n) local tribe_founders = {} shuffle(founders) for i=1,n do + --chat_log("Shuffling founder "..founders[i].name) table.insert(tribe_founders, founders[i]) end @@ -209,13 +216,12 @@ local function load_kobold(self) self.kobold = old_self if not old_self.genes then error("No genes") end chat_log(old_self.name.." loaded "..#old_self.genes.." genes") - self.timer = self.walk_velocity - return true + self.timer = 0 else - --self.kobold = nil - --chat_log("Nil kobold") - return false + self.kobold = nil + chat_log("Nil kobold") end + return false end local function set_kobold(self, kobold) @@ -234,32 +240,48 @@ local function setup_kobold(self, mother, father) return false end +local function place_kobold(p) + local ent = adaptive_ai:place_ai({ + name = "adaptive_ai:kobold", + pos = p, + }) + + return ent +end + local function breed_kobold(self) local mother = self.kobold if not mother.tribe_id then - --error("Breeding with no tribe.") + error("Breeding with no tribe.") return end local tribe_id = mother.tribe_id - local tribe = population.tribes[tribe_id] + local tribe = population.get_tribe(tribe_id) + --chat_log(tribe and "Got tribe" or "Didn't get tribe") if tribe then - local popul_size = tribe:popul_size() + local popul_size = popul_size(tribe_id) - if popul_size < tribe.size * 2 then + if popul_size and popul_size < tribe.size * 2 then local p = mother.pos p = {x=(p.x), y=(p.y), z=(p.z)} p.x = p.x + (random(0,1) - 0.5)*2 p.z = p.z + (random(0,1) - 0.5)*2 - local father = get_couple(tribe_id, self.kobold) + local father = get_couple(self.kobold) local child = place_kobold(p) setup_kobold(child, mother, father) + update_tag(child) + + chat_log("Parents are "..mother.name..", "..father.name) + chat_log("Child is "..child.name) child = child.kobold child.tribe_id = tribe_id population.add_to_tribe(tribe_id, child) return true + else + chat_log("Popul size: "..(popul_size or "none").."\tTribe max: "..tribe.size * 2) end end return false @@ -270,6 +292,7 @@ kobolds.breed_kobold = breed_kobold local kobold_decisions = { function(self, dtime) -- idle set_velocity(self, 0) + self.state = "stand" end, function(self, dtime) -- wander local n = random(1,#yaws) @@ -284,8 +307,7 @@ local kobold_decisions = { local kobold = self.kobold if kobold.food and #kobold.food > 0 then local satiate = pop(kobold.food) - kobold.hunger = kobold.hunger + satiate - kobold.hp = self.object:get_hp() + 1 + kobold_eat(kobold, satiate) self.object:set_hp(kobold.hp) end end, @@ -298,38 +320,51 @@ local kobold_decisions = { end, function(self, dtime) -- move North local move = move_creature(self, 1) - self.state = move and "move" or self.state + --self.state = move and "move" or self.state end, function(self, dtime) -- move South local move = move_creature(self, 2) - self.state = move and "move" or self.state + --self.state = move and "move" or self.state end, function(self, dtime) -- move East local move = move_creature(self, 3) - self.state = move and "move" or self.state + --self.state = move and "move" or self.state end, function(self, dtime) -- move West local move = move_creature(self, 4) - self.state = move and "move" or self.state + --self.state = move and "move" or self.state end, function(self, dtime) -- move NE local move = move_creature(self, 5) - self.state = move and "move" or self.state + --self.state = move and "move" or self.state end, function(self, dtime) -- move SE local move = move_creature(self, 6) - self.state = move and "move" or self.state + --self.state = move and "move" or self.state end, function(self, dtime) -- move NW local move = move_creature(self, 7) - self.state = move and "move" or self.state + --self.state = move and "move" or self.state end, function(self, dtime) -- move SW local move = move_creature(self, 8) - self.state = move and "move" or self.state + --self.state = move and "move" or self.state end, } +local function missing_food(pos) + if not pos then return true end + + local still_there = false + for _,node in ipairs(food_nodes) do + --chat_log(minetest.get_node(pos) == node.name and "Food is still there" or "Food is no longer there") + still_there = still_there or minetest.get_node(pos) == node.name + end + --chat_log(not still_there and "Missing food" or "Not missing") + return not still_there +end + + local manage_kobold = function(self, dtime) local kobold = self.kobold if kobold then @@ -358,6 +393,10 @@ local manage_kobold = function(self, dtime) minetest.set_node(food_pos, {name = "air"}) end + if missing_food(kobold.closest_food) then + kobold.closest_food = nil + end + food_pos = minetest.find_node_near(self.object:get_pos(), self.view_range, food_nodes) if food_pos then --chat_log("Smelling good food") @@ -368,7 +407,7 @@ local manage_kobold = function(self, dtime) end end - if not kobold.action or self.timer >= self.walk_velocity then + if not kobold.action or self.timer >= 0.5 then self.timer = 0 --chat_log("Time to decide for "..kobold.name) kobold.hunger = kobold.hunger - dtime @@ -380,20 +419,25 @@ local manage_kobold = function(self, dtime) pos.y = p.y pos.z = p.z + adjacent[i].z pos2 = get_surface(pos) - neighbors[i] = pos2 and {x=pos2.x,y=pos2.y,z=pos2.z} or {x=pos.x, y=self.kobold.climb + 1,z=pos.z} + --chat_log(not pos2 and "Emergency" or "Height: "..pos2.y) + neighbors[i] = pos2 and {x=pos2.x,y=pos2.y-pos.y,z=pos2.z} or {x=pos.x, y=pos.y+self.kobold.climb + 1,z=pos.z} end - chat_log("Closest food "..(kobold.closest_food and kobold.closest_food.x-p.x..","..kobold.closest_food.z-p.z or "none")) + --chat_log("Closest food: "..(kobold.closest_food and kobold.closest_food.x-p.x..","..kobold.closest_food.z-p.z.." from me" or "none")) local decision, d_id = kobold_decide(kobold, neighbors) - chat_log(kobold.name.." decides "..(decision and actions[decision] or "nothing").." -- "..(d_id or "error")) - kobold.action = decision + if decision then + chat_log(kobold.name.." decides: "..actions[decision]) + kobold.action = decision kobold_decisions[decision](self, dtime) else if not kobold.action then + chat_log(kobold.name.." decides nothing -- error") kobold.action = 1 kobold_decisions[1](self, dtime) + else + chat_log(kobold.name.." keeps decision: "..actions[kobold.action]) end end kobold.fitness = kobold.fitness + kobold_score(kobold) @@ -411,7 +455,14 @@ local manage_kobold = function(self, dtime) end local function custom_on_step(self, dtime) + local old_state = self.state + manage_kobold(self, dtime) + --[[ + if old_state ~= self.state then + chat_log("Current state: "..self.state) + end + --]] if self.state == "move" then state_move(self, dtime) @@ -421,20 +472,11 @@ local function custom_on_step(self, dtime) return false end -local function place_kobold(p) - local ent = adaptive_ai:place_ai({ - name = "adaptive_ai:kobold", - pos = p, - }) - - return ent -end - local function place_tribe(p) local roots = {x=p.x, y=p.y-2, z=p.z} local ents = {} - local popul = create_tribe(p, "adaptive_ai:kobold", get_founders(), kobolds.stats.view_range, kobolds.clone, 5) + local popul = create_tribe(p, "adaptive_ai:kobold", get_founders(), kobolds.stats.view_range, kobolds.clone, 4) local ent, pos, c c = 0 @@ -442,8 +484,9 @@ local function place_tribe(p) pos = get_surface(k.pos) ent = place_kobold(pos) set_kobold(ent, k) - --chat_log("Placing "..ent.nametag.."!") + --chat_log("Placing "..ent.kobold.name.."!") ent.kobold.pos = pos + update_tag(ent) end chat_log("Placed tribe!") @@ -507,8 +550,12 @@ minetest.register_chatcommand("empty_camps", { minetest.register_chatcommand("founders", { func = function(name, param) + local player = minetest.get_player_by_name(name) + for i,f in ipairs(founders) do - chat_log("Founder "..f.name) + if player then + minetest.chat_send_player(name, "Founder: "..f.name) + end end end }) diff --git a/population.lua b/population.lua index d9823c8..db06576 100644 --- a/population.lua +++ b/population.lua @@ -28,7 +28,7 @@ local path = adaptive_ai.path.."population_" local file_tag = {"tribe_list", "census"} -local function save_census() +local function save_census(save) local file, to_file, count, gene_copy count = 0 for _,c in pairs(census) do @@ -41,13 +41,13 @@ local function save_census() mkdir(path..file_tag[2]) file = io.open(path..file_tag[2].."\\"..c.name..".txt", "w") end - file:write(to_file) + file:write(save == false and "" or to_file) file:close() c.genes = gene_copy to_file = (minetest.serialize(gene_copy)) file = io.open(path..file_tag[2].."\\"..c.name.." genes.txt", "w") - file:write(to_file) + file:write(save == false and "" or to_file) file:close() end chat_log("Census: "..count) @@ -75,23 +75,26 @@ local function get_from_census(entity) tribe.id = t_id tribes[t_id] = tribe + chat_log("Created tribe #"..t_id) end if not populs[t_id] then populs[t_id] = {creature} + chat_log("Created popul #"..t_id) else table.insert(populs[t_id], creature) + chat_log("Increased popul #"..t_id) end end return creature end -local function save_to_file() +local function save_to_file(save) local file = io.open(path..file_tag[1]..".txt", "w") local to_file = (minetest.serialize(tribes)) file:write(to_file) file:close() - save_census() + save_census(save) timer = 0 dirty = false @@ -112,7 +115,7 @@ local function add_to_census(creature) disambiguate = disambiguate + 1 end census[creature.name] = creature - --chat_log("New censed creature: "..creature.name) + chat_log("New censused creature: "..creature.name) end local function fill_tribe(tribe, popul) @@ -140,6 +143,7 @@ local function fill_tribe(tribe, popul) creature.pos = p creature.tribe_id = t_id + --chat_log("Created "..creature.name) table.insert(popul, creature) add_to_census(creature) @@ -161,9 +165,11 @@ local function create_tribe(pos, name, founders, range, clone, size) tribe.id = #tribes + 1 local popul = {} - local p + local p, f for _,father in ipairs(founders) do + f = {} f = clone(father, f) + --chat_log("Cloned "..f.name) f.tribe_id = tribe.id p = {x=floor(pos.x+0.5), y=floor(pos.y+0.5), z=floor(pos.z+0.5)} p.x = p.x + random(0,range) - floor(range/2 + 0.5) @@ -177,21 +183,27 @@ local function create_tribe(pos, name, founders, range, clone, size) table.insert(tribes, tribe) save_to_file() - tribe.popul_size = function(self) - return #populs[tribe.tribe_id] - end - return popul end -local function get_couple(t_id, creature) +local function get_tribe(t_id) + --chat_log(tribes[t_id] and "Getting tribe" or "Not getting tribe") + + return tribes[t_id] +end + +local function get_popul_size(t_id) + return populs[t_id] and #populs[t_id] or nil +end + +local function get_couple(creature) local p = populs[creature.tribe_id] local i repeat - i = random(#t) - until t[i].name ~= creature.name + i = random(#p) + until p[i].name ~= creature.name - return t[i] + return p[i] end local function empty() @@ -204,6 +216,7 @@ local function empty() tribes = {} census = {} + save_census(false) save_to_file() end @@ -235,5 +248,7 @@ population.get_couple = get_couple population.default_size = default_size population.default_range = default_range population.save_to_file = save_to_file +population.get_tribe = get_tribe +population.get_popul_size = get_popul_size adaptive_ai.population = population diff --git a/training/trained_kobolds.txt b/training/trained_kobolds.txt index bbbe11c..e69de29 100644 --- a/training/trained_kobolds.txt +++ b/training/trained_kobolds.txt @@ -1,112 +0,0 @@ -KOBOLD -genes -{5,11,6,4,12,8,8,4,3,1,2,5,5,2,6,7,11,12,2,11,5,7,2,4,10,3,8,5,4,4,1,8,10,7,12,9,6,11,8,8,8,3,6,1,4,9,6,7,4,8,1,8,5,9,12,10,10,10,1,9,1,6,12,8,11,9,4,1,5,12,2,1,11,8,4,9,5,7,7,2,2,9,8,9,6,3,10,2,5,8,3,1,12,10,11,8,10,7,3,12,4,4,1,2,3,11,12,8,12,10,7,9,10,9,3,10,1,4,11,9,8,10,8,8,6,10,3,6,2,12,9,4,1,7,11,11,7,9,5,12,11,9,12,5,6,7,4,3,11,12,11,5,11,10,12,9,5,11,11,11,2,11,9,10,12,7,7,6,4,6,2,12,8,1,7,10,6,2,3,1,4,8,10,5,12,12,3,9,11,12,4,7,4,8,7,11,2,8,11,7,11,2,9,11,4,12,6,10,10,6,11,4,11,3,7,2,8,12,1,7,6,12,3,2,2,8,6,12,11,11,8,1,11,4,10,5,12,11,11,4,4,5,3,6,5,4,8,11,9,8,7,7,4,3,7,8,7,7,11,2,12,3,2,5,3,2,12,12,8,8,6,8,9,3,9,12,11,8,1,11,5,2,1,2,2,7,3,4,10,6,9,6,10,2,12,1,1,1,12,5,8,4,3,1,9,8,7,8,2,2,4,5,2,6,10,7,12,6,6,5,11,9,8,12,11,8,6,11,12,4,3,5,7,4,6,11,4,9,5,3,8,4,3,1,3,11,1,6,12,12,3,5,1,11,9,12,9,3,8,8,7,6,7,9,11,11,3,11,8,8,5,12,4,6,4,9,1,2,12,8,2,6,5,9,10,3,11,1,3,4,4,7,9,2,2,2,8,7,9,10,9,10,9,9,4,12,8,7,12,2,12,9,2,3,6,8,6,6,8,11,6,2,12,12,6,10,9,9,2,12,8,7,12,3,2,9,6,6,10,2,12,8,5,10,10,3,4,2,10,3,2,5,12,6,8,4,4,5,4,10,1,7,4,4,9,4,1,6,10,12,1,6,5,6,7,7,4,10,7,4,4,3,2,9,10,3,1,6,8,1,10,2,3,2,12,6,7,3,10,6,1,8,10,7,11,5,12,2,9,5,4,5,5,4,11,5,3,1,8,7,8,5,10,12,8,8,12,9,4,4,4,9,3,9,7,2,3,1,6,12,7,9,7,4,6,3,5,12,7,5,3,6,10,5,5,8,9,5,8,3,11,9,12,11,6,3,4,4,6,10,1,8,2,8,12,12,4,5,6,4,9,8,10,1,2,3,12,7,7,9,3,6,12,1,12,5,1,11,3,2,3,4,3,3,4,6,11,10,3,1,8,1,1,1,8,3,6,4,4,5,11,8,8,3,6,4,1,1,8,9,5,2,9,8,6,11,3,12,8,6,12,9,11,11,7,10,7,6,3,12,8,12,2,6,3,8,4,8,7,5,5,7,2,12,2,1,1,4,10,8,5,4,1,1,3,5,1,8,9,1,2,2,1,5,4,5,2,9,1,10,1,11,11,8,5,9,11,3,10,2,11,2,4,7,7,2,7,6,8,9,3,1,11,9,9,9,10,8,11,7,10,8,1,11,5,7,1,6,8,11,6,10,8,4,2,6,4,5,7,2,9,11,3,7,2,12,5,8,7,9,5,11,1,4,8,6,4,5,5,3,1,3,5,11,6,7,9,11,10,8,6,9,4,1,11,11,9,5,4,4,4,12,4,10,3,11,11,1,12,12,5,7,9,4,8,1,12,10,2,11,11,3,3,11,2,3,9,12,1,1,10,5,1,5,6,12,5,12,4,11,5,1,10,10,6,4,12,5,3,7,6,6,11,7,4,4,4,7,5,12,5,12,9,3,11,5,4,6,6,5,5,2,5,4,1,6,3,4,2,10,11,7,1,4,9,11,1,6,8,10,1,9,6,7,5,3,9,1,1,8,4,5,10,1,3,9,12,6,6,7,10,7,4,12,5,5,5,7,9,5,5,11,10,7,4,6,3,12,9,8,3,11,12,11,12,3,5,3,6,1,1,9,11,11,3,7,7,7,10,10,6,12,10,11,9,2,1,2,12,1,1,1,6,4,9,3,11,12,10,2,1,4,2,5,4,3,2,1,3,12,7,5,12,6,7,4,6,11,11,6,10,2,6,3,6,10,12,1,11,10,1,12,2,8,10,7,7,1,9,6,1,8,3,9,4,11,8,4,10,12,1,4,3,6,11,9,9,6,3,8,4,9,2,5,1,5,1,1,7,11,7,8,12,3,10,9,1,1,3,11,4,3,4,8,6,3,12,2,8,8,4,12,4,12,7,10,4,1,9,10,3,3,1,10,5,8,11,10,5,7,4,5,9,10,5,9,5,6,4,10,1,9,8,9,5,3,3,5,2,7,5,1,12,4,2,9,2,1,9,4,5,4,5,2,6,4,8,2,8,7,2,8,2,12,8,1,2,8,7,6,9,8,10,10,11,8,6,10,8,9,9,11,7,12,9,9,2,4,10,4,11,9,7,9,5,2,9,7,4,5,12,12,12,5,9,10,4,11,7,4,6,12,7,3,8,9,6,1,2,8,12,9,12,6,9,2,10,12,3,3,12,2,9,3,1,7,12,9,9,3,7,8,8,6,3,5,12,4,1,7,12,2,5,10,7,2,11,6,1,11,2,9,5,4,3,3,8,5,10,5,9,8,3,1,9,3,4,8,3,10,5,2,6,12,8,12,2,7,9,9,12,6,2,3,3,10,1,10,6,12,6,9,7,6,11,4,4,1,11,7,1,8,9,11,6,8,1,11,10,8,9,5,6,3,10,3,9,11,12,3,7,6,8,1,8,7,10,10,9,12,4,1,6,10,6,7,1,11,11,3,4,2,11,6,5,5,3,6,10,8,4,6,8,10,3,7,5,2,1,7,10,7,9,12,8,10,1,12,4,5,8,9,3,12,4,2,2,2,1,12,2,12,4,1,4,12,1,3,8,6,12,7,1,4,7,9,4,2,9,12,8,6,7,8,10,9,6,8,4,3,1,7,4,6,12,2,10,6,4,10,6,2,9,3,6,9,4,12,8,9,10,8,9,4,1,12,3,12,8,3,9,4,4,7,1,2,7,8,12,8,7,4,5,9,11,2,6,12,11,6,4,8,8,10,3,2,2,8,2,6,11,2,9,11,11,11,3,10,5,7,11,1,12,6,11,2,6,1,4,2,6,10,3,3,2,6,9,6,1,7,9,3,4,1,9,6,4,6,3,3,7,8,10,7,10,1,9,2,12,10,3,9,8,2,5,3,8,2,1,9,9,11,1,3,2,5,9,4,6,7,9,5,3,7,12,2,12,4,6,6,10,5,4,9,8,9,10,1,9,11,8,10,9,7,9,3,7,8,3,9,3,7,4,4,10,11,7,4,6,3,10,10,1,7,6,6,6,1,10,5,12,4,11,2,2,8,8,6,6,10,7,6,7,6,9,6,9,4,7,4,4,9,8,3,6,11,10,10,3,10,5,9,5,12,12,9,6,11,7,2,3,4,10,11,9,9,9,6,3,6,9,12,6,1,4,2,11,8,2,6,7,3,8,3,12,8,9,9,12,9,1,1,3,10,1,4,8,10,9,5,10,10,6,1,12,1,11,6,9,3,6,11,11,2,3,9,1,7,6,2,11,11,6,7,4,12,12,5,7,12,8,9,5,11,3,1,12,1,6,5,7,1,1,7,3,8,3,9,8,5,8,9,11,5,10,3,1,3,1,7,5,10,8,11,11,9,1,7,5,3,7,1,7,5,9,11,2,7,10,3,1,6,8,12,1,5,1,11,5,12,6,7,11,7,1,1,12,8,7,8,8,5,6,9,2,2,5,4,6,1,5,6,2,11,5,5,11,3,9,4,12,7,12,2,3,8,6,10,4,11,6,7,1,6,10,10,4,8,6,1,6,7,1,3,7,9,2,8,4,8,12,5,12,12,2,9,7,7,1,4,8,5,9,3,10,10,11,7,3,2,8,11,6,8,2,3,5,4,6,1,6,5,4,8,2,7,12,2,5,2,1,11,10,6,5,11,8,6,7,10,7,9,11,12,8,4,11,9,4,4,2,2,6,11,5,5,2,10,9,3,8,10,5,8,4,5,1,4,8,2,11,2,6,2,5,1,7,11,5,12,3,10,8,7,3,12,1,12,1,9,8,5,5,5,11,3,8,1,7,8,7,7,7,3,1,4,10,3,6,1,3,12,1,3,7,5,10,12,2,5,2,1,7,8,7,9,2,4,2,2,11,6,6,7,8,10,9,9,1,10,3,5,7,10,4,2,3,7,3,5,10,6,8,1,8,10,8,8,4,11,11,2,4,8,} -focus -0.23404331377891 -firstname -"Yunuta" -midname -"Patachpuanuy" -family -"Kukipuinzik" -food -{} -END_KOBOLD -KOBOLD -genes -{5,5,7,4,7,11,7,11,6,4,6,8,12,2,6,11,3,12,2,5,4,4,2,1,9,7,8,2,11,5,4,8,4,11,11,2,6,11,8,8,4,3,11,2,1,5,2,7,12,2,10,1,11,9,7,10,11,7,12,9,6,6,12,12,6,11,1,6,4,8,3,1,10,6,4,3,3,4,7,1,7,2,6,1,12,9,4,8,5,10,3,5,11,5,11,8,9,10,3,3,4,9,8,11,4,12,5,5,2,8,10,9,11,2,3,12,1,6,10,9,9,1,8,7,10,10,10,6,2,10,11,12,3,1,3,1,9,9,4,12,11,11,12,11,3,12,9,8,11,3,7,5,12,4,5,1,4,2,11,11,2,1,6,4,10,2,7,7,4,1,2,11,2,2,6,1,12,1,11,3,7,8,10,3,7,3,6,11,11,10,4,1,4,8,11,11,8,8,10,7,10,3,2,11,3,1,3,10,11,6,1,12,9,11,11,2,5,6,1,11,4,12,10,2,3,4,10,12,5,11,9,2,4,5,4,6,2,2,2,12,12,5,3,9,8,11,12,11,5,1,12,2,12,3,6,3,4,9,12,11,11,3,2,5,8,6,2,12,1,1,2,10,5,9,12,12,4,12,11,11,5,1,1,2,6,9,3,4,4,6,9,6,3,9,7,1,4,5,5,5,5,2,9,3,10,6,1,9,12,8,12,12,5,5,2,7,7,6,8,5,10,3,8,8,11,12,10,7,12,3,7,2,4,11,2,9,4,3,7,11,2,9,10,12,11,10,6,8,12,12,9,8,2,5,8,1,6,5,3,8,7,7,12,8,10,9,3,10,1,8,2,12,10,12,1,4,11,2,12,12,6,12,4,1,1,1,11,1,3,1,4,2,8,2,3,9,2,4,2,1,4,9,11,11,4,6,6,11,5,7,1,2,10,3,11,8,3,8,9,7,10,12,7,1,11,12,3,5,12,6,8,12,11,9,8,1,5,1,10,4,7,3,5,7,9,2,11,11,10,3,4,8,6,7,11,1,10,6,1,7,9,4,1,8,6,1,1,4,7,2,6,10,7,12,2,7,5,12,7,5,2,12,2,8,11,1,6,6,5,5,4,10,4,2,12,6,5,5,1,9,4,12,10,12,6,4,1,3,1,1,4,2,5,4,9,8,11,5,4,11,4,3,10,6,8,9,9,9,6,7,8,12,6,9,9,3,3,5,2,2,5,4,12,8,1,3,6,12,12,11,7,1,10,5,12,4,5,10,11,7,1,7,6,2,9,10,7,4,2,12,1,12,2,8,7,12,5,1,12,4,4,4,4,10,12,9,10,10,12,5,3,1,10,12,12,12,1,1,2,6,11,2,11,8,12,8,11,10,8,7,8,12,3,8,2,10,9,10,10,7,8,8,10,9,5,5,4,1,9,8,6,4,7,3,2,6,5,7,8,9,4,3,11,12,7,11,7,9,2,12,11,8,3,3,3,1,12,5,4,5,9,9,4,4,2,1,11,3,10,1,8,8,9,3,7,5,12,8,7,10,5,3,5,12,12,6,8,8,11,2,7,11,3,9,5,6,9,3,1,8,11,5,4,5,7,5,11,1,2,1,6,6,3,7,7,12,6,1,9,10,12,7,10,11,5,8,3,6,5,12,6,10,4,4,6,6,4,5,7,3,8,11,3,7,4,6,1,8,11,1,6,11,4,2,8,12,3,4,2,3,5,10,8,8,2,9,9,12,7,9,5,6,1,1,10,6,8,6,3,11,11,9,2,10,4,4,11,1,7,3,2,3,4,11,3,5,7,11,3,9,11,9,5,4,5,3,9,4,1,7,9,5,2,6,1,10,5,5,11,11,2,2,7,10,6,3,4,4,4,2,5,12,9,11,6,4,11,9,5,6,10,3,3,3,11,8,11,6,9,2,1,10,11,5,11,5,11,4,6,11,5,7,5,7,7,2,1,7,7,4,1,10,10,7,6,7,3,2,12,7,4,5,10,8,2,3,6,3,6,11,8,6,1,12,6,1,11,7,7,3,5,8,4,10,6,10,3,7,9,8,9,9,3,3,1,6,10,7,8,2,6,12,11,7,7,8,7,7,2,10,6,10,2,12,12,2,9,5,3,7,8,5,5,4,8,3,11,12,12,1,4,11,2,5,4,12,8,1,5,12,7,1,11,11,6,6,4,1,4,6,1,6,6,4,8,5,2,1,10,12,11,8,12,3,10,1,9,12,2,8,6,8,10,9,6,11,10,6,10,7,11,5,11,6,1,12,4,1,4,3,1,8,5,5,1,12,12,4,7,1,5,8,12,11,8,12,6,8,12,11,4,11,4,7,4,3,12,12,3,12,4,8,3,9,7,10,4,3,2,12,7,1,1,1,2,8,7,7,12,2,12,6,3,10,9,1,11,5,7,10,1,7,9,12,5,3,1,5,11,2,3,1,4,2,5,1,2,9,2,11,10,4,2,6,6,10,6,4,8,7,2,11,9,12,8,5,4,2,9,11,3,1,4,10,8,4,6,5,8,9,9,11,1,12,12,9,6,4,5,3,4,2,6,8,7,5,6,3,4,8,4,12,8,12,3,6,1,11,1,4,6,12,6,12,1,8,10,5,2,3,12,9,3,6,2,12,8,2,4,3,6,8,11,11,1,7,10,9,2,10,1,12,2,6,4,12,2,4,1,12,7,4,5,10,3,11,11,1,6,6,10,9,7,8,3,10,9,6,10,8,12,11,3,9,9,8,3,2,3,10,5,4,5,4,9,12,8,1,8,10,3,6,2,6,3,9,2,10,7,6,2,2,4,11,7,8,6,12,1,10,7,2,11,11,1,3,5,11,9,7,10,5,1,9,12,12,12,11,12,10,4,11,8,2,10,3,2,7,9,2,2,2,6,9,9,11,11,10,3,6,5,12,5,2,1,6,2,10,2,8,10,7,2,10,1,7,12,10,7,2,6,7,12,8,12,11,9,6,11,5,11,8,5,7,5,10,6,4,11,5,2,12,9,7,7,7,5,10,3,5,7,10,8,4,7,9,1,6,8,12,1,4,2,12,2,10,5,1,5,3,6,9,8,3,12,1,6,7,8,10,6,12,9,2,10,4,4,2,8,3,11,9,11,3,1,12,3,12,5,3,9,4,8,7,3,2,6,3,11,4,9,9,4,12,9,6,1,7,11,4,5,1,6,5,3,2,2,4,4,10,8,1,12,2,11,11,12,7,12,9,11,8,2,1,11,1,6,10,6,7,10,9,11,2,12,6,5,6,4,6,9,4,4,4,2,3,9,9,12,5,3,8,5,2,10,10,9,2,4,9,11,10,6,7,3,4,1,2,4,9,11,4,10,4,10,6,4,5,8,7,2,12,10,7,8,2,12,4,9,6,8,5,6,5,1,9,2,11,9,11,1,10,9,7,5,8,6,8,9,11,8,2,2,4,10,5,12,5,2,6,6,12,11,9,4,7,6,1,8,11,12,1,10,2,7,6,11,3,6,3,5,5,12,11,9,12,9,2,7,1,11,9,7,11,6,3,10,5,3,5,5,12,10,10,12,8,3,12,12,7,6,12,10,12,9,11,2,5,9,6,12,4,6,1,9,8,5,8,4,6,5,1,7,3,10,11,8,3,11,9,8,4,6,10,11,10,5,3,6,3,1,6,12,8,6,2,11,1,9,4,1,9,3,11,2,5,2,7,10,2,1,2,6,7,3,8,7,11,1,10,8,8,6,1,8,7,12,11,9,11,6,7,8,4,2,3,12,9,10,7,12,1,3,7,5,10,2,8,7,11,5,11,8,6,9,3,11,1,12,8,12,6,7,5,5,3,2,6,10,1,5,12,2,1,12,6,1,12,9,10,10,5,3,6,9,10,7,5,1,9,6,2,6,4,6,4,6,9,5,6,9,7,4,11,6,5,9,11,11,6,3,11,9,8,3,2,6,3,6,8,4,8,1,1,6,12,4,10,11,8,6,6,8,12,7,8,4,7,5,9,12,5,1,12,9,1,4,10,8,6,12,1,4,3,10,1,10,7,2,3,6,9,6,9,2,3,12,8,1,11,6,6,9,3,1,1,12,9,5,7,6,5,6,11,5,1,2,9,1,1,8,9,10,6,8,8,11,9,10,4,9,5,1,9,9,11,5,12,12,10,12,10,8,9,9,11,10,10,8,5,11,1,9,6,5,1,5,11,9,12,8,6,10,4,3,11,1,2,2,11,3,8,5,8,8,8,11,5,7,9,7,6,1,1,10,4,7,10,12,7,1,5,3,7,2,6,10,9,10,8,8,2,7,6,11,9,9,4,8,7,7,6,4,3,2,10,5,1,2,8,9,10,7,1,4,7,4,11,3,5,12,12,12,1,2,2,12,1,11,7,10,4,1,8,} -focus -0.33772664250454 -firstname -"Kafaki" -midname -"Patachpuanuy" -family -"Kukipuinzik" -food -{4,} -END_KOBOLD -KOBOLD -genes -{5,11,3,6,2,3,12,11,3,11,2,11,10,3,12,9,10,3,9,8,1,3,4,3,10,6,8,4,3,5,10,9,4,10,9,7,12,12,3,5,11,3,12,8,2,9,11,4,12,7,12,7,8,10,10,7,7,1,2,7,10,7,10,4,11,9,12,9,7,1,1,8,1,3,3,10,2,10,2,8,1,5,8,9,11,9,8,3,8,11,4,3,3,12,2,10,5,8,6,3,5,12,7,10,4,11,5,11,8,4,7,11,7,4,8,8,9,10,3,3,6,9,5,5,11,7,12,6,7,1,2,5,12,10,3,4,9,11,6,1,2,7,12,10,3,8,5,3,11,1,10,9,11,5,11,1,8,5,10,7,7,10,5,2,12,10,9,3,7,8,5,1,2,7,5,8,12,9,3,11,5,8,6,4,2,9,10,9,12,7,10,7,3,4,5,3,1,3,10,12,5,12,2,8,4,4,7,7,11,6,1,11,8,11,4,8,5,5,7,10,5,9,8,10,3,10,8,1,8,4,2,9,11,1,2,5,2,10,7,6,12,9,3,5,1,8,4,3,10,6,12,1,6,1,12,8,2,11,4,6,11,3,1,2,1,6,7,10,10,1,10,8,9,8,4,12,11,4,8,6,4,8,10,9,1,9,7,12,6,8,4,12,10,1,9,8,11,11,3,2,6,11,12,3,3,12,9,2,3,12,3,6,8,7,2,4,11,4,11,3,7,4,3,4,11,2,5,10,6,6,11,12,5,9,11,6,12,3,5,3,5,1,9,1,4,9,1,7,8,12,12,10,1,2,5,8,1,3,6,1,7,2,5,2,8,12,1,11,5,7,4,12,6,1,5,5,8,5,6,4,8,1,11,8,8,11,10,8,10,3,10,8,6,5,12,9,6,10,8,1,5,1,9,12,5,9,5,2,10,5,12,1,10,7,7,7,2,3,2,4,11,6,5,12,12,9,1,7,8,10,10,1,7,7,9,5,4,5,3,9,11,1,8,7,9,1,8,11,3,1,7,1,2,11,1,1,12,4,1,10,10,5,3,1,6,2,12,11,2,12,6,2,7,7,3,9,6,11,10,12,6,9,6,11,4,10,3,12,5,7,3,4,3,7,2,8,8,10,12,6,5,3,8,10,12,5,3,12,1,2,5,11,8,4,4,10,3,9,7,8,9,7,10,1,4,1,9,7,6,1,10,9,12,3,3,1,12,11,7,8,12,9,11,9,6,4,6,5,1,11,1,11,9,2,9,8,2,10,10,7,6,5,3,6,4,8,7,8,1,8,6,8,7,4,6,5,2,7,1,8,8,12,2,4,1,4,8,4,12,3,11,11,5,10,3,8,9,8,7,7,2,10,2,8,6,7,6,12,12,1,11,4,6,12,4,10,11,6,10,8,4,4,7,11,8,1,7,3,9,7,4,12,4,12,5,7,4,6,8,10,10,6,6,12,7,11,7,4,9,10,11,11,12,5,5,11,10,12,1,12,1,6,1,5,2,1,3,9,5,4,4,9,1,2,7,1,4,10,7,11,7,2,7,1,12,5,7,7,11,12,5,3,2,1,8,12,4,3,11,7,6,8,12,3,2,2,3,9,3,12,10,8,7,3,12,11,7,10,6,1,3,11,4,3,2,1,6,1,9,6,1,5,9,6,10,2,5,10,5,2,4,6,9,6,10,10,5,4,8,5,5,2,9,2,1,8,10,3,7,5,2,9,10,7,5,2,11,9,8,2,4,2,12,3,4,6,6,11,5,11,6,11,7,3,11,12,4,8,11,9,12,3,10,7,7,2,5,3,3,5,5,11,7,10,11,11,12,5,2,7,9,9,10,10,12,11,2,7,3,11,8,10,2,4,2,2,9,1,3,9,6,5,1,6,10,7,2,10,3,12,4,8,5,12,10,2,12,4,1,12,4,10,2,10,6,2,10,6,2,12,11,9,3,3,10,7,8,7,11,1,1,12,7,5,6,1,12,6,8,6,2,7,4,3,7,3,10,7,12,11,11,12,11,7,2,2,8,11,8,3,7,1,9,8,9,5,10,8,9,1,1,1,8,7,1,5,10,3,5,7,2,3,8,12,6,9,1,6,9,4,3,2,12,9,12,2,9,9,12,7,8,11,11,11,10,5,1,1,5,4,1,12,8,4,4,9,1,6,8,5,8,12,2,7,2,3,7,9,2,12,6,1,12,8,10,11,7,11,6,4,9,6,4,5,6,8,3,1,4,6,12,5,5,5,7,7,7,10,8,6,7,7,8,5,11,10,12,9,9,9,9,11,5,9,1,9,5,6,6,1,10,9,12,6,11,3,12,4,7,10,4,9,10,7,11,8,8,10,11,3,4,8,1,8,1,10,10,9,11,9,5,12,7,1,3,6,4,6,12,10,8,3,8,6,4,1,11,5,8,3,9,11,6,2,10,1,6,1,4,10,5,4,7,12,3,11,10,10,10,11,11,6,10,12,5,3,6,3,2,8,10,11,1,9,7,11,3,1,10,12,2,1,7,6,1,8,11,6,1,8,9,10,4,2,7,10,10,4,7,5,12,4,11,11,6,12,7,12,5,9,9,11,2,11,10,3,1,11,7,9,2,9,4,1,4,11,2,6,4,6,5,5,6,7,9,10,3,1,3,9,8,7,9,10,6,11,5,9,9,12,8,3,6,3,10,7,12,4,11,11,10,10,12,4,4,6,4,3,1,8,9,1,8,8,12,1,9,2,11,4,2,6,8,12,1,6,11,10,2,6,9,11,2,9,5,2,8,5,4,3,6,6,1,6,2,8,2,5,4,6,10,7,7,10,9,6,6,11,1,3,11,1,6,4,9,7,1,8,10,11,8,4,5,6,12,5,7,2,11,1,4,12,1,12,3,7,8,4,9,6,2,5,7,12,4,4,8,2,4,5,4,5,7,6,2,7,11,6,6,8,4,10,3,2,10,10,4,12,4,4,3,5,3,12,9,8,11,5,1,4,6,7,6,3,9,6,6,3,6,10,7,11,3,8,6,2,3,5,6,8,1,10,9,3,11,2,4,4,7,12,3,3,8,7,12,4,6,10,6,1,8,11,10,11,12,8,10,6,8,6,6,5,8,8,10,9,7,4,4,11,8,11,2,5,6,10,3,9,6,11,6,7,9,8,4,12,9,6,11,6,2,6,7,8,11,5,10,8,7,9,5,9,8,11,2,2,7,10,12,8,6,8,5,8,11,11,12,8,2,9,7,2,2,1,6,1,8,1,12,3,4,10,9,2,12,2,10,12,11,7,12,5,2,3,11,5,7,12,3,10,10,1,10,6,7,1,5,9,5,10,1,3,3,1,4,3,11,6,5,11,11,3,11,12,10,6,6,9,4,4,2,10,10,5,11,8,1,1,1,2,4,6,10,10,11,1,7,12,2,1,1,7,10,11,9,10,8,10,6,2,4,6,2,2,1,12,4,11,1,2,12,2,2,2,7,4,1,11,8,11,12,6,3,1,5,1,12,7,10,7,2,12,2,6,2,1,10,2,4,12,1,5,1,6,4,5,3,12,6,11,1,4,8,3,9,10,10,9,2,6,7,11,9,5,3,9,11,9,5,6,4,6,10,10,4,8,7,4,9,11,1,11,7,7,3,8,12,9,2,10,3,2,2,12,6,5,6,8,9,1,6,2,1,1,3,2,1,7,12,11,5,2,4,5,3,4,12,4,5,7,8,4,1,10,6,4,3,2,5,1,2,8,3,1,12,12,10,6,2,1,1,5,10,8,1,8,11,4,4,3,12,4,6,9,9,9,9,2,11,7,4,6,4,5,3,6,10,8,4,3,10,3,3,11,9,11,8,8,1,6,3,10,10,10,5,3,6,9,10,1,7,1,2,3,12,11,6,10,3,2,6,1,6,8,11,1,3,6,2,4,6,12,1,12,6,12,2,11,2,4,11,4,7,11,2,6,6,6,1,4,3,5,1,3,3,1,5,3,3,1,4,7,1,3,10,1,8,2,3,3,12,12,12,12,2,9,9,7,3,3,4,6,1,3,11,2,5,4,1,1,1,9,10,8,7,3,8,5,9,3,4,1,8,2,3,8,10,2,10,10,1,7,7,7,3,5,1,11,9,7,6,5,4,2,6,8,4,11,4,2,2,2,7,6,10,11,2,8,2,3,1,8,5,7,8,2,10,8,11,2,5,8,7,10,5,2,12,8,11,11,8,6,1,5,11,1,2,1,3,6,8,12,5,5,11,4,7,9,10,5,8,12,7,10,1,7,10,2,5,7,2,1,2,12,3,9,11,3,10,8,2,9,1,2,4,12,10,1,4,1,1,6,10,3,8,1,1,2,10,10,12,1,5,8,5,6,6,9,5,7,5,2,11,4,11,3,12,1,5,7,10,11,6,11,} -focus -0.28907365487597 -firstname -"Kisasku" -midname -"Znusasianuy" -family -"Tukipusanzik" -food -{5,} -END_KOBOLD -KOBOLD -genes -{8,2,8,9,1,4,8,10,3,4,1,9,1,7,11,11,1,8,12,6,5,5,9,12,10,11,5,3,3,10,6,3,2,9,9,10,11,5,10,6,3,3,4,3,5,9,5,2,5,11,12,4,5,1,9,9,4,10,5,9,1,10,4,8,6,9,8,1,5,12,6,11,11,12,2,1,5,7,7,6,11,8,4,9,6,3,10,2,1,4,11,7,9,1,11,8,10,10,1,12,4,7,2,1,12,4,5,9,3,8,10,9,4,3,9,3,11,4,7,6,2,6,9,9,9,10,9,6,7,7,9,8,11,12,3,6,7,7,7,1,2,6,5,10,3,7,4,6,12,11,5,4,10,6,10,9,1,5,2,11,2,1,5,3,11,12,7,6,7,8,11,1,5,7,12,8,12,7,12,11,5,8,10,2,11,2,11,7,11,12,8,3,3,8,11,2,2,6,11,10,11,2,2,10,4,3,7,10,1,8,11,11,9,3,4,5,8,11,5,3,4,5,3,1,3,10,12,8,11,7,8,6,3,4,4,2,3,5,11,4,10,7,2,6,8,12,1,5,11,8,10,2,4,10,5,5,7,5,3,1,10,2,10,5,9,2,9,7,12,8,6,8,9,10,1,12,11,8,1,10,8,9,7,2,10,9,7,5,10,1,5,6,10,6,10,4,3,6,10,10,3,4,5,1,4,10,1,4,3,2,7,5,11,10,7,6,7,4,6,4,9,9,4,11,11,1,7,7,12,6,8,5,2,4,4,6,10,2,8,7,8,8,9,1,11,5,2,8,10,3,2,5,10,2,10,2,3,12,8,10,7,1,12,1,12,11,8,11,6,9,5,12,10,12,4,9,2,2,12,7,10,11,4,11,4,11,11,12,3,1,7,4,11,10,2,8,8,11,9,10,6,10,12,6,4,5,5,2,4,4,3,1,2,8,5,5,5,5,7,10,4,6,5,12,5,4,10,9,1,6,10,9,7,4,5,8,8,5,3,5,12,9,2,1,8,10,8,1,5,2,5,11,7,12,9,4,4,4,12,2,12,3,8,7,9,4,7,10,10,11,3,2,7,1,3,2,1,10,11,10,3,1,3,9,3,10,2,10,10,1,6,4,1,11,5,6,12,11,10,5,1,6,10,8,6,2,7,2,5,5,3,12,11,8,12,10,10,6,9,7,12,10,8,12,8,9,5,8,9,6,4,9,2,5,5,10,7,3,5,2,8,5,8,8,11,9,10,11,7,3,3,10,10,11,9,11,9,6,10,7,11,4,12,9,8,3,4,8,6,2,9,6,10,2,12,12,11,9,6,9,9,11,2,2,6,3,6,7,7,1,2,9,3,1,12,3,2,7,3,11,3,1,6,3,4,2,5,10,2,7,8,5,10,12,7,1,3,6,2,5,8,4,11,9,1,1,9,1,2,5,5,4,1,8,3,7,6,1,8,6,12,9,4,3,7,11,11,8,12,12,6,12,4,1,3,8,9,4,7,5,8,6,12,12,9,5,1,4,7,8,10,9,1,1,11,1,1,4,5,10,11,11,6,5,10,5,4,9,6,3,2,4,2,2,3,10,2,7,10,9,6,8,12,10,3,7,4,6,8,4,6,1,7,6,9,9,8,2,6,9,11,8,1,8,5,2,7,10,9,11,8,4,11,4,6,3,8,4,6,8,1,11,3,7,1,12,3,8,10,11,3,11,4,12,11,12,12,5,10,3,7,3,12,3,4,5,8,7,10,5,4,12,4,5,7,5,6,10,8,3,1,9,5,5,11,3,9,4,3,11,7,7,8,10,3,9,12,11,11,6,11,12,11,11,4,12,5,12,5,7,12,7,8,5,6,7,10,9,4,11,11,10,6,12,6,4,3,2,6,8,12,11,11,7,12,7,9,5,5,12,10,9,1,3,8,8,4,2,11,9,3,1,1,4,8,6,5,4,11,11,9,4,12,4,10,7,9,7,9,2,6,10,6,5,3,5,2,1,1,4,4,1,10,12,6,1,9,8,12,7,10,6,11,12,6,2,7,7,8,8,4,4,2,10,2,5,5,4,9,8,9,12,1,3,12,3,10,3,2,8,4,2,8,12,9,7,3,7,1,5,1,10,6,9,9,2,2,10,1,7,10,1,11,8,10,3,1,8,10,5,8,2,2,7,11,7,11,6,3,12,3,10,2,6,12,4,7,11,11,6,5,1,9,3,6,10,10,1,12,2,8,8,8,5,2,7,1,8,4,6,12,8,5,9,4,1,9,4,6,9,2,10,8,1,2,10,6,6,10,10,11,4,6,1,12,4,2,4,5,8,7,12,11,3,6,1,1,12,3,3,4,4,1,10,11,3,3,2,8,8,12,6,4,4,2,11,8,7,4,10,6,8,1,3,7,11,10,12,8,5,4,10,12,1,7,6,4,6,9,5,3,9,8,1,5,3,11,11,4,5,10,1,4,5,3,9,5,7,11,8,5,10,4,2,5,7,5,9,12,7,10,8,5,10,1,3,6,8,4,12,9,7,4,2,3,3,1,1,10,8,4,9,9,12,10,10,9,2,10,4,11,4,1,3,4,4,11,9,5,9,9,2,2,1,8,7,4,5,7,8,6,12,3,1,4,11,6,1,1,8,12,8,12,6,7,3,12,1,3,4,12,3,7,11,1,7,3,9,9,3,9,8,7,3,10,5,4,1,9,9,10,10,5,10,12,9,8,1,1,11,5,2,5,1,6,12,8,5,7,9,1,8,8,1,9,1,7,5,10,10,5,2,2,12,8,8,9,5,9,9,2,6,7,3,1,5,10,9,12,2,1,10,9,9,6,11,7,5,5,12,10,5,9,6,10,8,1,8,3,11,9,5,2,6,2,6,8,12,11,3,8,6,11,4,11,7,8,3,11,7,4,4,6,9,6,8,11,6,2,7,8,2,11,6,12,10,3,6,8,1,2,10,5,10,9,7,5,6,12,7,4,11,11,9,12,5,12,12,1,12,4,9,4,10,9,8,3,10,2,2,11,11,12,12,4,7,6,5,2,8,8,8,3,1,2,8,2,5,9,12,9,4,10,12,12,11,6,12,4,7,2,4,3,6,1,5,11,12,4,12,11,2,8,5,4,9,12,7,2,9,6,3,6,5,11,4,9,10,8,3,5,10,11,8,1,12,8,8,4,9,8,4,5,9,5,10,4,4,10,9,3,2,3,9,2,3,2,6,6,9,3,3,12,11,1,8,5,5,12,3,5,3,5,6,11,2,1,1,12,3,2,10,12,4,7,12,12,6,2,3,11,4,4,11,2,1,2,4,5,2,7,10,9,7,2,1,5,9,12,9,4,2,8,3,11,12,6,2,1,7,9,12,1,3,2,8,2,4,6,4,6,11,2,9,5,5,12,6,7,5,6,11,5,2,11,4,9,10,4,7,3,4,1,7,9,6,2,6,8,2,9,4,6,11,4,11,3,5,8,10,10,12,4,9,11,7,6,1,6,2,3,2,3,1,3,7,4,9,6,7,8,9,3,6,7,9,10,4,3,11,4,10,1,5,2,11,3,6,3,2,1,9,12,9,8,11,11,11,4,2,5,3,12,1,5,7,7,5,10,6,8,10,6,10,2,1,5,8,6,3,12,8,8,6,8,2,5,9,2,10,3,1,2,7,1,5,1,8,7,1,9,8,7,1,1,3,11,2,10,1,5,11,9,2,3,4,5,5,5,2,6,1,2,7,1,12,9,5,5,8,11,4,11,1,8,1,7,1,6,5,8,10,9,5,6,2,2,9,8,8,8,9,10,5,12,1,2,8,5,7,5,1,12,2,4,4,11,9,1,3,4,12,12,10,4,11,12,10,11,3,4,6,8,11,8,9,2,8,12,12,5,5,8,3,4,11,11,9,6,11,4,5,5,9,8,8,10,6,10,1,2,2,10,9,7,2,2,3,2,2,7,6,4,11,5,4,6,7,4,10,10,9,4,6,11,9,3,2,5,1,9,11,1,3,5,7,2,12,7,2,7,5,4,3,1,11,4,10,5,7,8,4,9,3,9,8,3,7,4,5,7,7,7,2,12,3,5,1,4,8,7,5,9,2,3,2,12,10,8,10,12,4,12,6,11,1,1,8,7,4,5,6,4,1,7,7,3,9,4,4,10,7,12,11,5,10,2,2,4,7,6,4,3,8,4,11,6,7,6,2,11,2,12,2,5,6,6,3,2,12,2,5,11,7,7,1,8,8,3,9,9,3,9,11,11,12,7,3,1,8,7,12,3,3,1,12,5,7,3,9,2,5,8,3,8,2,5,7,9,10,12,2,7,6,8,5,12,8,3,10,9,6,9,12,8,8,5,9,1,8,4,8,5,7,7,8,3,5,12,7,10,4,8,9,8,10,2,1,3,4,11,2,1,8,} -focus -0.15512212367605 -firstname -"Tatakaka" -midname -"Napauuanuy" -family -"Kukipuinzik" -food -{4,} -END_KOBOLD -KOBOLD -genes -{5,11,1,12,7,2,11,12,12,9,2,9,10,3,9,8,8,4,3,1,1,11,9,10,4,2,11,4,1,11,6,10,2,3,11,11,4,2,8,1,8,9,1,10,6,4,8,4,4,8,9,9,1,1,8,10,1,1,1,8,5,2,2,2,6,11,4,7,5,2,4,9,4,7,6,3,4,1,3,9,12,2,6,3,3,7,3,2,5,5,1,3,7,7,5,7,8,12,5,4,8,12,9,10,6,7,12,1,4,7,5,12,8,11,12,12,8,10,7,10,4,8,10,11,11,3,3,2,4,11,12,6,12,12,7,6,8,7,6,3,10,1,6,9,12,12,1,10,12,3,6,10,11,12,6,10,5,5,5,2,5,8,5,6,10,3,1,7,2,7,1,5,2,11,5,12,8,4,2,3,9,9,3,6,7,5,10,7,9,1,1,9,9,4,10,7,1,4,2,10,2,5,4,10,7,1,2,10,3,6,9,5,10,6,1,5,2,8,4,4,7,10,5,10,12,9,7,4,7,2,7,4,1,10,6,6,7,2,10,11,12,5,10,1,9,2,11,10,9,12,1,4,11,6,12,5,2,4,1,3,2,4,3,6,1,5,2,3,1,7,9,7,7,4,1,1,9,9,2,8,10,2,5,7,10,9,6,12,9,5,9,8,7,7,4,5,9,2,1,11,3,6,7,10,7,3,2,9,3,9,10,8,5,5,8,8,9,7,11,9,2,4,9,4,5,9,8,3,9,8,11,3,4,3,11,4,8,8,5,4,6,9,2,12,5,4,12,2,11,5,9,3,3,11,12,3,12,2,4,4,6,6,3,1,2,12,1,7,2,2,8,4,7,6,3,7,5,1,6,2,7,10,10,7,6,3,7,3,3,5,11,6,7,6,4,4,10,11,8,10,11,10,5,5,9,4,5,5,12,4,6,8,5,6,2,1,5,12,10,7,11,2,6,10,10,2,1,3,8,1,8,6,4,2,11,11,4,9,4,5,5,2,8,11,11,7,5,5,10,8,6,1,8,6,8,10,4,12,2,11,9,5,12,6,1,4,10,10,7,12,6,10,7,4,11,10,5,3,1,3,4,8,8,12,8,11,2,9,5,6,2,8,1,1,7,5,2,6,11,2,8,3,12,1,1,8,9,3,8,2,1,12,11,10,3,8,8,11,3,8,12,3,7,10,6,6,10,7,1,12,10,7,11,3,6,6,11,3,4,11,3,11,8,11,10,4,11,5,6,3,5,1,3,5,8,10,3,10,10,6,9,5,8,3,8,1,9,1,7,5,1,5,11,11,5,7,9,4,3,4,5,11,3,2,3,2,3,2,6,2,3,5,7,11,12,9,1,11,3,6,3,6,3,10,6,10,1,3,12,1,6,1,8,9,12,4,11,1,2,11,7,2,1,5,7,12,2,4,5,8,4,11,12,1,8,4,10,10,2,4,4,12,4,3,2,2,11,2,9,11,7,6,11,5,7,8,3,8,7,12,4,3,5,7,7,5,6,7,11,2,4,1,3,5,6,4,1,2,8,6,5,8,3,9,7,2,4,5,4,6,9,1,12,6,1,11,1,8,4,7,10,5,5,2,8,11,9,11,1,6,8,12,1,10,1,10,5,7,12,7,12,7,10,6,12,12,11,4,3,5,1,1,12,2,10,6,1,1,6,8,8,5,6,4,4,1,4,5,7,2,11,3,2,7,10,4,10,11,9,9,12,12,8,6,10,12,7,3,7,6,4,3,5,5,2,1,9,9,10,9,12,11,3,9,3,2,9,7,5,9,3,9,12,5,11,1,8,9,2,7,4,8,3,10,4,9,11,5,12,5,10,11,5,3,6,6,1,2,10,10,3,10,11,5,7,2,11,3,1,1,10,2,12,3,6,3,6,3,8,7,2,10,7,10,2,12,4,1,4,8,11,9,3,12,2,9,3,11,9,4,5,11,5,6,8,2,12,6,7,8,10,1,6,8,11,6,6,12,3,7,11,7,10,9,1,10,6,5,3,11,1,8,3,6,10,4,6,12,2,7,4,2,6,12,2,1,2,9,4,3,3,10,4,3,2,1,5,7,10,8,6,5,2,9,4,1,1,1,9,10,11,10,10,3,1,8,4,12,1,9,3,12,9,12,1,11,5,6,2,3,9,6,9,5,4,7,7,11,9,6,4,11,1,11,6,8,5,2,10,9,11,6,5,7,3,9,12,9,1,9,11,8,9,1,11,11,11,9,4,4,9,3,6,1,10,8,5,1,2,6,4,4,10,11,4,4,11,10,11,9,10,12,4,2,9,9,4,2,7,2,11,10,9,4,8,3,4,8,8,3,8,8,1,8,1,2,2,11,5,4,11,7,1,12,3,8,11,4,7,8,1,3,7,8,4,9,5,9,10,7,12,1,5,2,2,11,6,3,9,4,9,5,2,6,4,1,4,9,7,8,7,11,6,2,5,12,9,3,1,10,3,1,8,6,3,3,4,7,10,10,11,5,3,7,7,9,7,3,12,9,9,2,1,11,3,5,2,4,6,10,11,3,8,12,2,8,8,4,7,2,11,9,7,7,3,5,5,12,8,11,12,2,2,3,10,10,5,2,12,12,5,3,4,4,3,2,6,12,2,1,6,8,11,1,6,10,7,3,4,12,5,8,2,3,1,4,5,7,5,8,12,12,1,1,8,2,7,8,7,1,8,3,5,12,11,10,3,12,1,4,1,10,1,10,10,10,10,2,8,7,7,6,6,1,4,5,1,7,8,1,3,10,8,5,4,8,1,5,7,3,9,6,4,9,6,11,4,11,2,10,4,2,7,12,9,8,6,4,9,12,6,7,3,12,8,8,10,9,12,3,11,2,7,5,10,5,4,2,6,3,11,12,2,6,4,11,4,11,1,4,1,4,7,6,12,9,9,7,5,2,11,9,1,10,8,10,7,5,4,8,6,4,4,11,12,4,6,12,5,11,6,3,5,11,11,6,12,8,7,12,3,12,10,1,6,11,3,7,10,4,10,5,3,4,9,10,6,6,8,10,9,4,7,1,11,2,11,3,11,4,2,3,6,8,9,1,3,8,1,6,9,2,6,5,2,5,10,12,9,10,5,8,9,12,5,9,5,12,3,12,8,1,4,4,10,5,11,10,5,7,4,3,3,5,2,7,7,9,6,8,8,10,6,1,6,5,5,5,6,12,1,8,8,4,4,2,5,9,9,7,5,3,9,4,10,2,2,6,1,4,12,5,6,10,3,11,12,2,1,5,8,6,10,7,7,10,2,4,11,3,4,6,1,3,9,6,10,2,4,5,10,9,8,11,6,8,12,3,2,11,8,7,10,5,1,11,9,1,11,4,6,6,12,7,4,8,2,3,8,12,7,6,8,6,5,12,6,6,12,8,1,8,4,6,11,4,8,5,4,5,10,8,12,5,1,2,12,12,8,1,1,6,7,10,8,4,11,10,8,3,7,10,10,9,7,11,7,9,8,3,6,8,10,1,7,11,3,8,11,1,6,4,1,2,2,8,5,2,4,4,3,4,10,4,8,7,2,5,5,7,8,10,1,9,8,5,5,11,4,4,2,7,5,1,9,8,2,6,8,11,1,10,2,3,9,1,2,3,3,3,11,12,10,4,9,1,12,2,9,3,9,8,9,11,11,3,7,7,10,3,3,12,4,4,7,10,7,11,5,7,2,9,5,8,2,9,1,8,5,8,3,2,1,12,1,1,7,3,4,2,12,12,8,4,5,4,12,11,2,7,3,11,1,6,7,4,9,2,1,5,12,7,9,4,10,1,1,6,2,5,8,1,11,3,1,5,6,10,2,1,6,12,8,3,8,9,1,12,8,6,4,9,12,9,8,9,1,8,8,4,10,8,12,3,9,2,11,7,4,7,3,6,12,2,2,11,11,11,4,7,9,9,11,12,2,3,9,2,5,2,4,8,5,10,12,1,4,11,6,2,1,4,12,5,10,12,5,7,11,1,2,4,1,11,3,4,10,1,7,4,1,7,5,1,3,7,8,5,3,4,12,3,6,6,6,1,6,11,10,4,12,1,7,2,2,3,10,5,10,9,6,8,9,11,10,4,12,2,5,9,9,9,10,11,3,10,6,3,9,10,8,12,6,4,12,1,4,1,8,2,12,4,2,6,1,7,10,9,10,9,11,8,1,3,6,8,7,8,9,7,4,5,4,1,6,3,3,5,8,8,6,4,8,7,11,12,10,3,2,3,4,10,1,5,9,5,3,9,2,6,3,2,3,5,8,7,10,1,1,5,7,11,5,8,9,12,9,11,6,11,8,7,12,2,10,10,4,6,9,1,6,10,3,3,8,8,10,9,9,2,8,10,9,10,3,7,10,3,12,6,6,12,7,10,12,7,4,8,2,11,2,4,5,4,} -focus -0.67610705893124 -firstname -"Pusaki" -midname -"Tanysatuanuy" -family -"Ptasfnzik" -food -{} -END_KOBOLD -KOBOLD -genes -{1,7,8,7,8,4,10,8,12,11,11,7,4,3,3,2,7,10,6,3,8,3,9,12,12,8,3,2,2,5,8,2,3,4,2,7,3,4,1,3,5,11,8,8,6,6,9,5,6,9,6,11,3,10,6,3,11,10,7,1,8,6,3,1,7,6,5,1,2,9,11,10,3,4,2,11,2,6,8,10,8,5,6,8,4,7,2,2,12,12,1,3,8,5,7,4,11,4,12,11,10,9,11,2,9,7,6,7,2,12,8,8,11,9,1,2,9,11,1,5,1,8,1,7,3,7,5,3,11,5,4,7,9,1,9,5,9,7,4,12,7,1,11,6,2,2,4,7,6,5,7,4,1,12,10,12,5,10,9,3,5,12,1,6,7,12,10,11,7,2,10,6,2,2,11,3,1,11,1,8,4,2,12,7,3,4,11,11,9,10,10,10,7,9,7,5,4,2,2,8,2,10,1,6,9,10,6,3,4,5,3,4,7,11,7,8,9,10,2,5,1,11,2,12,11,7,6,12,8,8,9,10,11,6,4,11,6,12,9,5,7,8,10,1,11,6,8,12,6,3,9,8,5,8,2,6,5,1,7,8,12,1,10,10,2,10,10,3,7,5,12,8,2,3,1,7,2,3,8,4,1,9,12,8,5,5,1,6,9,11,11,5,2,9,3,5,7,5,7,10,7,6,8,6,7,9,8,8,4,12,7,4,5,12,3,2,12,4,8,8,1,8,2,9,3,9,1,8,1,5,9,2,1,8,2,9,10,9,8,6,3,1,12,7,5,11,3,2,7,8,6,9,4,9,3,5,12,6,10,6,6,10,12,1,11,2,10,3,8,9,7,11,11,4,5,3,4,3,5,10,1,5,3,4,3,6,9,5,6,6,3,4,12,11,12,5,10,10,12,6,9,4,7,9,5,8,12,2,5,3,1,9,9,3,11,3,10,8,2,8,7,10,6,9,10,8,4,3,2,3,7,2,11,8,4,3,10,7,11,9,7,3,4,6,5,12,6,11,11,6,3,10,10,11,3,9,7,10,10,11,2,9,8,1,1,1,2,11,11,6,12,8,9,4,1,6,1,3,10,1,5,12,1,12,12,3,4,7,5,5,5,4,7,2,5,2,7,6,8,3,4,7,11,10,6,11,12,9,2,10,6,10,2,3,12,5,6,12,9,5,12,3,8,10,8,9,10,8,9,7,4,3,5,2,12,2,10,8,3,9,5,12,10,12,3,8,1,3,5,3,7,2,1,7,8,2,10,4,5,4,5,6,2,2,2,8,4,3,12,3,10,3,3,7,5,9,7,3,2,9,3,5,9,6,11,1,10,12,12,12,8,5,10,9,4,9,6,10,4,5,10,5,6,7,7,6,11,12,12,9,12,5,8,6,7,10,10,7,12,4,2,9,6,2,7,2,12,2,6,5,8,3,11,10,3,10,10,11,9,12,10,10,7,1,9,2,11,4,3,7,9,2,10,9,5,7,1,11,4,9,1,5,8,8,9,5,8,6,11,2,10,3,12,5,1,9,1,10,10,9,9,2,7,4,9,7,9,8,8,5,7,5,8,10,2,5,12,4,7,5,9,5,11,7,8,10,1,6,10,5,12,5,2,9,4,1,9,11,10,10,11,1,6,12,10,6,2,2,1,2,6,3,10,8,7,6,9,6,4,11,3,11,4,1,5,10,3,2,4,10,3,11,1,11,7,8,6,10,11,6,12,2,6,6,3,12,4,9,5,10,7,2,8,3,9,6,11,4,1,6,7,6,2,7,10,4,2,11,5,8,10,1,8,12,11,5,7,2,1,3,5,10,12,3,1,5,3,5,11,1,3,11,3,10,3,2,10,5,11,11,10,2,11,2,8,10,1,3,2,11,12,8,11,7,5,2,7,1,1,10,11,8,7,1,8,8,3,1,12,7,7,12,8,1,11,9,12,8,6,2,12,3,4,1,1,1,4,4,4,6,2,4,7,2,5,12,7,9,5,2,5,4,5,3,2,5,3,12,4,8,11,1,12,10,12,6,1,4,8,7,4,5,9,12,12,4,6,3,3,7,6,1,4,7,11,2,9,6,11,3,2,12,11,9,10,5,8,12,8,6,1,1,10,11,2,4,6,1,3,10,8,4,7,5,2,11,11,6,8,10,8,5,10,5,11,3,1,12,11,10,8,2,2,1,9,1,11,9,8,11,12,12,8,7,2,9,1,4,6,12,2,5,9,7,4,11,1,2,12,8,11,10,1,10,5,4,3,8,6,10,9,9,6,10,5,3,3,9,2,8,2,7,5,8,7,2,4,6,11,3,10,7,7,8,5,11,1,1,4,7,1,12,1,2,6,3,6,5,8,3,7,10,6,3,6,6,5,3,11,7,8,2,12,5,3,1,6,8,12,6,7,7,2,9,9,6,9,12,4,10,10,2,1,9,3,3,11,12,6,1,9,4,1,1,4,12,1,12,12,5,11,11,12,3,12,7,7,7,4,3,2,12,9,1,2,5,10,12,8,9,4,12,9,5,7,3,12,8,9,5,7,1,10,6,2,10,6,9,11,5,9,5,8,11,6,3,4,10,10,6,7,8,6,11,11,1,11,5,7,9,2,6,7,10,12,10,1,5,4,5,11,5,9,4,8,10,4,11,3,8,7,9,7,7,4,11,3,11,5,1,5,12,11,3,11,10,7,4,4,6,9,2,7,7,10,5,7,7,2,8,3,7,3,4,6,12,12,2,9,12,7,10,5,4,9,12,7,9,2,1,4,10,9,7,5,2,8,10,4,6,3,6,6,8,2,8,6,4,7,1,3,3,7,10,9,3,5,8,4,11,6,9,9,10,5,8,2,10,9,10,4,6,5,4,5,8,5,4,9,3,4,12,2,9,6,3,12,12,8,1,2,1,3,9,3,1,11,1,1,12,7,11,10,8,3,10,3,8,8,4,7,2,5,1,1,12,11,4,2,12,10,10,4,3,5,8,3,12,9,11,11,4,11,9,6,3,9,10,6,11,9,3,10,5,9,3,7,4,4,3,4,12,4,5,4,4,3,6,11,2,12,7,12,8,5,9,5,8,5,5,2,10,11,4,12,7,5,1,4,3,10,3,10,2,6,2,9,1,3,10,12,8,8,2,4,12,9,8,8,9,7,3,2,6,9,3,12,5,5,12,10,11,9,9,11,11,5,3,2,10,1,7,2,4,4,5,7,7,8,6,11,3,5,8,9,11,9,1,5,8,10,9,5,12,10,2,1,12,1,9,5,12,10,11,8,7,10,6,9,8,3,5,4,2,12,7,2,1,7,2,5,11,10,8,2,8,9,3,2,8,6,4,11,9,12,2,12,6,12,5,4,1,9,4,11,5,1,4,5,5,11,5,6,1,7,10,8,1,4,4,3,12,9,6,12,8,4,10,12,10,5,8,5,8,4,11,3,7,6,4,7,3,10,10,3,6,12,3,4,12,4,11,11,9,2,8,12,3,2,11,6,12,7,10,5,7,4,2,2,4,10,12,12,1,1,11,2,12,10,4,10,8,11,8,5,5,12,10,10,12,9,11,4,5,4,11,10,10,5,8,5,3,4,7,8,2,9,5,8,11,6,2,10,11,7,10,2,6,10,8,3,5,5,3,5,2,1,10,10,7,1,2,11,9,12,8,7,1,7,10,6,1,1,1,6,6,3,1,1,4,2,7,12,7,3,10,5,5,3,11,3,4,9,3,7,7,11,11,6,7,9,8,10,8,6,3,4,10,8,1,9,3,4,11,2,9,6,6,5,9,1,4,3,12,5,6,2,5,9,4,10,4,8,8,1,6,1,7,12,2,9,7,3,5,8,4,9,12,8,11,10,2,3,5,3,8,3,11,7,3,9,1,2,9,6,2,10,4,3,1,12,4,1,3,12,12,7,4,11,10,11,5,2,2,7,11,3,5,11,5,6,10,1,4,11,8,5,4,4,8,5,9,11,5,10,11,8,6,11,4,10,11,4,9,12,7,11,10,3,7,3,2,1,9,8,10,8,4,5,5,7,10,10,7,8,1,3,6,4,11,3,4,5,8,10,11,10,7,2,9,10,6,1,4,2,12,3,2,8,11,7,10,10,3,1,10,12,6,11,6,3,7,12,4,12,5,4,9,11,3,6,12,12,10,12,8,3,8,12,8,9,7,1,6,5,9,3,1,9,1,3,10,10,9,2,1,3,11,11,1,2,1,2,4,10,3,9,3,1,7,9,3,9,8,4,5,10,9,12,11,10,4,6,11,7,12,1,7,11,10,2,3,8,1,12,10,11,11,11,1,9,12,12,11,9,7,8,12,1,3,5,1,8,6,11,11,1,6,11,10,4,12,7,9,3,5,2,2,11,9,12,4,12,12,6,7,5,3,10,6,9,7,11,12,} -focus -0.30954924161504 -firstname -"Psuky" -midname -"Nyanynyanuy" -family -"Kipasannzik" -food -{3,2,3,4,} -END_KOBOLD -KOBOLD -genes -{12,7,2,6,10,1,12,12,10,6,6,4,1,3,1,5,11,12,3,1,10,12,9,8,10,8,12,10,1,12,12,10,11,8,3,11,2,12,6,10,5,5,3,4,1,6,6,6,11,5,9,1,12,5,3,2,1,11,6,1,3,1,12,11,5,4,9,9,12,7,8,5,9,6,3,4,4,10,1,7,7,10,2,9,10,9,1,11,7,1,12,5,1,8,5,11,8,10,5,4,5,11,4,8,6,7,12,9,4,2,7,12,4,1,3,4,8,2,6,3,8,8,2,12,11,11,1,8,10,4,4,11,8,11,12,11,8,3,3,5,9,9,1,3,4,6,7,10,8,1,8,4,1,2,6,8,11,1,4,8,12,8,12,8,1,12,5,5,2,7,2,12,4,5,11,12,9,4,5,6,3,1,12,7,8,4,7,2,8,2,7,2,10,8,9,10,1,6,12,2,9,7,6,6,7,11,6,4,3,7,11,12,11,11,2,12,10,8,3,4,7,4,8,8,6,8,2,9,10,8,10,2,11,5,6,12,11,6,11,8,4,10,2,11,3,10,11,3,1,6,10,9,4,2,10,3,11,5,11,2,11,12,3,2,9,10,5,6,8,3,4,10,1,8,3,5,4,10,5,5,1,2,1,1,6,6,10,2,4,3,9,5,10,7,8,8,11,4,6,11,10,12,12,5,4,10,4,4,3,7,12,6,2,4,6,7,2,8,5,7,2,4,5,5,1,2,6,4,5,4,5,8,4,7,12,9,1,3,5,4,7,10,6,8,12,1,11,4,4,8,12,2,7,3,12,4,5,9,2,8,6,1,1,6,1,8,2,6,5,4,1,11,3,7,2,7,1,7,3,10,1,10,3,7,1,9,5,6,11,3,9,6,9,10,4,2,9,9,7,3,11,1,8,5,4,9,9,5,11,1,6,12,2,10,7,9,5,7,5,2,3,6,1,8,11,3,4,12,12,4,12,2,11,12,6,9,9,10,1,3,11,7,7,1,11,10,11,5,11,8,8,5,12,4,10,6,9,5,10,5,10,2,10,12,7,2,11,3,7,5,11,4,11,5,7,11,9,4,5,12,10,11,10,6,9,4,11,8,8,4,8,3,8,9,9,1,3,5,7,11,6,3,6,12,1,7,9,3,6,9,1,5,10,4,7,11,2,2,8,7,6,2,7,2,5,2,3,5,10,10,5,4,1,4,10,10,11,7,10,9,2,6,4,3,4,10,6,1,4,12,3,1,2,4,10,5,3,11,10,9,9,2,9,10,3,8,4,6,1,6,12,2,6,3,5,11,8,7,3,11,10,11,7,10,12,8,12,1,12,9,7,9,11,3,11,5,1,1,10,7,10,11,1,1,11,10,9,1,3,7,4,11,8,9,7,11,8,7,5,11,7,6,3,12,6,11,7,4,1,1,8,1,9,7,8,8,12,10,6,10,12,2,11,2,5,8,4,3,7,4,8,12,4,3,9,8,3,1,10,6,10,12,11,2,11,4,3,7,1,2,7,10,7,8,6,9,3,9,4,11,6,1,1,12,12,12,9,11,6,11,10,11,12,12,10,9,1,11,5,3,3,4,5,2,8,4,5,6,11,3,8,1,5,6,5,2,11,7,1,7,12,5,4,4,9,11,2,12,8,12,4,12,6,11,10,6,3,8,8,6,9,3,3,1,6,12,4,9,6,2,4,2,4,7,8,7,1,10,10,12,12,9,5,5,12,12,7,9,7,11,9,11,9,11,8,1,7,10,4,4,1,8,9,4,6,9,6,12,5,8,8,4,11,2,6,6,8,12,7,5,2,10,7,4,4,10,11,9,4,8,2,1,1,11,6,6,7,2,6,8,12,12,4,1,12,8,2,11,1,10,11,5,12,7,7,9,9,8,9,8,8,2,6,2,7,9,12,3,11,6,7,5,5,8,10,8,11,12,2,7,4,7,5,7,1,1,7,4,8,10,2,7,1,7,5,5,11,5,2,7,11,7,4,8,9,12,2,7,3,12,3,4,7,2,5,6,2,6,10,11,9,7,2,12,4,4,5,5,4,12,7,1,7,3,5,7,3,8,4,2,1,11,10,11,10,8,2,10,7,10,1,1,5,9,12,8,3,7,10,8,11,6,6,2,7,5,1,4,3,3,2,2,9,11,10,3,5,1,2,6,5,5,3,4,6,7,7,12,9,12,11,6,6,11,5,12,5,4,4,7,12,5,9,12,1,5,5,5,4,1,8,11,5,2,2,1,10,11,6,5,5,2,10,7,8,8,10,12,1,12,9,1,8,7,11,3,1,8,5,7,8,2,8,5,3,9,2,1,10,5,8,2,10,8,9,2,7,1,4,8,9,6,2,3,7,7,7,8,8,9,6,12,7,5,2,10,1,9,1,9,12,11,4,6,9,10,1,11,9,6,10,1,8,7,11,1,7,3,2,6,1,4,6,8,1,3,4,7,4,10,9,8,10,1,7,11,1,9,10,9,9,2,11,6,1,11,5,10,8,8,6,10,7,3,4,11,3,9,4,10,11,12,6,5,6,2,3,11,5,4,2,4,7,10,1,7,11,6,1,10,3,5,10,8,3,1,11,6,5,7,8,12,4,4,8,1,1,6,4,11,8,8,12,4,4,5,10,2,12,2,5,5,7,8,9,3,10,1,7,6,2,12,3,4,9,10,9,6,6,1,9,6,7,8,5,10,11,11,8,6,8,10,2,7,10,2,10,2,9,4,4,1,7,9,1,12,4,2,7,6,12,11,11,11,1,8,6,12,10,5,9,9,11,11,12,11,7,7,2,9,2,12,9,9,9,10,10,6,9,2,12,2,12,3,5,11,2,7,2,3,10,8,9,7,1,2,3,2,2,6,8,6,11,4,5,6,10,1,3,4,10,7,3,9,3,4,12,3,6,1,2,9,7,3,4,7,12,5,12,8,6,8,2,7,12,6,1,10,9,12,6,3,5,11,11,6,9,10,1,2,11,8,11,7,6,8,4,12,2,2,6,5,10,8,4,9,12,4,2,10,9,10,1,12,4,6,11,3,2,12,4,1,2,1,9,4,2,1,11,9,9,11,6,6,2,2,8,1,5,10,2,7,8,11,10,8,10,2,2,10,7,3,9,8,5,5,4,6,4,6,12,1,2,5,5,2,11,3,6,4,5,10,4,9,10,12,3,12,1,6,6,4,6,8,4,2,7,1,4,7,11,6,10,7,7,5,2,4,10,3,7,1,10,7,2,2,6,4,8,3,11,10,12,7,8,4,7,6,11,11,2,5,10,3,1,9,2,2,7,10,7,7,2,3,3,11,4,7,1,2,7,9,6,5,4,7,12,7,5,12,5,9,3,12,1,8,12,1,8,1,12,7,2,4,5,2,7,6,7,4,7,7,12,3,4,4,1,1,4,10,12,3,1,5,6,7,1,3,10,6,5,10,1,4,6,3,12,1,10,7,2,4,8,8,11,11,7,6,10,3,9,2,6,8,8,9,2,7,5,3,10,1,7,11,2,12,1,5,12,10,3,2,8,4,5,2,7,11,10,3,8,6,5,5,9,7,10,8,10,11,9,7,3,1,8,5,10,3,8,3,10,10,3,9,12,8,9,1,8,9,6,11,7,4,4,12,9,7,10,6,1,8,9,5,12,12,3,9,5,5,12,11,5,12,1,2,4,12,3,9,3,12,11,12,2,9,11,11,1,1,10,12,12,4,7,10,8,4,8,9,7,7,10,5,6,4,6,1,12,11,11,9,7,5,6,9,12,10,12,11,10,10,7,10,10,12,8,7,10,11,8,7,10,9,1,11,4,1,10,9,6,3,8,7,8,9,5,2,8,6,11,6,10,9,12,7,8,8,2,4,3,9,3,12,11,7,9,9,1,3,10,5,1,7,2,12,1,10,2,1,12,5,6,8,4,2,4,12,8,7,1,1,7,10,1,11,8,1,10,1,3,5,2,12,3,3,1,6,3,1,1,6,4,4,1,4,12,10,9,1,8,10,10,6,5,8,4,3,4,6,5,1,1,6,10,12,3,2,1,4,2,9,4,8,10,9,5,9,1,6,11,6,1,4,7,3,7,2,10,9,2,9,1,7,1,9,3,7,5,5,3,8,9,1,9,12,8,2,2,2,12,7,4,7,3,10,8,10,4,4,9,2,12,6,6,7,6,3,2,6,7,4,2,7,3,10,9,5,9,8,10,1,4,3,10,9,4,3,9,12,11,1,10,11,7,9,6,5,12,8,6,4,6,5,8,9,2,8,2,10,2,9,8,6,12,12,3,1,7,5,4,7,9,6,12,8,9,1,5,3,5,2,8,6,10,10,4,3,4,5,2,4,7,9,11,7,4,2,11,11,8,9,11,2,2,2,10,5,1,4,12,6,9,8,} -focus -0.094868987074194 -firstname -"Itaaki" -midname -"Natanyianuy" -family -"Ptasfnzik" -food -{} -END_KOBOLD -KOBOLD -genes -{5,7,10,6,4,9,11,3,12,1,4,5,2,12,12,12,5,8,4,2,6,1,3,11,5,9,5,11,4,8,9,1,4,12,1,8,2,10,6,12,5,9,8,6,2,1,10,11,5,9,10,5,6,6,7,10,5,4,7,12,8,7,9,6,7,7,8,6,6,7,2,10,10,10,4,10,11,5,12,1,7,9,5,6,3,6,7,1,7,12,4,8,1,1,11,6,1,8,12,11,2,2,12,12,9,7,7,11,7,8,6,4,8,9,5,5,9,5,10,1,1,6,5,4,2,11,8,7,3,11,6,11,12,10,1,11,6,12,11,6,5,9,3,5,8,10,7,9,9,3,9,11,8,3,4,2,6,5,9,3,10,1,5,3,8,1,5,5,7,9,10,7,12,8,9,1,1,6,3,1,3,3,2,12,3,4,2,10,9,10,9,8,9,11,2,11,8,3,1,8,7,11,5,7,6,8,6,10,10,8,1,2,10,12,11,8,3,11,8,10,6,3,1,5,4,1,7,4,1,1,10,4,1,10,4,8,6,12,10,4,8,11,6,7,6,1,3,6,7,2,5,10,12,8,6,4,12,6,5,7,10,12,5,5,7,3,9,2,10,3,4,1,6,9,2,8,12,1,10,9,1,7,12,9,10,2,2,12,10,8,10,7,1,7,3,11,3,3,3,6,10,8,3,6,12,9,2,11,4,6,12,9,5,8,12,5,1,1,8,9,1,1,2,10,7,6,7,2,8,12,3,9,8,8,3,6,12,4,4,11,2,2,8,3,8,11,3,12,4,1,9,7,10,8,3,3,7,9,3,2,7,2,10,5,8,1,11,10,2,2,7,11,9,2,8,5,12,1,11,2,7,3,3,8,12,3,10,9,11,6,11,6,2,4,2,7,6,10,10,9,10,11,2,7,7,8,11,3,7,10,11,6,6,4,10,7,6,4,8,10,5,10,10,7,9,12,10,4,5,8,11,3,4,5,5,9,10,4,7,12,11,7,5,2,4,8,1,4,6,2,4,11,11,10,4,6,5,12,12,11,10,6,8,4,5,9,1,9,10,4,8,6,9,6,10,5,2,12,1,9,7,5,5,5,4,8,1,8,12,6,7,5,7,9,5,9,6,6,6,8,12,3,7,9,1,8,9,3,5,5,2,9,7,7,10,5,12,2,9,12,12,6,11,2,12,8,10,8,5,9,11,2,10,9,6,12,4,10,5,8,8,3,1,9,1,11,12,2,9,11,2,6,10,11,1,11,5,11,8,3,9,2,5,9,7,6,5,6,11,5,1,3,11,10,12,7,5,9,6,7,9,1,11,9,3,7,6,6,8,10,3,9,10,1,10,11,10,10,7,3,8,10,8,11,7,12,11,10,1,12,10,5,4,3,12,4,9,1,12,1,12,7,9,4,10,4,6,2,2,7,1,5,3,1,11,5,4,4,10,8,2,2,9,9,2,12,9,4,5,1,1,1,8,4,4,11,8,8,1,8,1,6,12,2,6,4,4,11,9,9,6,9,8,9,7,1,3,10,7,4,12,2,5,12,7,5,2,11,1,7,11,1,2,1,6,3,12,10,1,6,9,12,4,9,5,8,5,6,3,5,2,2,5,10,2,10,2,3,4,7,7,11,8,1,4,5,8,8,6,8,3,8,6,9,4,2,5,8,7,2,6,10,5,3,4,9,6,1,9,10,8,9,12,9,5,6,10,6,7,8,6,2,9,8,3,7,12,1,10,3,8,3,4,5,11,10,6,4,4,2,5,6,11,5,12,7,11,10,8,3,3,11,9,12,3,1,4,7,5,1,12,5,9,1,2,11,6,12,2,1,4,10,7,7,12,5,11,7,9,2,11,4,8,3,10,11,9,6,8,5,12,6,4,2,10,9,12,11,3,7,4,3,3,10,9,2,9,3,10,4,8,3,11,9,8,8,12,8,9,8,5,2,11,8,9,8,7,6,12,8,4,2,7,12,9,12,5,9,3,12,5,5,4,10,10,12,2,12,1,9,1,8,10,12,7,3,4,8,3,9,2,12,6,2,1,12,11,2,12,2,4,8,10,4,3,2,7,12,6,1,7,10,8,8,3,8,10,1,7,12,10,8,1,4,11,12,7,6,11,2,1,4,5,3,2,12,2,7,12,11,5,5,5,2,12,2,7,3,9,12,2,12,2,8,5,8,10,6,4,9,12,2,1,6,12,2,7,11,1,12,4,7,11,4,2,4,8,7,11,11,1,7,5,3,3,2,3,6,7,8,7,9,12,2,7,8,4,5,7,8,5,11,8,1,5,5,2,1,3,4,5,11,3,1,10,2,8,1,8,3,6,8,3,4,8,11,10,4,12,10,7,6,7,1,5,3,5,10,4,8,7,2,10,8,10,5,9,5,7,9,11,3,9,2,10,5,10,12,1,12,1,3,6,5,10,8,6,6,8,4,9,12,11,4,1,1,9,8,7,3,5,11,9,10,12,9,8,4,4,4,3,6,1,2,2,10,5,8,1,1,1,2,1,3,11,4,5,2,12,11,12,7,10,6,5,1,9,6,5,10,4,12,5,7,3,11,3,12,1,1,3,5,10,3,6,10,5,11,12,2,3,8,1,9,4,4,8,8,1,5,7,9,9,9,2,10,1,6,8,8,3,8,12,7,7,10,7,1,5,3,10,9,11,2,7,4,3,6,9,1,9,9,6,5,7,2,8,8,11,7,1,3,11,12,6,1,1,5,6,2,5,6,5,11,8,8,7,9,7,12,9,8,7,9,6,5,1,10,9,12,12,12,3,7,2,7,12,5,4,2,9,3,1,9,1,5,7,12,2,8,10,6,2,7,10,8,6,9,5,5,9,4,8,6,11,6,11,9,3,11,9,9,5,6,2,5,8,2,7,1,11,10,9,12,2,8,6,2,7,2,9,10,7,1,6,10,6,10,2,1,8,4,6,4,6,4,9,1,5,1,10,3,8,1,6,9,9,11,7,1,3,12,1,9,12,5,7,12,7,1,1,6,1,9,2,1,11,9,3,6,6,10,11,11,5,10,10,4,6,12,8,1,12,3,5,3,4,7,1,9,5,4,3,11,5,8,3,4,1,12,12,7,8,2,3,9,9,5,6,12,3,11,5,9,1,9,5,5,8,10,2,3,5,9,7,9,11,9,2,2,1,1,12,3,10,8,5,9,2,2,4,2,2,1,1,12,7,6,4,8,9,11,1,8,11,12,1,7,9,2,1,1,6,3,1,4,9,2,2,7,7,6,10,8,5,12,2,5,11,8,8,12,7,12,1,3,10,8,12,7,12,6,12,7,6,6,9,1,2,6,3,7,12,10,9,5,11,10,1,10,11,9,9,5,6,1,6,4,3,11,5,8,10,6,11,2,4,10,12,7,11,12,9,5,7,4,12,7,5,3,9,10,3,10,8,4,10,4,4,4,12,1,2,5,2,7,9,1,12,1,2,7,6,6,5,8,7,8,2,9,8,10,12,8,2,11,3,8,9,6,10,3,12,2,2,2,10,5,5,8,10,4,1,4,6,1,10,12,2,8,7,11,5,9,9,3,5,6,8,6,7,4,1,5,8,5,2,8,12,7,5,1,5,10,12,8,3,2,9,4,4,11,3,7,11,3,6,4,9,12,1,3,11,7,3,2,2,12,7,10,5,5,10,7,10,5,12,11,1,2,4,4,8,7,5,7,5,4,4,12,4,7,10,7,8,10,5,7,11,6,12,11,8,4,7,12,5,1,5,7,7,3,7,7,11,5,10,8,7,2,5,5,4,10,11,2,8,12,4,7,11,7,12,6,11,4,1,5,7,11,11,7,2,10,5,8,9,10,3,2,6,6,8,3,5,2,2,12,12,4,11,9,2,2,7,11,2,11,1,7,1,5,9,1,10,10,8,6,6,12,12,5,4,5,1,11,12,3,10,1,5,7,7,10,7,10,10,5,3,12,2,5,2,5,2,10,1,2,5,5,5,6,1,3,5,4,4,1,2,9,7,7,5,9,8,4,3,6,3,10,7,5,6,7,5,12,1,8,10,10,3,9,12,6,12,3,1,11,1,2,1,6,7,5,8,9,7,6,10,6,8,12,11,7,8,8,8,1,2,9,5,5,7,3,4,1,1,7,5,9,11,3,3,12,6,1,11,1,4,1,8,7,4,7,12,9,9,8,7,4,4,12,12,12,9,12,1,11,6,1,11,6,4,6,9,5,11,1,4,3,8,9,9,11,10,10,10,1,1,3,10,2,3,5,9,3,9,2,4,11,7,5,10,10,1,5,9,9,4,8,2,9,6,7,9,5,10,10,5,3,1,3,10,3,4,11,11,8,3,9,11,12,7,1,3,12,7,11,2,11,2,6,4,9,3,1,9,11,5,1,5,1,9,4,} -focus -0.081013066505835 -firstname -"Zkuki" -midname -"Nykukuzanuy" -family -"Kipasannzik" -food -{} -END_KOBOLD diff --git a/training/trained_kobolds_old.txt b/training/trained_kobolds_old.txt new file mode 100644 index 0000000..36b0ad4 --- /dev/null +++ b/training/trained_kobolds_old.txt @@ -0,0 +1,70 @@ +KOBOLD +genes +{8,10,9,4,1,5,9,11,7,8,2,10,12,8,4,8,2,7,10,7,3,5,4,2,8,3,6,4,5,4,5,11,8,4,3,11,8,5,4,7,12,7,10,2,12,4,10,8,2,9,11,4,6,2,5,3,1,12,8,2,11,8,2,4,8,2,6,1,11,7,9,7,11,1,11,1,12,8,8,5,8,7,3,10,7,11,5,3,7,4,5,4,6,6,3,3,3,8,6,1,5,8,5,5,7,8,12,3,4,1,10,5,1,10,8,6,4,8,7,4,4,1,11,10,9,5,4,3,4,6,9,4,3,10,3,5,9,8,7,8,11,1,4,5,9,10,12,10,1,4,8,4,4,8,1,7,5,6,10,8,2,7,5,9,2,8,6,1,9,10,9,12,10,2,11,9,11,2,11,11,7,10,6,3,4,6,7,11,11,3,10,12,5,7,10,10,12,11,3,5,7,8,2,9,8,6,10,3,8,10,12,2,11,8,1,1,4,6,6,2,6,12,10,9,3,6,12,6,10,3,5,3,5,10,1,10,11,12,9,8,11,12,10,3,5,7,4,10,6,2,11,5,12,8,12,10,3,5,1,4,5,9,6,5,8,7,10,2,2,1,10,7,4,4,3,10,10,9,3,2,3,7,5,1,3,9,11,12,10,7,11,5,5,5,1,2,11,1,8,6,5,5,6,4,11,6,8,5,8,12,4,11,10,9,4,2,6,10,3,4,10,1,12,9,7,5,3,1,11,2,12,11,12,12,8,6,1,11,7,6,7,2,3,1,9,6,11,6,11,1,11,7,4,11,9,4,7,6,4,11,4,8,4,10,11,12,5,3,2,12,4,4,11,5,2,4,3,11,10,11,9,11,7,9,2,8,5,7,1,4,4,10,5,12,5,8,5,11,3,12,12,6,2,12,6,10,10,11,11,8,6,9,5,4,1,7,2,12,3,3,10,11,9,2,10,7,7,3,7,10,8,5,11,8,9,10,7,1,6,4,10,10,4,8,6,4,3,3,8,5,3,5,11,5,10,2,4,1,6,6,5,9,8,10,9,3,5,1,9,9,12,3,8,6,7,9,10,2,12,11,2,9,9,7,9,1,6,1,1,7,3,2,5,8,7,12,7,6,11,11,12,6,1,7,2,8,5,10,3,4,6,2,9,10,3,12,5,9,8,4,12,10,9,10,11,5,7,4,8,7,2,8,1,10,6,9,7,3,7,8,7,12,11,7,8,1,3,11,11,10,8,6,1,4,5,9,5,10,1,12,12,12,11,11,12,6,11,5,4,8,12,4,1,1,7,8,9,7,3,11,9,6,9,6,2,11,7,2,6,6,8,4,1,7,12,9,4,2,3,11,12,12,2,12,11,7,1,2,5,6,1,4,5,1,4,12,4,6,8,3,6,6,12,2,9,7,5,1,12,4,6,3,10,4,10,10,5,9,8,6,7,6,4,1,10,1,4,10,2,6,12,2,9,11,4,9,2,1,8,7,3,10,11,5,6,7,7,7,12,8,12,9,9,11,12,8,8,9,9,10,9,4,6,12,9,6,12,12,8,7,12,10,11,6,5,11,12,8,1,4,7,3,4,4,10,5,3,9,2,9,11,7,1,10,1,2,5,2,1,2,2,11,3,2,2,10,5,4,2,7,10,11,9,8,9,4,4,5,9,12,3,10,1,11,10,7,1,1,8,8,7,9,7,6,3,11,6,1,7,4,12,7,6,2,8,9,5,12,6,8,7,9,6,11,12,12,11,8,10,6,12,7,12,2,5,8,11,9,5,9,9,5,1,8,10,9,1,8,7,5,1,12,4,9,1,12,3,7,8,5,2,2,1,6,10,11,6,11,8,3,10,11,9,6,2,7,12,10,9,1,3,10,9,10,3,5,10,7,6,11,8,5,3,4,6,10,12,7,10,1,1,6,4,5,5,10,4,12,12,9,8,11,9,1,3,10,8,7,4,6,10,6,5,4,12,2,7,2,7,3,3,2,8,4,4,10,8,8,7,12,5,10,4,10,4,6,9,6,5,5,4,6,2,12,12,3,5,4,3,9,2,7,10,5,12,4,12,12,8,7,4,9,4,6,8,2,7,6,1,3,12,1,7,12,5,3,2,3,5,6,10,7,4,8,3,3,2,9,11,3,4,7,1,9,8,1,10,1,6,7,5,9,1,3,7,1,2,1,7,9,10,4,7,10,5,3,4,1,3,5,6,6,7,6,4,8,11,6,1,6,5,11,10,2,11,5,1,9,8,4,9,12,7,11,10,11,6,5,2,3,3,1,1,3,3,2,12,8,4,6,10,4,5,5,6,5,11,5,11,5,1,12,12,9,3,4,1,12,10,11,6,3,3,9,3,3,9,12,8,2,4,4,8,12,3,1,3,9,11,3,2,6,3,5,2,11,9,12,1,8,8,8,1,12,10,1,12,4,7,4,4,6,7,3,9,7,4,12,8,1,7,3,1,11,12,4,6,7,11,9,5,4,3,8,1,4,6,8,11,11,11,9,5,4,8,8,7,10,6,11,12,12,1,10,12,7,4,1,7,5,2,6,4,11,10,7,10,4,10,12,9,7,6,12,7,3,9,3,4,7,6,3,4,4,5,7,5,10,7,8,12,8,11,4,5,11,11,8,7,10,7,10,10,10,11,2,4,10,4,4,9,11,10,6,7,9,3,1,2,12,11,8,3,1,3,5,1,9,8,11,7,10,1,11,3,10,11,6,6,8,9,10,3,10,11,10,10,8,6,5,10,2,5,4,6,12,8,11,7,6,1,4,8,11,10,12,4,12,2,1,7,4,10,10,12,10,7,1,12,2,10,9,9,1,7,5,5,10,7,2,11,4,9,2,1,8,5,4,9,8,8,2,4,12,8,12,12,6,5,9,11,9,7,9,11,12,7,1,3,6,2,10,1,11,2,8,12,5,1,6,5,3,8,12,10,2,9,10,11,2,1,3,10,8,6,9,1,6,2,4,7,10,8,4,1,9,9,7,3,12,6,5,11,3,7,11,11,8,11,4,7,9,12,10,4,6,2,8,11,10,1,12,8,10,5,1,12,12,7,4,11,10,11,9,3,4,9,9,9,10,11,3,5,2,10,10,8,12,2,5,4,5,6,10,5,3,5,11,1,9,10,8,5,12,8,12,12,8,6,2,1,7,6,9,12,3,4,2,7,5,1,1,5,11,11,1,2,12,1,12,5,1,6,1,9,10,12,5,8,2,5,7,7,5,12,5,12,3,10,4,11,6,6,9,8,10,1,3,3,11,4,4,8,6,8,12,2,12,8,8,1,8,10,10,1,2,5,11,1,5,9,3,11,5,10,2,6,11,12,11,8,12,6,7,10,4,4,7,1,11,8,8,8,2,6,2,11,4,8,3,12,11,10,2,8,4,8,2,7,8,9,1,9,3,4,12,1,10,4,4,1,5,2,12,5,4,8,4,10,6,11,2,6,2,10,5,2,9,5,5,12,2,9,3,10,7,3,2,2,10,3,3,5,10,5,2,12,2,1,7,10,8,7,10,12,12,8,3,4,12,11,4,2,7,7,5,4,1,3,2,11,7,8,8,12,10,4,9,11,4,12,9,9,8,5,11,7,6,7,6,7,11,10,1,4,5,9,12,6,3,7,3,10,3,10,9,11,7,6,5,7,6,11,12,9,2,11,9,3,3,8,4,10,6,6,5,5,10,9,8,10,6,5,11,12,3,7,7,4,7,8,5,12,11,6,12,10,11,6,4,2,10,4,8,2,10,6,5,11,9,11,2,8,6,12,4,9,7,5,10,2,11,5,12,7,9,9,11,7,7,4,9,11,9,1,9,4,10,10,7,10,11,10,12,5,8,5,11,3,9,10,4,4,10,5,3,9,11,10,12,10,12,2,7,6,2,4,12,5,9,3,7,3,8,10,11,7,6,1,10,3,11,7,10,10,1,8,2,8,1,8,1,2,4,3,3,1,12,4,9,2,5,10,9,7,1,5,9,10,6,2,4,9,11,8,8,10,9,7,2,9,6,5,2,7,12,11,10,6,7,3,7,11,5,3,11,6,12,12,3,12,1,10,9,8,2,2,12,3,6,9,11,7,12,1,9,10,5,7,6,11,10,4,11,11,12,10,12,12,9,8,7,2,3,2,5,11,1,4,2,9,10,10,11,3,11,12,4,2,12,11,2,11,9,10,10,10,3,6,1,4,3,3,10,8,5,9,3,10,5,6,11,12,5,8,12,1,3,10,8,1,1,1,4,8,8,9,8,7,4,12,6,9,1,5,2,1,6,6,12,11,4,10,10,2,10,8,7,12,9,6,3,1,12,7,12,3,9,9,12,11,8,1,4,11,10,2,5,2,7,4,8,7,8,10,9,7,6,11,7,2,3,7,8,} +focus +0.48579799645271 +firstname +"Panyaku" +midname +"Fpaysanuy" +family +"Tusukanzik" +food +{} +END_KOBOLD +KOBOLD +genes +{11,12,8,5,10,9,9,5,9,11,6,11,10,11,9,10,2,6,4,6,12,9,12,9,7,6,1,8,10,3,8,10,2,8,5,12,4,6,11,5,1,5,10,8,12,12,1,9,6,12,1,1,4,2,5,11,7,7,2,2,11,3,11,5,7,2,11,12,11,8,4,11,1,7,1,5,7,3,11,8,7,10,9,4,1,7,4,6,12,8,11,11,4,3,9,1,3,1,1,5,2,5,10,7,6,2,12,1,4,4,6,11,2,2,8,3,7,9,2,1,5,6,10,3,9,9,5,5,1,11,11,10,8,3,6,8,5,11,5,10,1,10,6,10,5,7,1,10,5,5,11,6,9,10,3,2,4,2,12,11,1,7,2,7,2,3,12,3,3,10,11,6,8,2,9,5,5,5,1,6,2,6,10,6,8,4,7,10,6,6,7,7,9,4,4,6,5,12,12,11,10,10,11,7,9,7,3,10,2,10,6,12,5,4,10,4,5,2,11,9,8,4,6,4,12,8,6,5,7,6,5,12,8,7,5,12,11,12,6,5,6,12,12,8,12,4,10,2,5,8,12,6,7,10,12,2,11,5,2,10,4,1,9,6,8,7,10,2,8,6,4,8,10,3,7,7,3,8,12,11,3,7,8,8,8,1,2,8,9,7,3,6,9,6,9,6,8,5,11,2,4,4,9,12,11,6,10,11,11,1,7,6,3,7,6,8,11,5,3,4,3,3,9,1,11,3,2,11,4,12,6,5,9,4,11,12,7,11,1,5,12,5,3,4,1,11,3,12,3,2,5,10,10,1,12,2,1,5,10,4,7,3,4,7,2,1,2,7,8,10,3,7,5,5,4,5,9,1,2,3,7,12,10,3,3,10,2,4,3,10,5,1,3,9,6,9,2,6,6,8,4,5,6,8,7,5,7,5,6,6,3,6,9,1,1,3,10,6,5,5,12,12,7,5,9,10,8,1,6,3,8,6,4,2,10,9,5,7,12,6,11,6,9,6,10,11,1,2,9,10,8,10,7,10,11,4,8,2,6,4,2,9,6,3,8,9,8,9,5,6,1,1,3,5,2,12,10,9,2,2,11,7,8,4,3,10,12,2,6,4,1,4,2,2,8,2,11,4,10,12,11,11,1,2,2,1,11,9,3,10,2,1,8,5,6,4,4,3,11,11,7,9,4,5,2,4,1,12,12,1,12,1,7,11,6,2,12,3,7,11,5,7,7,2,11,6,9,2,3,10,10,4,9,1,9,9,4,11,7,6,9,3,4,1,5,10,12,12,2,11,2,12,5,1,1,2,10,10,3,11,12,9,1,1,4,12,6,8,10,10,12,7,3,10,11,5,3,1,5,6,2,12,11,2,7,12,7,8,5,11,4,12,12,3,6,12,12,1,5,8,9,12,3,11,3,3,11,5,8,1,12,5,8,11,9,8,7,5,3,3,7,10,12,6,11,7,1,11,8,7,8,10,7,3,10,12,9,5,1,11,10,10,9,2,9,2,5,6,2,9,7,4,5,12,10,9,2,7,8,3,7,11,9,6,9,4,2,9,7,1,9,7,1,7,6,1,1,4,7,10,10,4,3,11,4,10,11,10,9,9,2,12,8,3,11,6,8,11,6,10,4,12,7,4,8,12,12,5,3,12,1,2,11,9,5,6,5,2,6,3,3,5,4,2,11,11,1,1,2,6,12,10,6,9,4,7,10,2,3,2,10,5,9,2,5,11,1,7,11,4,6,4,10,9,2,8,4,9,1,8,4,1,6,12,1,12,7,12,6,2,6,5,3,10,1,1,11,5,12,12,2,5,4,4,3,3,11,5,12,1,10,5,2,5,3,7,12,8,8,2,5,12,9,9,10,1,9,2,5,11,2,6,7,5,1,1,4,9,1,10,5,7,8,3,12,11,1,3,11,10,11,11,1,5,2,7,2,5,1,12,1,1,12,8,9,1,6,4,4,4,2,3,1,1,5,7,12,8,9,6,10,1,9,6,2,2,9,1,6,4,9,4,5,7,8,7,6,8,3,1,8,4,8,3,12,4,11,4,2,9,4,10,9,12,11,4,10,4,6,6,5,11,7,10,10,11,5,5,3,3,9,11,10,2,10,2,5,8,4,8,3,2,5,1,8,7,1,2,3,11,8,4,5,11,5,9,2,7,6,9,3,8,12,11,6,7,9,6,1,4,4,3,1,10,7,7,1,8,7,4,9,6,9,7,5,8,2,8,2,1,11,9,12,8,8,12,10,2,3,5,1,4,9,7,4,7,9,12,8,1,3,3,8,7,10,2,5,1,1,7,5,4,12,2,2,4,5,7,10,3,1,7,11,12,10,6,3,1,1,11,5,3,12,3,3,4,12,2,8,7,6,5,6,9,5,11,8,7,7,9,12,8,11,10,3,5,3,1,6,5,1,5,7,4,8,5,8,8,4,12,2,5,5,5,12,4,12,6,12,3,9,12,12,3,11,7,1,10,8,2,12,9,5,9,7,5,4,4,1,12,8,5,12,12,9,4,3,11,12,10,10,9,9,1,5,8,9,6,2,5,4,7,6,1,4,2,3,2,2,5,10,9,3,6,1,10,6,10,10,10,1,6,6,3,12,4,6,5,9,1,4,8,11,1,7,2,12,10,7,6,10,12,12,1,2,3,7,2,3,3,8,12,7,12,12,7,11,12,2,8,11,10,4,3,5,5,7,10,11,2,12,9,3,12,1,1,5,10,8,8,3,4,1,7,8,12,10,7,2,5,12,4,6,2,6,1,11,3,12,10,2,3,12,3,4,11,1,8,5,4,7,6,12,2,1,2,1,6,2,9,7,9,3,4,11,8,5,10,5,2,3,6,7,8,12,2,2,4,8,9,6,1,5,11,9,5,1,3,12,7,9,8,12,7,6,5,3,4,3,7,10,4,12,4,2,6,1,12,10,11,1,4,11,11,8,11,4,11,11,5,4,10,4,9,7,4,6,2,3,10,3,1,1,2,5,6,9,11,4,11,8,5,11,11,8,7,12,9,3,12,3,4,7,1,12,10,9,8,4,4,8,9,11,9,11,1,6,8,3,3,7,8,5,1,2,2,12,9,7,9,4,2,10,11,8,4,1,9,8,1,7,4,7,1,6,2,7,5,7,9,12,8,4,12,12,3,11,11,10,4,3,4,10,6,11,5,10,11,8,1,9,6,3,8,4,3,3,10,9,12,12,9,2,10,11,6,5,1,5,8,8,8,7,10,5,6,4,8,12,4,10,2,4,6,11,5,2,6,7,1,7,11,3,10,6,9,6,12,8,7,3,11,7,2,4,9,9,11,11,8,2,10,9,10,8,3,5,12,8,12,8,11,7,10,6,3,8,9,8,2,5,12,1,2,11,3,6,9,6,3,9,1,5,1,4,4,3,3,8,11,7,8,1,9,4,1,12,4,4,5,9,11,2,12,10,3,12,7,10,4,3,8,11,12,5,1,2,7,4,6,12,2,2,11,3,10,8,5,11,3,12,4,11,11,3,8,6,12,4,11,1,2,10,8,3,10,1,4,10,2,9,10,11,10,3,5,11,3,3,8,7,10,10,10,8,3,3,4,2,6,4,3,2,12,3,3,11,5,8,4,1,2,4,4,2,7,9,11,11,4,3,5,6,9,4,12,12,5,5,6,10,3,10,11,7,11,11,10,3,9,8,4,8,2,6,11,1,8,8,7,3,3,10,2,10,10,6,3,5,7,6,7,10,12,9,3,11,4,8,8,8,9,9,12,7,4,9,4,9,3,9,10,10,11,3,5,11,9,5,6,9,9,2,5,4,9,5,8,8,3,6,4,8,11,7,8,5,12,1,9,6,2,9,3,9,11,8,3,5,7,10,2,9,1,8,3,12,10,2,8,10,8,11,9,1,2,11,11,7,9,4,11,10,8,12,6,3,3,1,6,2,11,12,11,5,6,10,3,6,10,7,11,2,3,1,7,4,10,1,4,8,8,9,12,11,1,6,7,12,11,12,9,3,11,9,12,3,3,11,4,3,5,9,7,9,12,3,1,11,3,1,11,4,10,2,9,12,2,6,2,3,9,1,11,4,4,6,11,5,2,8,1,8,10,1,5,8,1,1,8,6,11,2,10,7,5,5,4,4,6,11,8,8,8,12,10,3,6,5,5,10,7,7,7,4,3,11,7,2,4,9,9,11,1,8,6,5,10,11,12,4,9,6,4,2,5,10,10,4,11,5,8,3,12,12,3,9,4,12,9,12,5,5,10,3,2,1,1,8,2,9,10,11,11,10,12,2,11,4,7,2,12,9,5,10,2,6,2,12,9,5,4,8,4,11,2,8,10,2,8,4,1,11,6,2,8,1,4,8,11,1,4,3,6,9,3,2,12,4,11,6,7,11,3,} +focus +0.30458915682204 +firstname +"Kasituku" +midname +"Uukupanuy" +family +"Nainchnzik" +food +{} +END_KOBOLD +KOBOLD +genes +{12,2,9,10,10,5,3,4,5,2,9,4,11,11,8,2,2,12,3,2,10,3,9,3,11,1,6,11,6,4,7,4,10,7,3,9,4,4,8,6,1,11,2,6,5,3,12,1,9,3,6,11,8,7,7,3,8,1,12,7,9,12,11,12,9,3,5,3,9,10,9,3,12,11,6,1,7,3,8,7,3,7,4,11,4,10,6,11,6,9,8,6,7,12,5,11,11,9,1,4,7,8,8,11,10,2,1,4,4,12,9,12,2,2,11,8,12,1,11,5,7,3,12,12,6,8,7,8,6,11,8,6,1,12,9,8,7,4,5,5,5,5,5,1,5,6,6,1,3,2,11,9,4,4,4,8,4,4,6,1,1,9,1,3,12,12,8,2,6,9,11,8,9,5,5,9,6,4,11,2,2,6,12,4,12,9,3,1,4,4,6,12,11,11,2,6,7,3,7,2,1,7,12,9,3,6,9,9,8,9,6,5,1,6,8,5,3,7,10,1,2,2,8,10,1,11,6,6,3,5,1,4,8,11,3,11,11,12,6,2,8,4,10,12,4,6,9,10,9,10,4,3,5,3,4,4,12,4,1,10,12,2,12,8,4,2,12,7,10,5,4,3,2,3,10,9,6,12,4,2,1,8,8,1,12,12,11,3,7,9,12,6,4,1,6,12,11,6,1,11,5,11,7,9,5,9,8,3,10,4,2,3,1,7,6,3,7,10,4,1,11,3,9,6,4,5,6,9,8,2,5,10,1,12,11,12,4,8,3,9,11,4,9,12,9,7,4,8,6,6,4,10,12,5,3,1,7,8,4,5,11,3,4,5,8,9,2,5,5,11,2,3,5,6,2,1,8,11,9,7,7,9,7,8,4,9,11,5,4,9,2,1,4,8,5,11,6,11,2,12,2,8,9,6,9,6,12,5,3,1,2,9,3,5,5,9,12,9,2,6,4,11,1,10,1,12,12,6,4,10,10,9,11,3,4,9,5,11,5,11,6,7,11,9,10,5,3,5,6,6,3,7,4,6,1,7,11,6,4,12,3,11,11,5,6,8,5,8,9,12,12,10,8,2,4,10,12,11,10,4,4,9,2,9,10,5,7,5,3,2,1,11,4,2,11,2,4,2,10,11,2,3,1,5,6,6,1,3,3,3,7,2,5,9,12,7,3,5,12,5,1,8,4,4,2,2,7,10,5,1,11,1,12,7,6,9,7,4,1,7,4,10,4,10,4,12,1,6,12,3,1,5,6,10,1,9,4,7,2,3,4,3,3,11,1,2,2,5,10,8,12,3,8,1,5,8,10,1,2,4,7,7,1,8,9,6,12,1,10,6,11,3,9,9,1,5,10,11,3,9,5,9,2,10,4,2,5,1,9,7,9,9,8,8,9,10,12,11,4,5,8,1,10,10,9,9,5,3,11,2,9,5,11,7,3,2,9,10,6,5,2,1,10,5,10,9,4,8,2,1,8,1,8,3,8,8,1,9,11,11,7,12,7,12,8,7,2,9,12,12,10,2,4,4,3,3,6,7,3,5,9,6,2,2,4,4,10,6,8,6,10,6,1,11,10,7,2,2,6,2,3,3,12,5,9,8,9,6,4,5,4,1,5,5,2,5,12,7,11,5,4,12,5,8,9,12,9,12,11,9,4,12,2,11,2,9,4,10,4,2,1,10,9,8,10,12,5,7,7,9,12,5,4,12,8,8,8,5,11,4,8,10,12,5,1,2,6,4,7,2,1,1,5,4,4,11,6,2,10,5,9,10,9,5,7,2,11,8,6,5,8,9,3,9,9,4,11,5,1,5,3,8,4,7,12,9,10,3,7,3,3,8,1,3,1,5,5,10,1,12,8,5,2,12,7,4,8,7,7,1,4,7,9,2,8,6,10,9,10,11,11,8,9,3,8,8,10,4,6,5,11,9,4,3,11,7,4,1,5,2,1,8,8,11,6,8,2,6,1,10,7,7,1,8,7,3,7,2,5,2,1,10,7,6,12,2,12,3,4,5,1,8,2,12,2,7,2,9,9,4,4,12,2,7,12,10,11,10,11,8,10,2,9,12,10,4,10,1,4,10,1,11,9,8,2,9,1,3,3,11,9,6,10,12,10,9,4,4,12,10,8,1,11,10,3,9,12,7,8,7,4,1,4,4,2,10,5,6,7,7,12,9,12,6,10,8,1,6,3,1,7,1,10,3,5,6,5,8,1,5,1,2,8,10,9,11,3,1,11,9,12,11,11,2,12,4,6,3,4,9,5,4,9,10,3,2,12,11,6,9,10,8,2,9,11,6,10,5,2,8,9,1,6,2,2,1,2,5,5,11,1,5,12,2,11,7,2,1,5,1,11,11,6,2,10,10,7,7,5,8,4,5,6,6,3,2,1,3,8,4,8,9,7,9,8,12,11,12,8,6,8,8,11,3,7,11,7,1,6,10,9,10,10,3,8,7,4,3,10,7,12,9,8,5,11,10,9,10,11,12,5,10,8,1,6,2,7,6,5,6,7,12,8,12,2,9,4,12,10,5,9,8,6,2,7,8,10,6,11,6,9,9,12,4,4,2,4,7,12,11,9,12,1,12,12,6,12,10,10,6,9,8,2,4,9,5,11,12,1,12,10,8,1,10,6,10,11,4,10,8,11,8,9,7,1,7,5,5,3,1,2,9,6,4,6,3,7,9,6,8,3,10,1,6,11,12,2,1,8,5,3,10,12,1,3,5,12,2,3,3,7,4,7,12,9,2,1,6,3,5,9,9,7,7,2,7,2,4,1,7,7,2,7,1,12,5,4,3,2,2,1,4,12,1,5,7,7,8,10,11,1,8,7,7,5,9,10,6,11,12,10,8,9,11,8,8,7,3,8,4,1,2,3,11,3,5,5,7,4,5,8,4,9,10,8,10,1,6,9,11,7,7,12,3,2,6,6,9,8,6,2,1,9,8,1,6,7,1,12,4,4,10,2,1,7,11,1,10,7,8,9,7,1,1,5,2,7,4,12,10,3,6,7,9,1,4,10,7,11,4,10,2,11,7,2,10,8,9,2,4,1,7,4,8,6,7,10,4,9,3,3,2,10,11,4,5,3,1,6,7,7,8,6,5,1,1,2,8,3,4,7,11,6,9,10,4,8,12,8,5,10,12,9,2,2,6,11,4,7,3,4,4,7,11,6,3,4,1,7,4,9,6,11,11,7,10,1,2,3,2,5,5,5,3,8,11,11,1,5,11,9,9,7,11,3,2,1,7,2,4,7,7,7,6,3,12,5,8,6,3,12,1,12,11,9,2,5,12,1,9,8,4,6,8,3,4,6,7,7,11,5,6,2,6,8,7,8,1,9,10,8,3,3,10,6,11,8,8,8,7,6,6,4,8,12,4,3,11,5,3,1,2,5,2,9,9,10,11,5,6,11,11,2,11,12,4,3,5,9,2,9,12,3,3,1,10,11,11,4,11,5,3,3,3,4,12,12,11,4,11,12,3,7,10,12,6,8,4,1,1,8,4,9,7,4,9,9,6,11,9,1,12,9,8,1,10,11,11,5,8,7,9,3,2,7,2,5,1,5,6,2,10,12,7,5,3,1,4,3,1,4,4,1,9,12,9,7,7,6,11,12,1,10,12,9,1,5,9,3,8,5,7,10,1,9,7,2,2,6,12,3,4,1,8,10,10,10,3,2,11,12,5,8,11,11,4,12,8,12,9,3,11,10,3,5,6,8,1,2,4,11,5,12,8,5,6,10,10,4,1,9,4,9,8,1,12,9,1,9,10,1,1,3,5,4,5,9,9,8,11,1,5,10,10,4,8,8,1,9,11,3,4,4,11,8,5,3,3,1,8,3,3,10,4,9,1,9,10,8,6,1,8,6,10,1,3,6,8,2,8,8,1,9,10,4,10,9,8,10,4,9,12,2,5,6,7,6,6,7,11,7,2,9,10,1,10,12,2,5,5,12,11,12,2,9,6,12,11,8,4,10,4,3,4,1,11,3,2,10,5,12,1,4,7,3,7,6,8,10,4,7,12,11,12,7,6,8,7,1,7,6,7,11,6,9,12,11,7,7,1,4,4,10,6,10,10,5,11,9,12,10,4,7,9,1,10,5,6,10,1,3,3,9,3,4,4,12,7,5,7,11,8,8,3,7,11,1,5,4,2,2,12,2,6,8,9,11,6,8,11,12,11,3,3,11,10,3,10,12,10,11,2,3,6,3,12,8,9,11,4,11,1,3,12,5,5,6,9,12,5,12,3,10,7,12,6,12,10,6,2,9,2,1,12,9,2,5,1,3,11,7,4,10,8,5,11,3,12,4,1,4,9,1,12,6,10,5,10,7,7,5,5,9,6,7,4,11,8,6,7,7,4,5,4,5,6,1,2,2,12,2,12,5,3,} +focus +0.34283721059244 +firstname +"Sunukasi" +midname +"Kafsisanuy" +family +"Ptasitunzik" +food +{} +END_KOBOLD +KOBOLD +genes +{11,4,11,9,2,11,10,9,9,2,12,12,8,1,4,11,6,7,7,9,7,6,5,1,5,1,2,9,11,4,8,10,1,3,8,7,9,6,5,4,8,12,10,8,2,1,10,2,7,12,6,7,8,4,3,11,2,3,5,6,3,10,8,1,7,8,5,6,6,6,2,10,3,8,3,1,5,12,2,1,1,8,9,7,8,9,6,7,10,9,5,3,8,11,9,7,11,1,3,11,2,12,9,8,10,7,3,4,9,2,6,7,3,12,10,1,2,6,6,6,2,6,8,9,7,10,2,11,4,1,11,10,2,10,9,3,12,11,4,11,6,3,11,12,6,7,1,1,6,8,11,5,5,1,7,11,2,11,4,3,4,12,4,10,4,4,3,7,12,6,6,5,9,5,7,5,6,1,7,4,5,9,10,5,2,8,5,4,12,11,11,6,11,3,6,9,7,12,7,10,8,6,8,1,12,12,5,5,12,5,6,4,2,5,11,1,6,3,8,12,3,6,2,6,3,9,4,7,8,5,10,6,1,1,6,10,6,10,12,8,3,12,5,1,4,1,10,3,3,11,5,2,4,3,4,10,9,10,9,7,4,5,4,2,10,3,4,12,7,1,6,3,9,3,2,4,2,6,12,5,12,3,4,9,9,7,3,10,5,3,11,2,9,8,6,7,9,3,12,3,9,6,11,5,4,12,2,5,4,11,10,8,6,10,5,6,3,2,11,12,2,11,4,7,4,3,6,1,1,9,8,10,5,4,2,2,5,11,4,12,6,4,1,9,10,11,9,7,4,2,8,8,12,4,3,1,2,2,9,10,8,8,6,5,11,11,5,10,1,11,10,2,5,12,2,10,7,8,12,10,7,7,12,3,7,12,2,10,3,4,6,10,9,2,5,11,12,11,2,10,4,2,12,5,5,8,12,5,8,3,12,6,4,5,6,3,5,3,2,6,3,4,7,6,9,4,1,2,7,10,3,12,6,4,8,5,8,8,3,12,3,4,6,8,3,6,11,4,6,11,6,1,8,1,4,6,6,2,10,5,8,11,4,12,1,5,3,5,12,9,4,2,11,10,2,6,11,11,10,5,3,1,3,10,1,3,5,8,9,10,8,5,12,8,12,8,8,12,11,12,7,12,1,10,11,10,9,3,10,7,5,3,6,9,12,1,12,11,12,7,6,1,3,11,11,10,10,5,12,3,7,11,12,4,5,6,6,11,2,12,5,3,12,7,3,9,2,11,7,12,8,2,7,11,6,9,8,2,11,8,8,6,1,12,9,2,8,6,12,10,7,4,8,11,3,9,10,5,1,4,5,6,7,10,10,1,5,1,11,8,7,3,1,10,6,6,12,7,7,1,6,1,4,7,8,7,5,10,3,9,3,2,11,12,4,3,12,5,1,11,9,3,6,7,3,1,12,1,3,8,8,2,9,5,11,10,12,8,2,2,8,12,12,2,12,9,11,3,7,4,4,10,1,9,5,10,8,3,3,1,10,12,6,6,5,1,2,3,9,7,5,8,11,12,11,3,6,10,11,8,3,5,7,1,7,11,11,9,1,9,1,2,10,3,8,7,8,2,10,5,11,9,12,5,8,2,3,11,12,5,3,2,4,7,4,5,2,7,11,1,2,2,3,5,3,5,6,11,11,9,1,8,10,8,12,6,1,5,11,2,6,2,7,6,6,12,6,12,9,10,11,7,3,11,6,11,3,9,5,12,3,7,3,11,5,1,1,2,8,3,12,1,11,5,4,1,3,7,11,11,5,9,9,6,10,1,11,7,11,10,1,10,6,7,3,2,4,12,5,4,11,9,9,4,3,5,4,12,5,5,3,3,8,10,2,11,1,9,1,5,2,7,6,1,10,9,5,8,9,8,1,3,4,2,2,3,7,3,8,11,8,4,7,8,1,5,12,4,1,1,9,12,11,3,7,8,6,11,10,11,12,12,9,7,10,5,4,3,3,12,10,6,10,12,11,12,4,10,5,3,10,12,4,6,2,2,10,6,1,1,10,2,7,4,12,2,11,7,9,10,3,6,12,6,6,7,3,7,3,12,11,10,6,5,2,5,12,5,5,2,11,2,1,2,1,6,5,3,8,11,1,8,8,5,11,12,2,3,3,9,2,10,11,2,5,12,4,7,8,12,8,9,3,6,3,6,10,7,7,7,9,4,10,7,10,8,3,5,1,10,6,4,9,5,3,7,1,9,6,3,9,3,7,9,6,9,6,4,11,10,4,1,4,1,12,3,10,4,1,6,12,2,3,2,3,10,5,12,10,8,10,4,4,1,11,6,11,2,4,6,11,11,7,8,10,3,8,12,8,7,10,6,10,7,11,2,12,11,6,5,1,2,5,12,12,8,5,2,6,10,12,9,11,10,5,11,7,4,4,2,11,11,4,9,2,9,3,8,3,1,1,7,3,6,8,11,3,7,6,10,11,9,9,4,12,7,10,3,10,5,11,11,7,2,4,7,4,1,5,3,10,4,2,3,7,6,11,4,2,3,6,11,6,11,5,5,5,12,5,4,6,8,9,2,9,5,3,4,6,11,4,1,11,1,7,7,9,1,5,10,2,9,2,10,5,8,6,6,5,2,7,10,2,2,9,3,2,3,11,2,11,7,2,12,12,6,3,3,2,6,12,6,7,2,10,9,11,5,4,9,12,5,10,6,11,10,1,2,11,5,5,12,7,9,9,10,4,7,8,10,9,7,2,10,1,7,10,3,5,5,3,1,4,10,8,7,1,1,4,10,4,4,8,1,7,12,7,1,1,1,9,9,10,1,6,2,3,9,1,7,1,12,2,5,7,9,4,12,5,12,2,7,4,4,3,4,11,5,2,2,2,6,4,10,7,6,1,2,3,11,2,6,5,7,2,6,3,4,1,3,10,8,7,7,4,8,7,10,10,5,10,2,9,1,4,11,1,9,4,7,6,8,3,7,5,12,7,3,2,5,8,8,1,3,9,4,8,2,4,5,9,4,5,7,5,1,11,6,11,2,8,11,9,5,10,7,3,4,12,10,5,1,3,4,12,8,5,6,3,1,9,6,8,9,6,11,11,6,9,3,4,4,8,12,5,9,2,12,9,3,9,8,8,1,2,7,11,12,12,10,5,7,4,10,9,5,5,12,2,6,1,3,7,1,11,8,10,10,7,2,10,10,2,7,3,10,9,6,10,7,10,7,3,9,2,8,5,7,11,1,3,7,11,12,4,9,3,3,3,11,2,6,2,8,9,10,11,3,2,1,11,6,10,10,6,1,7,9,1,1,8,8,5,2,2,1,5,6,10,4,5,1,1,2,1,2,8,2,11,10,7,3,6,10,1,11,5,12,11,3,5,9,10,12,3,2,12,7,5,10,7,10,10,12,2,4,6,2,7,8,5,8,2,9,6,1,7,4,5,6,8,10,4,3,4,12,11,9,4,1,9,8,1,3,8,1,12,6,6,3,3,10,7,4,10,5,11,10,7,3,12,3,12,11,10,2,3,2,12,1,11,2,8,6,4,8,2,9,7,4,5,9,3,1,3,7,3,4,8,1,9,2,9,1,12,6,5,7,8,4,1,9,1,10,4,8,8,8,8,11,8,8,9,5,9,6,10,5,7,9,5,4,8,1,5,1,6,3,8,6,10,7,1,8,4,2,9,7,7,10,9,8,4,7,7,4,9,5,3,2,10,7,11,4,12,12,10,7,4,2,4,1,1,12,6,11,9,11,8,7,7,5,1,4,7,7,9,6,3,8,2,2,5,11,9,2,4,9,4,6,6,9,8,11,8,10,8,9,2,7,11,3,2,11,9,12,4,7,8,1,3,1,9,5,2,2,3,10,8,5,1,3,10,11,8,1,2,6,10,3,3,5,11,4,7,8,3,2,5,1,3,1,12,10,7,3,6,11,3,8,6,9,10,8,8,11,4,3,9,9,10,1,10,4,8,2,11,1,8,3,5,11,2,3,10,3,2,12,1,7,11,3,12,10,2,2,11,10,2,8,4,4,5,11,2,4,1,10,1,9,3,12,6,12,11,4,8,1,7,10,12,6,1,6,8,3,3,3,8,5,6,8,7,7,1,6,8,3,6,2,4,5,12,8,9,8,2,1,11,12,10,9,4,6,12,2,9,12,7,1,3,5,8,4,10,9,2,9,11,12,6,4,7,4,4,2,1,4,3,3,6,6,4,4,5,12,8,6,6,12,4,7,6,9,4,8,12,7,4,8,12,10,12,4,6,6,7,7,2,2,1,3,4,10,10,10,12,1,7,10,1,10,3,3,12,12,9,5,12,5,11,1,1,11,6,10,12,10,9,1,6,10,5,2,8,10,7,2,7,1,11,5,8,7,4,5,11,11,2,1,7,10,4,11,6,8,6,6,9,6,5,5,9,3,} +focus +0.5339844589177 +firstname +"Taktuny" +midname +"Nguipaanuy" +family +"Psupkinzik" +food +{} +END_KOBOLD +KOBOLD +genes +{3,9,12,8,1,5,5,5,11,4,9,2,12,2,7,1,5,2,9,4,1,9,11,2,4,5,12,3,9,11,5,5,3,3,5,2,12,10,2,1,2,8,7,5,6,9,12,1,12,6,6,2,7,4,4,4,4,2,1,3,7,9,7,6,1,11,4,3,2,2,2,2,9,9,6,6,10,5,7,8,3,8,7,2,4,1,12,8,4,8,5,10,11,5,4,12,2,2,3,8,7,6,5,3,5,11,12,8,2,2,11,8,2,4,12,11,12,8,1,12,6,9,4,12,5,2,10,1,10,4,10,12,3,11,4,10,3,4,5,3,1,4,5,8,7,6,11,2,2,10,4,2,9,8,6,3,9,10,8,9,1,6,4,5,3,10,11,11,5,4,10,12,4,7,6,11,10,11,6,1,9,12,6,9,2,6,9,11,2,1,7,7,4,8,3,11,8,2,7,3,6,12,12,5,3,1,4,10,11,10,7,5,8,10,12,5,12,6,4,12,10,10,11,5,10,6,1,10,7,12,3,10,6,12,8,2,9,2,10,10,6,5,3,10,10,12,8,10,8,7,1,1,5,9,4,8,3,12,1,4,12,6,2,11,5,5,5,12,1,2,8,4,10,12,2,5,2,6,3,2,4,4,3,1,3,2,1,12,7,9,2,7,1,4,2,10,2,12,4,12,2,4,1,3,1,4,9,7,2,8,1,6,9,11,3,6,1,1,9,2,2,5,2,11,11,9,4,7,2,8,12,5,12,8,2,9,5,7,7,3,7,9,3,2,3,7,1,5,8,11,1,12,4,11,4,7,4,4,1,8,7,12,10,6,2,5,3,12,5,6,10,12,11,7,2,8,3,6,4,1,7,11,8,9,6,10,4,5,4,2,11,10,6,10,4,10,6,2,12,4,10,7,3,8,4,5,10,6,12,2,3,6,7,12,3,3,2,9,1,3,6,6,3,5,8,11,12,10,7,11,6,2,9,8,6,9,2,2,4,12,11,11,9,12,3,10,7,12,1,4,1,4,12,2,6,1,3,1,8,1,12,2,3,3,8,9,10,9,8,12,7,2,7,11,6,9,6,9,7,5,1,4,5,4,10,2,3,8,9,6,12,5,9,10,8,1,5,9,9,12,9,5,3,8,2,8,6,6,12,1,3,10,5,8,3,10,3,3,2,9,1,1,8,6,2,1,1,5,1,6,3,7,8,4,12,4,2,10,11,4,5,9,12,7,2,6,8,12,9,1,5,12,2,2,6,9,11,1,2,2,8,3,9,2,7,11,8,8,12,10,11,6,7,5,5,6,4,8,3,1,2,2,2,4,8,5,5,5,9,6,2,5,3,9,11,8,9,4,3,12,1,1,5,12,1,3,5,8,2,12,9,7,5,9,3,9,12,12,10,2,9,11,5,8,5,10,10,2,2,11,3,5,8,1,3,11,9,9,3,6,5,12,10,2,11,4,2,6,12,5,5,9,5,2,5,2,11,5,3,4,9,6,5,4,1,12,7,3,1,1,1,9,4,12,5,7,8,10,12,5,3,5,7,9,11,12,3,2,8,2,7,8,10,2,9,6,11,6,11,3,8,4,12,9,10,4,6,5,3,3,6,1,12,3,6,3,4,9,4,3,12,4,4,11,2,10,2,12,11,9,7,12,9,11,10,11,8,1,1,10,10,1,2,7,5,2,8,6,3,11,1,4,9,11,3,10,5,8,12,3,9,10,6,10,10,12,7,4,5,9,1,7,2,3,10,11,5,4,2,11,8,7,12,5,3,7,8,9,10,8,5,4,4,3,11,1,11,6,6,4,11,3,7,9,11,2,6,10,7,7,7,2,6,12,4,3,8,3,10,12,2,9,8,7,6,7,2,4,12,10,1,2,6,11,3,10,2,8,3,7,6,1,11,12,7,10,7,7,2,5,5,6,4,10,7,10,6,10,9,6,8,7,8,1,8,10,4,6,9,1,1,7,11,12,9,5,6,9,9,3,6,6,2,8,11,6,10,2,6,10,10,4,3,1,7,4,10,3,6,11,8,7,11,2,3,11,2,2,11,3,12,8,3,11,1,9,7,7,12,12,8,2,7,3,6,8,3,9,5,11,10,5,5,4,12,2,2,2,4,8,10,11,9,10,8,11,7,12,5,8,1,8,3,1,3,2,10,8,9,8,11,7,4,4,6,9,6,11,6,10,11,6,7,4,11,3,10,8,12,8,7,11,6,10,11,4,12,10,7,9,12,9,6,3,2,10,10,7,3,6,1,7,3,9,1,1,2,2,9,7,3,6,1,8,10,7,2,12,5,10,2,3,1,4,2,9,5,7,11,6,8,5,11,9,9,2,3,2,5,7,4,8,4,4,8,7,4,5,10,8,11,3,10,11,5,7,6,9,5,1,2,3,10,10,11,8,2,8,5,11,1,4,8,4,2,3,11,9,9,1,3,10,11,1,7,5,6,12,8,5,4,1,2,3,9,1,11,12,7,9,9,2,3,11,7,2,9,10,8,10,5,4,5,8,2,6,3,5,10,1,3,2,3,4,9,9,2,4,6,2,5,9,4,10,11,9,11,5,3,6,10,12,7,9,6,10,11,8,12,3,3,12,12,11,9,5,3,2,7,3,4,4,5,5,5,12,4,9,10,3,9,8,9,2,3,5,10,5,8,8,2,11,8,8,9,10,1,10,3,1,6,5,11,2,3,12,2,1,8,3,4,4,8,11,6,11,9,10,1,9,8,6,1,7,2,5,8,9,4,7,1,10,4,6,8,5,10,6,9,1,5,2,3,3,10,4,9,6,8,1,4,4,1,4,4,7,10,10,11,6,5,2,11,2,11,2,12,4,6,1,8,10,10,11,5,1,12,12,6,5,8,3,1,10,5,6,12,10,10,2,7,9,9,1,11,8,8,1,4,2,2,9,3,5,2,5,1,9,1,2,12,9,4,7,4,12,2,9,5,7,11,8,7,8,4,5,3,8,3,10,10,6,5,1,1,9,7,6,2,12,7,9,8,7,4,4,2,5,4,10,4,8,3,12,9,9,6,1,10,2,9,9,6,8,11,12,4,5,12,5,12,3,8,9,7,2,7,10,12,6,3,5,5,12,1,2,9,6,6,2,5,6,1,9,5,3,6,10,6,11,10,8,9,2,5,6,5,11,10,4,10,7,6,12,3,6,8,11,7,1,7,6,11,6,11,5,5,9,5,1,9,12,7,10,12,11,2,9,1,9,2,12,8,5,2,6,10,12,8,12,8,4,3,1,9,5,5,1,4,8,5,1,1,11,2,12,12,9,6,7,6,10,10,10,3,2,7,5,3,11,8,9,6,7,11,7,5,7,8,2,8,10,11,3,9,12,5,4,7,8,3,5,1,12,4,2,4,1,11,12,1,12,12,7,2,5,2,3,3,7,8,3,3,8,8,2,2,2,1,11,7,3,3,6,11,9,4,3,9,1,6,1,6,11,9,2,1,3,3,1,4,4,9,10,12,8,2,7,2,12,12,2,6,2,4,2,5,9,7,10,12,3,9,4,11,6,2,11,9,6,6,8,9,10,12,7,8,1,3,6,3,2,1,7,6,8,11,8,10,1,5,8,5,10,11,6,3,8,2,1,9,12,1,1,1,6,9,12,9,7,7,10,11,4,5,4,1,12,2,4,12,7,6,1,2,12,3,4,10,5,2,1,11,4,1,4,5,3,5,3,11,3,1,5,9,6,3,9,10,6,4,4,2,3,5,10,5,1,5,8,6,4,11,7,11,11,6,4,4,4,3,10,12,11,9,7,8,9,6,5,2,3,10,8,12,1,5,7,9,11,9,8,8,6,7,3,11,8,10,4,7,5,5,10,4,4,9,9,11,1,11,1,12,1,4,6,10,1,6,11,3,1,9,4,7,12,9,3,8,5,2,11,9,3,11,7,8,11,10,12,3,12,8,3,1,12,12,7,5,3,12,2,12,4,2,1,4,5,10,6,11,11,1,1,5,5,2,7,8,6,9,3,2,12,11,12,7,6,4,10,8,7,2,11,4,4,7,4,5,7,4,4,12,11,11,10,11,11,7,2,10,4,11,7,11,9,11,11,4,5,3,4,9,10,1,7,10,2,12,10,7,2,1,7,8,9,3,1,7,3,4,5,6,5,5,2,7,2,2,11,9,7,11,11,12,9,11,9,12,9,7,1,8,3,4,8,5,6,8,5,4,1,5,2,1,3,5,12,5,11,5,11,8,1,9,5,2,5,2,10,1,2,6,1,11,1,6,3,10,6,12,3,6,10,5,9,2,10,11,1,3,10,1,4,4,9,9,2,12,6,2,9,10,12,4,1,5,1,12,10,12,12,8,8,1,10,10,10,11,6,7,3,2,6,11,7,10,1,3,12,1,8,6,5,} +focus +0.66599919967195 +firstname +"Ysinany" +midname +"Nsazanuy" +family +"Ysukynzik" +food +{5,} +END_KOBOLD diff --git a/training/trainer.lua b/training/trainer.lua index 06b6b1d..a23b645 100644 --- a/training/trainer.lua +++ b/training/trainer.lua @@ -19,7 +19,7 @@ local round = calc.round local adjacent = helper.adjacent local conditions = {} local gen_stats, popul, top_size -- condition values -local fill_creature, reset_creature, manage_creature, fill_cell -- condition functions +local fill_creature, reset_creature, manage_creature, fill_cell, final_fitness -- condition functions require "socket" @@ -96,15 +96,16 @@ local function fill_popul(popul, cull) math.randomseed(os.time()) local creature + local child_popul = {} if cull then creature = {} local j = random(1,cull) fill_creature(creature, popul[1], popul[j]) - table.insert(popul, creature) + table.insert(child_popul, creature) end - local popul_size = conditions.popul_max - while #popul <= popul_size do + local popul_size = conditions.popul_max - #popul + while #child_popul <= popul_size do creature = {} if conditions.champ_breed and (not cull or random() < 0.05) then @@ -117,7 +118,12 @@ local function fill_popul(popul, cull) until i ~= j fill_creature(creature, popul[i], popul[j]) end - table.insert(popul, creature) + table.insert(child_popul, creature) + end + + for i,child in ipairs(child_popul) do + table.insert(popul, child) + child_popul[i] = nil end console_log("Success populating.\n") @@ -159,8 +165,8 @@ local function manage_lifetime(creature, map) last = manage_turn(creature, map, turn) end - if conditions.fitness_modifier then - creature.fitness = creature.fitness * conditions.fitness_modifier(turn, max_turn) + if conditions.fitness_func then + creature.fitness = conditions.fitness_func(creature, turn, max_turn) end end @@ -245,7 +251,7 @@ local function train(options, offset) cull_threshold = options.cull_threshold or 3/5, champ_breed = options.champ_breed or true, max_turn = options.max_turn or 200, - fitness_modifier = options.fitness_modifier, + fitness_func = options.fitness_func, custom_stats = options.custom_stats, popul_max = options.popul_max or 150, } diff --git a/training/trainer_kobold.lua b/training/trainer_kobold.lua index 820985a..9921f54 100644 --- a/training/trainer_kobold.lua +++ b/training/trainer_kobold.lua @@ -69,12 +69,11 @@ local kobold_decisions = { function(self, dtime) -- eat if self.food and #self.food > 0 then local satiate = pop(self.food) - self.hunger = self.hunger + satiate - self.hp = self.hp + 1 + self:eat(satiate) end end, function(self, dtime) -- breed - self.fitness = self.fitness + 2 + self.fitness = self.fitness + 1 self.hunger = self.hunger - 10 end, function(self, dtime) -- move North @@ -111,7 +110,7 @@ local function manage_kobold(player, map, dtime) p.x = pos.x + adjacent[i].x p.z = pos.z + adjacent[i].z if valid(p) and map[p.x][p.z][1] then - p.y = map[p.x][p.z][1] + p.y = map[p.x][p.z][1] - player.pos.y else p.y = pos.y + player.climb + 1 end @@ -121,7 +120,7 @@ local function manage_kobold(player, map, dtime) player.hunger = player.hunger - dtime local decision, gene = player.decide(player, neighbors) - if decision then + if decision and decision ~= -1 then player.action = decision player.last_gene = gene kobold_decisions[decision](player, dtime) @@ -187,16 +186,21 @@ local function print_terrain(map, player) return s end -local modifier = function(turn, max_turn) return (1 + turn/max_turn) end +local function final_fitness(player, turn, max_turn) + local c1 = turn + local c2 = player.fitness + local m = 3 -- * max_turn + return (m*c1 + c2)/100 +end local function turn_log_kobold(player, map, gen_stats, turn) local s = "\n\nBest creature: "..gen_stats.champ.."\tBest creature fitness: "..truncate(gen_stats.max_peak).."\n" s = s.."Best creature lifespan: "..(gen_stats.lifespan or "None").."\tBest creature gen: "..(gen_stats.gen or "None").."\n" - s = s.."Last gen average: "..truncate(gen_stats.avg).."\t\tLast gen peak: "..truncate(gen_stats.peak).."\n\n" + s = s.."Last gen avg: "..truncate(gen_stats.avg).."\t\tLast gen peak: "..truncate(gen_stats.peak).."\n\n" s = s.."Current gen: "..gen_stats.num.."\t\tCurrent creature: "..player.id.."\n" s = s.."Turn: "..(turn < 10 and "0" or "")..turn.."\t\tCreature name: "..player.name.."\n" s = s.."Action: "..kobolds.actions[player.action].."\t\tFocus: "..player.focus.."\n" - s = s.."Gene: "..(player.last_gene or "None").."\t\tFitness: "..truncate(player.fitness * modifier(turn, turn_max)).."\n\n" + s = s.."Gene: "..(player.last_gene or "None").."\t\tFitness: "..truncate(final_fitness(player, turn, turn_max)).."\n\n" s = s..print_terrain(map, player) return s, 0.008 @@ -246,8 +250,8 @@ local function global_log(gen_stats) end local function train() - local input = true - local option = input and 0 or 10000 + local input = false + local option = input and 0 or 300 local offset = 0 local population = {} repeat @@ -275,7 +279,7 @@ local function train() gen_log = gen_log_kobold, training_log = global_log, fitness_threshold = 40, - fitness_modifier = modifier, + fitness_func = final_fitness, max_turn = turn_max, popul = population, custom_stats = gen_stats_update,