Niille joille ei auennnut kuinka tuota luetaan niin kuva selventämään asiaa.
Tein tähän viellä n0b0 modin, joka näyttää kunkin binaarin arvon sen saa näkyviin kun käynistää kellon paramentrillä "/help".
Suurimmitta puheitta.
Code: Select all
SCREEN 460, 200
SetWindow "Binary Clock"
Dim BinLine(6)
Dim BinLineTxt (6) As String
'Määritellään kunkin numeron maksimi "binaaripituus"
BinLine(1) = 2
BinLine(2) = 4
BinLine(4) = 4
BinLine(6) = 4
BinLine(3) = 3
BinLine(5) = 3
If Lower(CommandLine()) = "/help" Then help = 1
Repeat
'lasketaan tuntien binaari
BinLineTxt(1) = Right(Str(Bin(Int(Left(GetWord(Time(), 1, ":"), 1)))), 2)
BinLineTxt(2) = Right(Str(Bin(Int(Right(GetWord(Time(), 1, ":"), 1)))), 4)
'minuuttia binaari
BinLineTxt(3) = Right(Str(Bin(Int(Left(GetWord(Time(), 2, ":"), 1)))), 3)
BinLineTxt(4) = Right(Str(Bin(Int(Right(GetWord(Time(), 2, ":"), 1)))), 4)
'sekunttienbinaari
BinLineTxt(5) = Right(Str(Bin(Int(Left(GetWord(Time(), 3, ":"), 1)))), 3)
BinLineTxt(6) = Right(Str(Bin(Int(Right(GetWord(Time(), 3, ":"), 1)))), 4)
'piirtovaihe
For i = 1 To 6
For x = 1 To BinLine(i)
If Mid(BinLineTxt(i), x, 1) = 0 Then ' väri 0 = harmaa 1 = punainen
Color cbSilver
Else
Color cbDarkRed
EndIf
If i = 1 Then ' ei anneta ensimmäistä numeroa ilmaisevaa riviä tulla liian ylös
z = 80
ElseIf i Mod 2 <> 0
z = 40
Else
z = 0
EndIf
Circle2( i * 60 , x * 40 + z, 20) ' piiretään pallo riviin
Next x
Next i
If help = 1 Then 'näytetään help "valikko" jos käynistys paramentrinä oli "/help"
For i = 1 To 4
Text 420, i * 40, 1 * 2^(5-i-1)
Text 30, i * 40, 1 * 2^(5-i-1)
Next i
EndIf
Wait 20 'ei anneta ohjelman syödä kaikkia tehoja
DrawScreen
Forever
Function Circle2(x, y, r)' piirtäää ympyrän jonka väri muuntuu pikkuhiljaa valkoseksi
For i = 1 To r
Color min(getRGB(RED) + 3 * i, 255), Min(getRGB(GREEN) + 3 * i, 255), Min(getRGB(BLUE) + 3 * i, 255) ' kasvatetaan väriarvoja ei kuitenkaaan anneta mennä yli 255
Circle x + i, y + i, r - 2 * i
Next i
EndFunction