'=========================================================================== ' Subject: ROTATING DNA ANALYSIS Date: 03-10-96 (09:59) ' Author: Sean Smith Code: QB, QBasic, PDS ' Origin: FidoNet QUIK_BAS Echo Packet: EGAVGA.ABC '=========================================================================== ' Here's some cool code I found. Does a dna string analysis. 'Definately something new! Its on 4 different messages starting now. I 'did not write this code though. :( SCREEN 12 CLS molcol = 15 barcol = 8 scancol = 4 center = 75 interval = .1 length = 75 radius = 4 ky = 275 jy = 250 iy = 225 hy = 200 gy = 175 fy = 150 ey = 125 dy = 100 cy = 75 by = 50 y = 25 obs = 200 REM hscandir = 1 REM vscandir = 1 LINE (0, 0)-(151, 301), 8, B LINE (1, 1)-(150, 300), 7, B LINE (2, 2)-(149, 299), 15, B LINE (3, 3)-(148, 298), 7, B LINE (4, 4)-(147, 297), 8, B LOCATE 20, 1 COLOR 8 PRINT " ["; COLOR 15 PRINT "DNA Analysis"; COLOR 8 PRINT "]" COLOR 15 PRINT : COLOR 8: PRINT " Í"; : COLOR 7: PRINT "Í"; COLOR 15: PRINT "[ Building structure ]"; COLOR 7: PRINT "Í"; : COLOR 8: PRINT "Í" message = 2 GOTO 20 5 FOR angle = 0 TO 36000 STEP interval REM -------SCAN-------- 10 IF scanned = 1 THEN GOTO 20 IF message = 2 THEN LOCATE 22, 5: COLOR 15: PRINT " Scaning DNA String " IF hscan < 15 THEN hscandir = 1 IF hscan > 290 THEN hscandir = 0 IF hscandir = 0 THEN hscan = hscan - 5: LINE (5, hscan + 5)-(145, hscan + 5), 0 IF hscandir = 1 THEN hscan = hscan + 5: LINE (5, hscan - 5)-(145, hscan - 5), 0 LINE (5, hscan)-(145, hscan), scancol IF vscan < 15 THEN vscandir = 1: pass = pass + .5 IF vscan > 140 THEN vscandir = 0: IF vscandir = 0 THEN vscan = vscan - 5: LINE (vscan + 5, 5)-(vscan + 5, 295), 0 IF vscandir = 1 THEN vscan = vscan + 5: LINE (vscan - 5, 5)-(vscan - 5, 295), 0 LINE (vscan, 5)-(vscan, 295), scancol IF pass = 3 THEN scanned = 1: message = 3: LINE (5, hscan)-(145, hscan), 0: LINE (vscan, 5)-(vscan, 295), 0: FOR delay = 1 TO 5000: NEXT delay: GOTO 5 GOTO 20 IF scanned = 0 THEN GOTO 10 REM --------1------------ 20 IF message = 3 THEN LOCATE 22, 5: COLOR 15: PRINT " Testing Integrity " zangle = angle + 1 x1 = (center - (COS(zangle) * (length / 2))) x2 = (center + (COS(zangle) * (length / 2))) a1 = obs - (SIN(zangle) * (length)) a2 = obs + (SIN(zangle) * (length)) radiusx1 = (obs / a1) * radius radiusx2 = (obs / a2) * radius LINE (lastx1, y)-(lastx2, y), 0 CIRCLE (lastx1, y), lastrx1, 0 CIRCLE (lastx2, y), lastrx2, 0 LINE (x1, y)-(x2, y), barcol CIRCLE (x1, y), radiusx1, molcol CIRCLE (x2, y), radiusx2, molcol lastx1 = x1 lastx2 = x2 lastrx1 = radiusx1 lastrx2 = radiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------2------------- bangle = angle + 1.5 bx1 = (center - (COS(bangle) * (length / 2))) bx2 = (center + (COS(bangle) * (length / 2))) ba1 = obs - (SIN(bangle) * (length)) ba2 = obs + (SIN(bangle) * (length)) bradiusx1 = (obs / ba1) * radius bradiusx2 = (obs / ba2) * radius LINE (blastx1, by)-(blastx2, by), 0 CIRCLE (blastx1, by), blastrx1, 0 CIRCLE (blastx2, by), blastrx2, 0 LINE (bx1, by)-(bx2, by), barcol CIRCLE (bx1, by), bradiusx1, molcol CIRCLE (bx2, by), bradiusx2, molcol blastx1 = bx1 blastx2 = bx2 blastrx1 = bradiusx1 blastrx2 = bradiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------3------------- cangle = angle + 2 cx1 = (center - (COS(cangle) * (length / 2))) cx2 = (center + (COS(cangle) * (length / 2))) ca1 = obs - (SIN(cangle) * (length)) ca2 = obs + (SIN(cangle) * (length)) cradiusx1 = (obs / ca1) * radius cradiusx2 = (obs / ca2) * radius LINE (clastx1, cy)-(clastx2, cy), 0 CIRCLE (clastx1, cy), clastrx1, 0 CIRCLE (clastx2, cy), clastrx2, 0 LINE (cx1, cy)-(cx2, cy), barcol CIRCLE (cx1, cy), cradiusx1, molcol CIRCLE (cx2, cy), cradiusx2, molcol clastx1 = cx1 clastx2 = cx2 clastrx1 = cradiusx1 clastrx2 = cradiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------4------------- dangle = angle + 2.5 dx1 = (center - (COS(dangle) * (length / 2))) dx2 = (center + (COS(dangle) * (length / 2))) da1 = obs - (SIN(dangle) * (length)) da2 = obs + (SIN(dangle) * (length)) dradiusx1 = (obs / da1) * radius dradiusx2 = (obs / da2) * radius LINE (dlastx1, dy)-(dlastx2, dy), 0 CIRCLE (dlastx1, dy), dlastrx1, 0 CIRCLE (dlastx2, dy), dlastrx2, 0 LINE (dx1, dy)-(dx2, dy), barcol CIRCLE (dx1, dy), dradiusx1, molcol CIRCLE (dx2, dy), dradiusx2, molcol dlastx1 = dx1 dlastx2 = dx2 dlastrx1 = dradiusx1 dlastrx2 = dradiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------5------------- eangle = angle + 3! ex1 = (center - (COS(eangle) * (length / 2))) ex2 = (center + (COS(eangle) * (length / 2))) ea1 = obs - (SIN(eangle) * (length)) ea2 = obs + (SIN(eangle) * (length)) eradiusx1 = (obs / ea1) * radius eradiusx2 = (obs / ea2) * radius LINE (elastx1, ey)-(elastx2, ey), 0 CIRCLE (elastx1, ey), elastrx1, 0 CIRCLE (elastx2, ey), elastrx2, 0 LINE (ex1, ey)-(ex2, ey), barcol CIRCLE (ex1, ey), eradiusx1, molcol CIRCLE (ex2, ey), eradiusx2, molcol elastx1 = ex1 elastx2 = ex2 elastrx1 = eradiusx1 elastrx2 = eradiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------6------------- fangle = angle + 3.5 fx1 = (center - (COS(fangle) * (length / 2))) fx2 = (center + (COS(fangle) * (length / 2))) fa1 = obs - (SIN(fangle) * (length)) fa2 = obs + (SIN(fangle) * (length)) fradiusx1 = (obs / fa1) * radius fradiusx2 = (obs / fa2) * radius LINE (flastx1, fy)-(flastx2, fy), 0 CIRCLE (flastx1, fy), flastrx1, 0 CIRCLE (flastx2, fy), flastrx2, 0 LINE (fx1, fy)-(fx2, fy), barcol CIRCLE (fx1, fy), fradiusx1, molcol CIRCLE (fx2, fy), fradiusx2, molcol flastx1 = fx1 flastx2 = fx2 flastrx1 = fradiusx1 flastrx2 = fradiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------7------------- gangle = angle + 4 gx1 = (center - (COS(gangle) * (length / 2))) gx2 = (center + (COS(gangle) * (length / 2))) ga1 = obs - (SIN(gangle) * (length)) ga2 = obs + (SIN(gangle) * (length)) gradiusx1 = (obs / ga1) * radius gradiusx2 = (obs / ga2) * radius LINE (glastx1, gy)-(glastx2, gy), 0 CIRCLE (glastx1, gy), glastrx1, 0 CIRCLE (glastx2, gy), glastrx2, 0 LINE (gx1, gy)-(gx2, gy), barcol CIRCLE (gx1, gy), gradiusx1, molcol CIRCLE (gx2, gy), gradiusx2, molcol glastx1 = gx1 glastx2 = gx2 glastrx1 = gradiusx1 glastrx2 = gradiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------8------------- hangle = angle + 4.5 hx1 = (center - (COS(hangle) * (length / 2))) hx2 = (center + (COS(hangle) * (length / 2))) ha1 = obs - (SIN(hangle) * (length)) ha2 = obs + (SIN(hangle) * (length)) hradiusx1 = (obs / ha1) * radius hradiusx2 = (obs / ha2) * radius LINE (hlastx1, hy)-(hlastx2, hy), 0 CIRCLE (hlastx1, hy), hlastrx1, 0 CIRCLE (hlastx2, hy), hlastrx2, 0 LINE (hx1, hy)-(hx2, hy), barcol CIRCLE (hx1, hy), hradiusx1, molcol CIRCLE (hx2, hy), hradiusx2, molcol hlastx1 = hx1 hlastx2 = hx2 hlastrx1 = hradiusx1 hlastrx2 = hradiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------9------------- iangle = angle + 5 ix1 = (center - (COS(iangle) * (length / 2))) ix2 = (center + (COS(iangle) * (length / 2))) ia1 = obs - (SIN(iangle) * (length)) ia2 = obs + (SIN(iangle) * (length)) iradiusx1 = (obs / ia1) * radius iradiusx2 = (obs / ia2) * radius LINE (ilastx1, iy)-(ilastx2, iy), 0 CIRCLE (ilastx1, iy), ilastrx1, 0 CIRCLE (ilastx2, iy), ilastrx2, 0 LINE (ix1, iy)-(ix2, iy), barcol CIRCLE (ix1, iy), iradiusx1, molcol CIRCLE (ix2, iy), iradiusx2, molcol ilastx1 = ix1 ilastx2 = ix2 ilastrx1 = iradiusx1 ilastrx2 = iradiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------10------------- jangle = angle + 5.5 jx1 = (center - (COS(jangle) * (length / 2))) jx2 = (center + (COS(jangle) * (length / 2))) ja1 = obs - (SIN(jangle) * (length)) ja2 = obs + (SIN(jangle) * (length)) jradiusx1 = (obs / ja1) * radius jradiusx2 = (obs / ja2) * radius LINE (jlastx1, jy)-(jlastx2, jy), 0 CIRCLE (jlastx1, jy), jlastrx1, 0 CIRCLE (jlastx2, jy), jlastrx2, 0 LINE (jx1, jy)-(jx2, jy), barcol CIRCLE (jx1, jy), jradiusx1, molcol CIRCLE (jx2, jy), jradiusx2, molcol jlastx1 = jx1 jlastx2 = jx2 jlastrx1 = jradiusx1 jlastrx2 = jradiusx2 IF STAT = 0 THEN FOR delay = 1 TO 500: NEXT delay REM-----------11------------ kangle = angle + 6 kx1 = (center - (COS(kangle) * (length / 2))) kx2 = (center + (COS(kangle) * (length / 2))) ka1 = obs - (SIN(kangle) * (length)) ka2 = obs + (SIN(kangle) * (length)) kradiusx1 = (obs / ka1) * radius kradiusx2 = (obs / ka2) * radius LINE (klastx1, ky)-(klastx2, ky), 0 CIRCLE (klastx1, ky), klastrx1, 0 CIRCLE (klastx2, ky), klastrx2, 0 LINE (kx1, ky)-(kx2, ky), barcol CIRCLE (kx1, ky), kradiusx1, molcol CIRCLE (kx2, ky), kradiusx2, molcol klastx1 = kx1 klastx2 = kx2 klastrx1 = kradiusx1 klastrx2 = kradiusx2 IF STAT = 0 THEN STAT = 1: GOTO 10 IF scanned = 0 THEN GOTO 10 IF INKEY$ <> "" THEN LOCATE 22, 5: PRINT " Analysis Aborted ": END interval = interval + .01 NEXT angle