' EVOLUTION v. Dr.A.Ebeling ' ' (c) MAXON Computer GmbH DO evolution LOOP END ' PROCEDURE evolution initalisieren ein=RANDOM(7)+1 SELECT ein CASE 1 w=w+1 CASE 2 s=s+s1 CASE 3 z=z+z1 CASE 4 s=s+s1 w=w+w1 CASE 5 z=z+z1 s=s+s1 CASE 6 z=z+z1 w=w+w1 CASE 7 z=z+z1 s=s+s1 w=w+w1 ENDSELECT gen=gen+1 CLS PRINT AT(30,1);"E V O L U T I O N" PRINT AT(15,2);gen;" GEN" PRINT AT(30,2);"z: ";z PRINT AT(45,2);"s: ";s PRINT AT(60,2);"w: ";w elter ursprung mut1 mut2 mut3 mut4 mut5 mut6 mut7 WHILE INKEY$<>" " WEND RETURN ' PROCEDURE initalisieren PRINT "inittalisieren" xpos=420 ypos=120 ypos1=100 zweige=2.5 strecke=1.5 winkel=105 z=zweige s=strecke w=winkel z1=0.5 s1=0.5 w1=11 dehn=3 xd=50 yd=40 RETURN ' PROCEDURE ursprung x=xpos-ypos*2-xd y=ypos-yd ausgabe$=" Ursprung" reproduktion(zweige,strecke,winkel) RETURN ' PROCEDURE mut1 ausgabe$="MUT1 00 +" x=xpos-ypos y=ypos-yd reproduktion(z,s,w+w1) RETURN ' PROCEDURE mut2 ausgabe$="MUT2 0+0" x=xpos+xd y=ypos-yd reproduktion(z,s+s1,w) RETURN ' PROCEDURE mut3 ausgabe$="MUT3 + 00" x=xpos+xd y=ypos1*2 reproduktion(z+z1,s,w) RETURN ' PROCEDURE mut4 ausgabe$="MUT4 0+ +" x=xpos+xd y=ypos1*3+yd reproduktion(z,s+s1,w+w1) RETURN ' PROCEDURE mut5 ausgabe$="MUT5 + +0" x=xpos-ypos y=ypos1*3+yd reproduktion(z+z1,s+s1,w) RETURN ' PROCEDURE mut6 ausgabe$="MUT6 +0+" x=xpos-ypos*2-xd y=ypos1*3+yd reproduktion(z+z1,s,w+w1) RETURN ' PROCEDURE mut7 ausgabe$="MUT7 0+0" x=xpos-ypos*2-xd y=ypos1*2 reproduktion(z+z1,s+s1,w+w1) RETURN ' PROCEDURE elter ausgabe$="ELTER "+STR$(ein) x=xpos-ypos y=ypos1*2 reproduktion(z,s,w) RETURN ' PROCEDURE reproduktion(z,s,w) DRAW "co 13" x1=x-35 y1=y+35 TEXT x1,y1+20,ausgabe$ DRAW "co 6" DRAW "pu" SETDRAW x,y,0.35 DRAW "pd" entwicklung(z,s,w) RETURN ' PROCEDURE entwicklung(zweige,strecke,winkel) IF zweige<>0 THEN DRAW "lt",winkel," fd",strecke*zweige*dehn entwicklung(zweige-z1,strecke,winkel) DRAW "bk",strecke*zweige*dehn," rt",winkel DRAW "rt",winkel," fd",strecke*zweige*dehn entwicklung(zweige-z1,strecke,winkel) DRAW "bk",strecke*zweige*dehn," lt",winkel ENDIF RETURN