Bygga en pixel nanobot (5 / 5 steg)
Steg 5: Använd din fantasi
Här är några inledande kod som tar dig upp till hastigheten.
Du kan göra viruset mindre eller lägga hinder och barriärer och koden för att övervinna dem och simulera någon aktivitet som du vill.
Syftet med Instructables är att uppmuntra ursprungliga forskning och för dig att använda din fantasi, så ge det allt du kan.
Ha det så kul!
'===============================================
"NANOBOTS - ett kluster av virus attack robotar
'===============================================
' Deklarera variabler.
Dim CX, CY, r(20) som singel, s(20) som enda
Dim i, j, a, b, c, d, e, f, g, h, k, l, m, n
Dim p(20), u, q(20) som Boolean, tarmar som boolesk
'----------------------------------------------------------------------------------
Private Sub Form_Load()
Dim Xpos, Ypos
Med Form1
. Visa
. Caption = "Robotar"
. FillColor = vbBlue
. Toppen = 10
. Vänster = 10
. Höjd = Screen.Height * 0,75
. Bredd = Screen.Width * 0,75
. AutoRedraw = sant
. DrawWidth = 1' Set DrawWidth.
. ScaleMode = 3
. CLS
Avsluta med
Xpos = Form1.ScaleWidth / 2' Get horisontella center.
Ypos = Form1.ScaleHeight / 2
'==============================================
Timer1.Enabled = sant
Timer1.Interval = 32767
Randomize
"Få centrerad lodrät.
CX = Xpos * Rnd
CY = Ypos * Rnd
Form1.CurrentX = CX
Form1.currenty = CY
u = LED (CX, CY)
'---- objective virus ------------------------------------------------
Form1.Circle (CX, CY), 30, vbBlue
q(9) = sant
tarmar = False
'==========================================
"---Ange bots startpunkt---
För i = 0 till 15
Randomize
r(i) = Rnd * ScaleWidth
s(i) = Rnd * ScaleHeight
Nästa
en = 0
b = 0
"---Skicka nanobots att hitta och fånga virus---
Göra
Randomize
' === Skicka hela klustret ===
För i = 1 till 15
Om q(i) = True sedan GoTo benzoid
"---beräkna målet partiskhet---
c = Int(r(i)): d = Int(s(i))
g = Abs(c-a)
h = Abs(d-b)
'----------------------------------------
o = 1
'========================================================================
"---hitta blå eller u---
Göra
Semper:
Om o < 3 sedan o = o + 1 annat GoTo benzoid
"---Välj nästa position på måfå---
e = Int ((o * Rnd)-(o - 1) * Rnd) ' + Int ((2 * Rnd)-Rnd)
f = Int ((o * Rnd)-(o - 1) * Rnd) ' + Int ((2 * Rnd)-Rnd)
r(i) = c + e
s(i) = d + f
"---Välj nästa position som närmast mål---
IF (Abs(r(i) - a) > g eller Abs(s(i) - b) > h) och en > 0 sedan GoTo semper
'--------------------------------------
Om r(i) < 5 sedan r(i) = r(i) + 1
Om r(i) > Form1.ScaleWidth - 5 då r(i) = r(i) - 1
Om s(i) < 5 sedan s(i) = s(i) + 1
Om s(i) > Form1.ScaleHeight - 5 då s(i) = s(i) - 1
'-----------------------------------------------------------
Xpos = r(i): Ypos = s(i)
p(i) = LED (Xpos, Ypos)
Om p(i) = vbBlue Exit gör sedan
DoEvents' avkastning till andra
Loop tills p(i) = u eller (r(i) = en och s(i) = b)
'-------------------------------------------------------------
' === när virus hittas ===
Om p(i) = vbBlue och en = 0 då
"Ange en och b till målplatsen
en = Int(r(i))
b = Int(s(i))
tarmar = sant
Slut om
'============================================
"PSet (r(i), s(i)), QBColor(i)
Linje (c, d)-(r(i), s(i)), QBColor(i)
benzoid:
DoEvents
Nästa jag
Loop "bearbetning.
End Sub
Ha det så kul!