getPossibleMutations method

Map<Mutation, num> getPossibleMutations()

Implementation

Map<Mutation, num> getPossibleMutations() {
  var mutations = <Mutation, num>{};
  if (canAddNode) {
    var mutation = NodeMutation();
    mutations[mutation] = mutation.chance;
  }
  if (canAddLink) {
    var mutation = LinkMutation();
    mutations[mutation] = mutation.chance;
  }
  if (canAddLoop) {
    var mutation = LoopMutation();
    mutations[mutation] = mutation.chance;
  }
  if (canChangeWeight) {
    var mutation = WeightMutation();
    mutations[mutation] = mutation.chance;
  }
  if (canChangeActivation) {
    var mutation = ActivationMutation();
    mutations[mutation] = mutation.chance;
  }
  if (canResetActivation) {
    var mutation = ResetWeightMutation();
    mutations[mutation] = mutation.chance;
  }
  if (hasDormantConnections) {
    var mutation = DormantMutation();
    mutations[mutation] = mutation.chance;
  }
  if (mutations.isEmpty) {
    throw UnsupportedError("There are no possible mutations for this genome");
  }
  return mutations;
}