Make divide-by-zero error, handle error gracefully in grow

This commit is contained in:
Ian Gulliver
2021-11-22 20:46:20 -08:00
parent a5e44a7e07
commit c547abb296
3 changed files with 10 additions and 12 deletions

View File

@@ -52,11 +52,8 @@ func (def *Definition) Grow(statusChan chan<- Status) (*vm.Program, error) {
score, err := def.score(prog)
if err != nil {
if statusChan != nil {
close(statusChan)
}
return nil, err
// Can never get best score
continue
}
if score > status.BestScore {
@@ -89,7 +86,10 @@ func (def *Definition) score(prog *vm.Program) (uint64, error) {
sample.SetInputs(state)
state.Execute() // ignore error
err = state.Execute()
if err != nil {
return 0, err
}
score += sample.matchingOuts(state)
}