target$ = "METHINKS IT IS LIKE A WEASEL" abc$[] = strchars " ABCDEFGHIJLKLMNOPQRSTUVWXYZ" P = 0.05 C = 100 func fitness trial$ . for i to len trial$ res += if substr trial$ i 1 <> substr target$ i 1 . return res . func$ mutate parent$ . for c$ in strchars parent$ if randomf < P res$ &= abc$[random len abc$[]] else res$ &= c$ . . return res$ . for i to len target$ parent$ &= abc$[random len abc$[]] . while fitness parent$ > 0 copies$[] = [ ] for i to C copies$[] &= mutate parent$ . parent$ = copies$[1] for s$ in copies$[] if fitness s$ < fitness parent$ parent$ = s$ . . step += 1 print step & " " & parent$ .