Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,115 @@
' Turtle Graphics Library by Angelo Rosina 1995
' Ported to Freebasic by Angelo Rosina 2007
'
'(RIGH and LEF because RIGHT and LEFT are reserved keywords, of course)
Declare Sub LEF (gradi As Integer)
Declare Sub SETCOL (C As Integer)
Declare Sub SETSIZE (C As Integer)
Declare Sub RIGH (gradi As Integer)
Declare Sub FORW (passi As Integer)
Declare Sub BACK (passi As Integer)
Declare Sub TURTLE (numero As Integer)
Declare Sub UP ()
Declare Sub DOWN ()
Declare Sub DTurtle ()
Dim Shared As Integer graph, dimen, angulo, N, dis, su, pasos
Dim Shared As Integer colore(10), figura(5000,10), figura2()
Dim Shared As Long X(10), Y(10)
Dim Shared As String comando
Sub BACK (passi As Integer)
pasos = passi
comando = "d " & Str(passi)
DTurtle
comando = ""
pasos = 0
End Sub
Sub DOWN
su = 0
End Sub
Sub DTurtle Static
Dim As Integer rifa, lavora, XX, YY, scher(), FX, FY
Dim As String R
If rifa = 0 Then rifa = 1: Redim scher(5000)
If lavora Then Put (XX - dimen * 4, YY - dimen * 2), scher, Pset
'SCREEN graph
If su Then comando = "b" & comando
FX = X(N)
FY = Y(N)
R = "s" & Str(dimen) & "bm" & Str(FX) & "," & Str(FY) & "c" & Str(colore(N)) & "Ta" & Str(angulo) & comando
Draw R
X(N) = X(N) + Sin(angulo / 57.2957) * dimen / 4 * pasos
Y(N) = Y(N) + Cos(angulo / 57.2957) * dimen / 4 * pasos
XX = X(N)
YY = Y(N)
Get (X(N) - dimen * 4, Y(N) - dimen * 2)-(X(N) + dimen * 4, Y(N) + dimen * 2), scher: lavora = 1
If dis = 0 Then
R = "bm" & Str(XX) & "," & Str(YY) & "Ta" & Str(angulo) & "r1 ta " & Str(angulo + 15 + 360 * (angulo + 15 > 360)) & "u7 ta " & Str(angulo + 165 + 360 * (angulo + 165 > 360)) & "u7 ta" & Str(angulo) & " m" & Str(XX) & "," & Str(YY)
Draw R
Else
Put (XX, YY), figura2, Or
End If
End Sub
Sub FORW (passi As Integer)
pasos = -passi
comando = "u " & Str(passi)
DTurtle
comando = ""
pasos = 0
End Sub
Sub LEF (gradi As Integer)
angulo += gradi
Do Until angulo <= 360
angulo -= 360
Loop
DTurtle
End Sub
Sub RIGH (gradi As Integer)
angulo -= gradi
Do Until angulo >= 0
angulo += 360
Loop
DTurtle
End Sub
Sub SETCOL (C As Integer)
colore(N) = C
DTurtle
End Sub
Sub SETSIZE (C As Integer)
dimen = C
DTurtle
End Sub
Sub TURTLE (numero As Integer) Static
Dim As Integer i, NN, j
Dim As Integer ang()
Redim figura2(dis)
If dis <> 0 And graph <> 0 Then
For i = 0 To dis
figura2(i) = figura(i, numero)
Next i
End If
NN = N
N = numero
If j = 0 Then j = 1: Redim ang(10): dimen = 4
If X(numero) = 0 Then X(numero) = 320
If Y(numero) = 0 Then Y(numero) = 100: colore(numero) = 15
ang(NN) = angulo
angulo = ang(N)
DTurtle
End Sub
Sub UP
su = 1
End Sub

View file

@ -0,0 +1,76 @@
'Rosetta Code problem: https://rosettacode.org/wiki/Simple_turtle_graphics
'by Jjuanhdez, 03/2023
#include "Turtle_Graphics.bi"
Sub rectangle(ancho As Short, alto As Short)
For i As Short = 1 To 2
FORW alto
LEF 90
FORW ancho
LEF 90
Next i
End Sub
Sub square(lado As Short)
rectangle(lado, lado)
End Sub
Sub triangle(lado As Short)
For i As Short = 1 To 3
FORW lado
RIGH 120
Next i
End Sub
Sub house(lado As Short)
LEF 90
square lado
triangle lado
RIGH 90
End Sub
Sub barchart(lst() As Double, lado As Short)
Dim As Short i, min, max
max = lst(Ubound(lst))
For i = Lbound(lst) To Ubound(lst)
If lst(i) > max Then max = lst(i)
Next i
Dim As Short escala = lado/max
Dim As Short ancho = lado/Ubound(lst)
For i = Lbound(lst) To Ubound(lst)
rectangle lst(i), ancho
UP
FORW ancho
DOWN
Next i
UP
BACK lado
DOWN
End Sub
Screenres 800,600
Windowtitle "Simple turtle graphics"
Cls
TURTLE 1
SETSIZE 3
SETCOL 0 'black
DOWN
BACK 200
SETCOL 2 'green
house 150
UP
RIGH 90
FORW 50
Dim As Double s(1 To 6) = {1, 50, 33, 200, 130, 50}
barchart s(), 200
SETCOL 0
Sleep