public string Translate(IChromosome chromosome) { var chromValue = (chromosome as ShortArrayChromosome).Value; var description = new ChromosomeDescription(null, 0, 0, 0); foreach(var desc in descriptions) if (chromValue.SequenceEqual(desc.Key)) { description = desc.Value; break; } descriptions.Clear(); descriptions.Add(chromValue, description); if (description.InvalidGenes > 0) return "Invalid genes: " + description.InvalidGenes; var sb = new StringBuilder(); for (int heroI = 0; heroI < simulator.PartySize; heroI++) { if (heroI == description.FrontRowCount && simulator.PartySize > 1) sb.AppendLine("Back row:"); var build = description.Builds[heroI]; var hero = Library.Heroes[build.HeroType]; sb.Append(hero.Name + ": "); for(int i = 0; i < build.Items.Length; i++) { if (i > 0) sb.Append(", "); if (simulator.ItemChoices(hero, i) == 0) continue; sb.Append(simulator.ItemData(hero, i, build.Items[i]).Name); } sb.Append(", "); sb.Append(build.EnhancmentCounts[0]); sb.Append(" x "); sb.Append(potionName(build.EnhancmentTypes[0])); sb.Append(", "); sb.Append(build.EnhancmentCounts[1]); sb.Append(" x "); sb.Append(potionName(build.EnhancmentTypes[1])); sb.AppendLine(); } sb.Append(description.Deaths + " deaths"); return sb.ToString(); }
public string Translate(IChromosome chromosome) { var chromValue = (chromosome as ShortArrayChromosome).Value; var description = new ChromosomeDescription(null, 0, 0, 0); foreach (var desc in descriptions) { if (chromValue.SequenceEqual(desc.Key)) { description = desc.Value; break; } } descriptions.Clear(); descriptions.Add(chromValue, description); if (description.InvalidGenes > 0) { return("Invalid genes: " + description.InvalidGenes); } var sb = new StringBuilder(); for (int heroI = 0; heroI < simulator.PartySize; heroI++) { if (heroI == description.FrontRowCount && simulator.PartySize > 1) { sb.AppendLine("Back row:"); } var build = description.Builds[heroI]; var hero = Library.Heroes[build.HeroType]; sb.Append(hero.Name + ": "); for (int i = 0; i < build.Items.Length; i++) { if (i > 0) { sb.Append(", "); } if (simulator.ItemChoices(hero, i) == 0) { continue; } sb.Append(simulator.ItemData(hero, i, build.Items[i]).Name); } sb.Append(", "); sb.Append(build.EnhancmentCounts[0]); sb.Append(" x "); sb.Append(potionName(build.EnhancmentTypes[0])); sb.Append(", "); sb.Append(build.EnhancmentCounts[1]); sb.Append(" x "); sb.Append(potionName(build.EnhancmentTypes[1])); sb.AppendLine(); } sb.Append(description.Deaths + " deaths"); return(sb.ToString()); }