~~ODT~~
Los programas de BASIC-256 consisten en una serie de instrucciones, separadas en lineas distintas, que se ejecutan en el orden en que aparecen.
Las constantes numéricas son cualesquiera caracteres numéricos, opcionalmente precedidos por un signo menos para indicar números negativos, y, en su caso, un punto decimal seguido por más caracteres numéricos que indican los valores decimales.
Los valores enteros positivos también pueden expresarse en sistema binario (base 2), octal (base 8) y hexadecimal (base 16). Basta con preceder los valores binarios con 0b (0b1110 = 14), los octales con 0o (0o177 = 27) y los hexadecimales con 0x (0xff= 255).
Las constantes de cadena consisten en cero o más caracteres encerrados entre comillas dobles (“).
Los nombres de variables que contienen valores numéricos deben comenzar con una letra y pueden consistir en cualquier número de caracteres alfanuméricos. Se diferencia entre mayúsculas y minúsculas. Pueden ser usadas en sustitución de constantes numéricas.
Los nombres de las variables que contienen cadenas siguen las mismas reglas que las variables numéricas, pero deben terminar con un signo de dolar ($). Pueden ser usadas en sustitución de constantes de cadena.
A partir de la versión 1.99.99 no hace falta utilizar el símbolo $ para las variables que contengan cadenas
Los arrays ( a veces denominados vectores, matrices o “arreglos”) se crean usando el comando DIM o redimensionadas usando REDIM. Pueden contener datos numéricos o cadenas. El acceso a un elemento determinado del array se consigue indicando mediante corchetes la posición del elemento, empezando desde cero. También pueden crearse y acceder a arrays de dos dimensiones.
El tamaño de un array puede obtenerse usando [?][?,] y [,?] al final de la variable de array.
print myarray[4]
mostrará en la pantalla el quinto elemento de “myarray”
Un array anónimo es un conjunto de valores numéricos o de valores de cadena, separados por comas, y encerrados entre llaves {}. Un array anónimo puede usarse bien en lugar de una variable de array, o bien para asignar valores a una variable de array.
dim myarray(4) myarray = {1, 2, 3, 4}
Los operadores +, -, *, / y ^ se usan para llevar a cabo sumas, restas, multiplicaciones, divisiones y exponentes de números enteros y de punto flotante. Son operandos válidos las constantes numéricas y/o las variables numéricas.
Los operadores %, \, &, | y ~ se usan para calcular el módulo, la división entera y las operaciones a nivel de bits “Y”, “O” y negación (“NO”) de expresiones enteras. Los números de punto flotante se convierten en enteros antes del cálculo.
El operador = se usa tanto para la asignación de variables como a modo de operador lógico de igualdad. El operador + puede ser usado para la concatenación de cualquier combinación de constantes de cadena y variables de cadena. El operador : permite separar varias instrucciones en una única linea. El operador ; suprime el salto de linea con que termina la ejecución de una instrucción PRINT. El operador # es una forma abreviada de la instrucción Rem, y puede usarse en su lugar.
Orden de operaciones | ||
---|---|---|
Nivel | Operadores | Categoría/Descripción |
1 | ( ) | Agrupación |
2 | ^ | Exponente |
3 | - ~ | Menos unario y Negación a nivel de bits (“NO”) |
4 | * / \ | Multiplicación and División |
5 | % | Resto entero (Mod) |
6 | + - | Adicción, Concatenación, y Sustracción |
7 | & | | Operadores a nivel de bits “Y” y “O” |
8 | < ⇐ > >= = <> | Comparación (numérica y de cadenas) |
9 | NOT | NO unario |
10 | AND | Operador lógico “Y” |
11 | OR | Operador lógico “O” |
12 | XOR | Operador lógico “O exclusivo” |
abs ( expresión )
Devuelve el valor absoluto de una expresión numérica.
print abs(-45) print abs(6.45)
mostrará:
45 6.45
acos ( expresión )
Calcula el arco-coseno de expresión. Los ángulos deben expresarse en radianes (0 a 2pi).
asc ( expresión )
Convierte el primer carácter de la cadena expresión en un entero que representa su valor ASCII.
Asc | Chr | Asc | Chr | Asc | Chr | Asc | Chr | Asc | Chr | Asc | Chr |
---|---|---|---|---|---|---|---|---|---|---|---|
32 | SPACE | 48 | 0 | 64 | @ | 80 | P | 96 | ` | 112 | p |
33 | ! | 49 | 1 | 65 | A | 81 | Q | 97 | a | 113 | q |
34 | “ | 50 | 2 | 66 | B | 82 | R | 98 | b | 114 | r |
35 | # | 51 | 3 | 67 | C | 83 | S | 99 | c | 115 | s |
36 | $ | 52 | 4 | 68 | D | 84 | T | 100 | d | 116 | t |
37 | % | 53 | 5 | 69 | E | 85 | U | 101 | e | 117 | u |
38 | & | 54 | 6 | 70 | F | 86 | V | 102 | f | 118 | v |
39 | ' | 55 | 7 | 71 | G | 87 | W | 103 | g | 119 | w |
40 | ( | 56 | 8 | 72 | H | 88 | X | 104 | h | 120 | x |
41 | ) | 57 | 9 | 73 | I | 89 | Y | 105 | i | 121 | y |
42 | * | 58 | : | 74 | J | 90 | Z | 106 | j | 122 | z |
43 | + | 59 | ; | 75 | K | 91 | [ | 107 | k | 123 | { |
44 | , | 60 | < | 76 | L | 92 | \ | 108 | l | 124 | | |
45 | - | 61 | = | 77 | M | 93 | ] | 109 | m | 125 | } |
46 | . | 62 | > | 78 | N | 94 | ^ | 110 | n | 126 | ~ |
47 | / | 63 | ? | 79 | O | 95 | _ | 111 | o | 127 |
print asc("A") print asc("blue")
mostrará:
65 98
0.9.4
asin ( expresión )
Calcula el arco-seno de expresión. Los ángulos deben expresarse en radianes (0 a 2pi).
atan ( expression )
Calcula el arco-tangente de expresión. Los ángulos deben expresarse en radianes (0 a 2pi).
ceil ( expresión )
Devuelve el menor entero que sea mayor o igual a expresión.
print ceil(9.1) print ceil(-5.4)
mostrará:
10 -5
changedir expresión
changedir ( expresión )
Cambia el directorio de trabajo actual a la ruta especificada en expresión. Para separar las carpetas en la descripción de la ruta completa se usa la barra (/), cualquiera que sea el sistema (incluido Windows).
0.9.6r
chr ( expresión )
Convierte el número entero expresión en una cadena de un único carácter con el valor ASCII del número. Ver en asc una tabla completa de conversión de caracteres ASCII.
print chr(66)+chr(111)+chr(111)+chr(33)
mostrará:
Boo!
0.9.4
circle x,y,r
Dibuja un círculo con centro en x,y y radio r, usando el color actual.
clickb
clickb ( )
Devuelve los últimos botones del ratón que el usuario ha pulsado ( si está sobre el área de gráficos). Devuelve 0 si no se ha registrado ninguna pulsación. Si se han pulsado varios botones el valor es la suma de los valores de los botones pulsados.
Valores devueltos | |
---|---|
Valor | Botón del ratón pulsado |
0 | Ninguno |
1 | Izquierdo |
2 | Derecho |
4 | Central |
# elimina cualquier pulsación previa clickclear # espera a que el usuario pulse el ratón print "pulsa el ratón sobre el área de gráficos" while clickb = 0 pause .01 endwhile # muestra el punto donde el usuario ha pulsado print "El usuario ha pulsado en (" + clickx + "," + clicky + ")"
0.9.4d
clickclear
clickclear ( )
Deja ClickB, Clickx y Clicky con valor cero, de modo que se pueda conocer fácilmente cuando se registra la siguiente pulsación del ratón.
Ver el programa de ejemplo en Clickb.
0.9.4d
clickx
clickx ( )
Devuelve la coordenada x que el puntero del ratón tenía en el área de gráficos en el momento en que el usuario pulsó por última vez un botón del ratón.
Ver el programa de ejemplo en Clickb.
0.9.4d
clicky
clicky ( )
Devuelve la coordenada y que el puntero del ratón tenía sobre el área de gráficos en el momento en que el usuario pulsó por última vez un botón del ratón.
Ver programa de ejemplo en Clickb.
0.9.4d
clg
Borra el contenido de la ventana de gráficos.
close
close ( )
close NúmerodeArchivo
close ( NúmerodeArchivo )
Cierra un archivo abierto. Si no hay ninguno abierto con ese número de archivo, este comando no hace nada. Si el número de archivo no se especifica , se usa el número cero (0).
cls
Borra el contenido de la ventana de texto.
color NombredelColor
color ( NombredelColor )
color valor_rgb
color ( valor_rgb )
Establece como color de dibujo actual el NombredelColor, el color RGB - compuesto por la combinación rojo, azul, verde- , o el valor RGB.
Hay un color especial denominado CLEAR, cuyo valor es -1. Si se establece como color actual, los pixels o figuras que se dibujen borrarán los pixels del área de gráficos y los harán transparentes. Esto es especialmente útil cuando se crean sprites usando el comando Spriteslice.
Nombres de color y valores RGB | |||
---|---|---|---|
Nombre del color | Valores RGB | ||
black | 0, 0, 0 | <hi #000000>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
white | 255, 255, 255 | <hi #FFFFFF>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
red | 255, 0, 0 | <hi #FF0000>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
darkred | 128, 0, 0 | <hi #800000>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
green | 0, 255, 0 | <hi #00FF00>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
darkgreen | 0, 128, 0 | <hi #008000>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
blue | 0, 0, 255 | <hi #0000FF>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
darkblue | 0, 0, 128 | <hi #000080>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
cyan | 0, 255, 255 | <hi #00FFFF>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
darkcyan | 0, 128, 128 | <hi #008080>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
purple | 255, 0, 255 | <hi #FF00FF>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
darkpurple | 128, 0, 128 | <hi #800080>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
yellow | 255, 255, 0 | <hi #FFFF00>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
darkyellow | 128, 128 ,0 | <hi #808000>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
orange | 255, 102, 0 | <hi #FF6600>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
darkorange | 176, 61 ,0 | <hi #B03D00>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
grey | 164, 164 ,164 | <hi #A4A4A4>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
darkgrey | 128, 128 ,128 | <hi #808080>~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~~~SP~~</hi> | |
clear | -1 | ~~SP~~ |
clg color grey rect 0,0,graphwidth, graphheight color red circle 100,100,50 color rgb(255,160,160) circle 100,100,25
dibujará un rectángulo gris con un círculo rojo con el centro rosa.
0.9.5m
cos ( expresión )
Calcula el coseno de expresión. Expresión debe estar en radianes.
La función cos no produce un resultado exacto.
clg color black # Traza una linea que cruza del area de gráficos line 0,150,300,150 # punto inicial lastx = 0 lasty = cos(0) * 50 + 150 # ahora, avanzamos a lo largo de la linea y trazamos for x = 0 to 300 step 5 angle = x / 300 * 2 * pi y = cos(angle) * 50 + 150 line lastx, lasty, x, y lastx = x lasty = y next x
currentdir
currentdir ( )
Devuelve el nombre de la ruta completa del directorio actual de BASIC-256. Para separar las carpetas en la descripción de la ruta completa se usa la barra (/), cualquiera que sea el sistema (incluido Windows).
0.9.6r
day
day ( )
Devuelve el actual día del mes (1-31), de acuerdo con el reloj del sistema.
print "La fecha de hoy es "; print day + "/" (month + 1) + "/" + year
mostrará:
La fecha de hoy es 30/11/2009
0.9.4
dbclose
dbclose ( )
Cierra el archivo de base de datos SQLite actualmente abierto.
Ver ejemplo de uso en la página de DBOpen.
Puede encontrarse más información acerca de bases de datos en general y SQLite en particular en SQLite Home Page y SQL at Wikipedia.
0.9.6y
dbcloseset
dbcloseset ( )
Cierra el recordset creado por DBOpenSet y que está actualmente abierto.
Ver ejemplo de uso en la página de DBOpen.
Puede encontrarse más información acerca de bases de datos en general y SQLite en particular en SQLite Home Page y SQL at Wikipedia.
0.9.6y
dbexecute InstrucciónSQL
dbexecute ( InstrucciónSQL )
Ejecuta una instrucción SQL en el archivo de base de datos SQLite abierto. Esta instrucción no crea un recordset.
Ver ejemplo de uso en la página de DBOpen.
Puede encontrarse más información acerca de bases de datos en general y SQLite en particular en SQLite Home Page y SQL at Wikipedia.
0.9.6y
dbfloat ( NúmerodeColumna )
Devuelve el valor de punto flotante (decimal) de la columna especificada de la fila actual en el recordset abierto.
Ver ejemplo de uso en la página de DBOpen.
Puede encontrarse más información acerca de bases de datos en general y SQLite en particular en SQLite Home Page y SQL at Wikipedia.
0.9.6y
dbint ( NúmerodeColumna )
Devuelve el valor entero de la columna especificada de la fila actual en el recordset abierto.
Ver ejemplo de uso en la página de DBOpen.
Puede encontrarse más información acerca de bases de datos en general y SQLite en particular en SQLite Home Page y SQL at Wikipedia.
0.9.6y
dbopen ArchivoSQLite
dbopen ( ArchivoSQLite )
Abre un archivo de base de datos SQLite. Si el archivo no existe, lo crea.
#base de datos "foo" - crea una base de datos, introduce datos en una tabla, abre un recordset y lee datos desde la tabla. # crea un nuevo archivo de base de datos o lo abre dbopen "dbtest.sqlite3" # borra la tabla existente en foo - Si es una base de datos nueva, el error se captura onerror errortrap dbexecute "drop table foo;" offerror # crea la tabla e introduce datos en ella dbexecute "create table foo (id integer, words text, value decimal);" dbexecute "insert into foo values (1,'one',3.14);" dbexecute "insert into foo values (2,'two',6.28);" dbexecute "insert into foo values (3,'three',9.43);" # abre un recordset y recorre las filas de datos dbopenset "select * from foo order by words;" while dbrow() print dbint(0) + dbstring(1) + dbfloat(2) end while dbcloseset # cierra todo dbclose end errortrap: # acepta el error - no muestra nada - vuelve a la instrucción siguiente return
mostrará:
1one3.14 3three9.43 2two6.28
Puede encontrarse más información acerca de bases de datos en general y SQLite en particular en SQLite Home Page y SQL at Wikipedia.
0.9.6y
dbopenset InstrucciónSQL
dbopenset ( InstrucciónSQL )
Ejecuta una instrucción SQL y crea un recordset que el programa puede utilizar.
Ver ejemplo de uso en la página de DBOpen.
Puede encontrarse más información acerca de bases de datos en general y SQLite en particular en SQLite Home Page y SQL at Wikipedia.
0.9.6y
dbrow
dbrow ( )
Hace que se avance a la siguiente fila del recordset. Devuelve un valor verdadero (true) si hay una fila y falso (false) si se ha llegado al final del recordset.
Ver ejemplo de uso en la página de DBOpen.
Puede encontrarse más información acerca de bases de datos en general y SQLite en particular en SQLite Home Page y SQL at Wikipedia.
0.9.6y
dbstring ( NúmerodeColumna )
Devuelve el valor de cadena de la columna especificada de la fila actual en el recordset abierto.
Ver ejemplo de uso en la página de DBOpen.
Puede encontrarse más información acerca de bases de datos en general y SQLite en particular en SQLite Home Page y SQL at Wikipedia.
0.9.6y
degrees ( expresión )
dim VariableNumérica ( NúmeroEntero )
dim VariableCadena$ ( NúmeroEntero )
dim VariableNumérica ( filas , columnas )
dim VariableCadena$ ( filas , columnas )
Crea y devuelve un nuevo array de longitud NúmeroEntero o un array bidimensional organizado en filas y columnas. Dependiendo de la variable a que se asigne, se crea un array numérico o de cadenas.
El primer elemento de un array tiene como índice 0 (cero). El rango de los índices va desde 0 hasta longitud-1.
dim z(5) z = {1, 2, 3, 4, 5} print z[0] + " " + z[4]
dará como resultado:
1 5
dim c$(4) c$ = {"cow", "brow", "how", "now"} print c$[2] + " " + c$[3] + " "; print c$[1] + " " + c$[0] + "?"
mostrará
how now brown cow?
end
Finaliza la ejecución del programa.
print "He terminado" end print "¿ O no ?"
mostrará:
He terminado.
eof
eof()
eof(NúmerodeArchivo)
Devuelve un indicador binario (verdadero/falso) que señala si se ha llegado al final del archivo (EOF). Si el número de archivo no se especifica, se usa el número cero (0).
0.9.4
exists ( expresión )
Devuelve un indicador binario (verdadero/falso) que señala si existe o no la ruta de archivo especificada en expresión.
0.9.4
fastgraphics
Activa el modo “fastgraphics” hasta que el programa se detenga. El modo “fastgraphics” supone que la pantalla de gráficos no se actualiza hasta que se presente una instrucción REFRESH. Puede ser utilizado para acelerar significativamente animaciones complejas y eliminar parpadeos.
Cuando se hagan animaciones, se recomienda poner todas las instrucciones de dibujo en subrutinas y usar una única instrucción REFRESH después de que se haya dibujado completamente cada imagen o “frame”.
float ( expresión )
Convierte expresión en un número de punto flotante (decimal). Float convertirá una cadena o un entero a un valor decimal. Si la expresión no puede ser convertida, se devuelve un valor cero.
0.9.4
floor ( expression )
Devuelve el mayor entero que sea menor o igual que expresión.
font NombredeFuente, puntos, peso
Establece NombredeFuente como fuente a usar por la instrucción texto. El tamaño se define en puntos (1/72“). Peso representa un número de 1 a 100 que define el grosor de los caracteres: Fino=25, Normal=50 y Negrita=75.
color grey rect 0,0,graphwidth,graphheight color red font "Times New Roman",18,50 text 10,100,"This is Times New Roman" color darkgreen font "Tahoma",28,100 text 10,200,"This is BOLD!"
0.9.4
getcolor
getcolor()
Devuelve el valor RGB del color de dibujo actual (el último que se haya establecido con la instrucción color). El valor RGB se calcula como ((rojo * 256) + verde *256) + azul, donde rojo, verde y azul toman valor entre 0 y 255. Si se estableció CLEAR como color de dibujo, se devuelve el valor -1.
color red print getcolor
mostrará:
16711680
0.9.5m
getslice(x, y, anchura, altura)
Devuelve una cadena que contiene una representación hexadecimal del rectángulo definido por los parámetros. El formato de la cadena es: 4 primeros bytes: anchura; 4 siguientes: altura; 6 bytes por cada pixel (anchura * altura).
0.9.6b
goto etiqueta
Salta a la etiqueta especificada.
print "A mi"; goto salta print " no"; salta: print " me gustan las galletas."
will print
A mi me gustan las galletas.
graphheight
graphheight()
Devuelve la altura (dimensión y) del área de gráficos actual.
0.9.3
graphsize x_expresión, y_expresión
Cambia el tamaño del área de gráficos y redibuja la aplicación BASIC256.
0.9.3
graphwidth
graphwidth()
Devuelve la anchura (dimensión x) del área de gráficos actual.
0.9.3
hour
hour()
Devuelve la hora actual del día (0-23) de acuerdo con el reloj del sistema.
# mostrar la fecha dim months$(12) months$ = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"} print right("0" + day, 2) + "-" + months$[month] + "-" +year # mostrar la hora h = hour if h > 12 then h = h - 12 ampm$ = "PM" else ampm$ = "AM" end if if h = 0 then h = 12 print right("0" + h, 2) + "-" + right("0" + minute, 2) + "-" + right("0" + second, 2) + " " + ampm$
mostrará algo similar a:
15-julio-2010 10-00-02 PM
0.9.4
instr ( pajar , aguja )
instr ( pajar , aguja , inicio )
instr ( pajar , aguja , inicio , NoDistinguirMayúsculas)
Comprueba si la cadena aguja está contenida en la cadena pajar. Si así ocurre, esta función devuelve la posición del carácter inicial del primer lugar donde aguja aparece. En otro caso, la función devuelve 0. Puede también especificarse opcionalmente una posición de partida para que la búsqueda comience en inicio y el valor booleano NoDistinguirMayúsculas para indicar que la búsqueda no diferencie entre mayúsculas y minúsculas.
La primera posición en la cadena es la 1.
print instr("Hello", "lo") print instr("101,222,333",",",5)
mostrará:
4 8
0.9.6.55
int ( expresión )
Convierte expresión en un número entero. Int convierte una cadena o un número de punto flotante en un valor entero. Si la expresión no puede convertirse, se devuelve un valor cero.
imgload x, y, NombredeArchivo
imgload x, y, escala, NombredeArchivo
imgload x, y, escala, rotación, NombredeArchivo
Carga una imagen almacenada en un archivo y la muestra en el área de gráficos.
Los parámetros x e y representan la posición en la pantalla para el CENTRO de la imagen cargada. Este comportamiento es diferente al del resto de las instrucciones gráficas. El eje de rotación también es ese CENTRO.
La instrucción Imgload lee la mayoría de los formatos gráficos de archivo, incluyendo BMP (Windows Bitmap), GIF (Graphic Interchange Format),JPG/JPEG (Joint Photographic Experts Group) y PNG (Portable Network Graphics).
De manera opcional, el tamaño de la imagen cargada puede ser definida por escala (1=tamaño normal). También puede rotarse la imagen de acuerdo con un ángulo especificado ( en radianes, en sentido de las agujas del reloj) en torno al centro de la imagen.
0.9.6l
input expresión, VariableCadena
input expresión, VariableNumérica
input VariableCadena
input VariableNumérica
Espera a que el usuario teclee una linea de texto en el área de texto. Cuando el usuario pulsa la tecla intro o return, se lee la linea y se almacena en VariableCadena o VariableNumérica.
Opcionalmente, la función puede mostrar el texto expresión al usuario.
Si se ha especificado una variable numérica y se introducen datos no numéricos, se asignará el valor cero a la variable.
También pueden especificarse referencias a los elementos de un array.
key
key()
Devuelve un valor entero que corresponde a la tecla que ha sido pulsada en el teclado. Si no se ha pulsado ninguna tecla desde la última llamada a la función key, esta devuelve el valor cero (0).
if key = 47 then print key
no mostrará los resultados deseados, debido a que se esta llamando a la función dos veces y ésta devolverá diferentes valores cada vez. Este código sí hace lo que se pretende:
a = key if a = 47 then print a
lasterror
lasterror ( )
Devuelve el número del último error en tiempo de ejecución.
Ver ejemplo de uso en la página Códigos de error.
0.9.6z
lasterrorextra
lasterrorextra ( )
Devuelve información “extra” del error, relativa a la instrucción que lo causa.
Ver ejemplo de uso en la página Códigos de error.
0.9.6z
lasterrorline
lasterrorline ( )
Devuelve el número de linea del programa en la que ha ocurrido el error en tiempo de ejecución.
Ver ejemplo de uso en la página Códigos de error.
0.9.6z
left( cadena, longitud)
Devuelve una porción de cadena formada con los primeros longitud caracteres de la cadena.
print left("Hello", 2)
will display
He
0.9.5b
length( cadena )
Devuelve el número de caracteres que hay en cadena.
line x0, y0, x1, y1
line(x0, y0, x1, y1)
Traza una linea desde el punto x0,y0 hasta el punto x1,y1.
log ( expresión )
Devuelve el logaritmo en base e de expresión.
0.9.5w
lower( cadena)
Devuelve cadena con todos los caracteres alfabéticos convertidos en minúsculas.
print lower("AZul!")
mostrará:
azul!
0.9.5e
mid( cadena, CarácterInicial, longitud)
Devuelve una porción del la cadena especificada, empezando desde la posición CarácterInicial y continuando hasta alcanzar longitud caracteres o el final de la cadena (lo que ocurra antes).
print mid("Hello", 2, 3) print mid("Hello", 2, 999)
mostrará:
ell ello
minute
minute()
Devuelve el minuto actual de la hora (0-59) de acuerdo con el reloj del sistema.
# mostrar la fecha dim months$(12) months$ = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"} print right("0" + day, 2) + "-" + months$[month] + "-" +year # mostrar la hora h = hour if h > 12 then h = h - 12 ampm$ = "PM" else ampm$ = "AM" end if if h = 0 then h = 12 print right("0" + h, 2) + "-" + right("0" + minute, 2) + "-" + right("0" + second, 2) + " " + ampm$
mostrará algo similar a:
15-julio-2010 10-00-02 PM
0.9.4
month
month()
Devuelve el mes actual de acuerdo con el reloj del sistema. Enero es 0, febrero es 1,…diciembre es 11.
cls dim n$(12) n$ = {"ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"} print day + "-" + n$[month] + "-" + year
el día de Año Nuevo mostraría:
1-ene-2010
0.9.4
mouseb
mouseb()
Devuelve los botones del ratón que el usuario está pulsando ( si está sobre el área de gráficos). Devuelve 0 si no se registra ninguna pulsación. Si se pulsan varios botones, el valor es la suma de los valores de los botones pulsados.
Valores devueltos | |
---|---|
Valor | Botón del ratón pulsado |
0 | Ninguno |
1 | Izquierdo |
2 | Derecho |
4 | Central |
0.9.4d
mousex
mousex()
Devuelve la actual o última coordenada x del puntero del ratón en el área de gráficos.
0.9.4d
mousey
mousey()
Devuelve la actual o última coordenada y del puntero del ratón en el área de gráficos.
0.9.4d
netclose
netclose ( )
netclose NúmerodeSocket
netclose ( NúmerodeSocket )
Cierra la conexión de red (socket) especificada. Si NúmerodeSocket no se especifica, se utiliza el socket número cero (0).
Ver ejemplo de uso en la página de NetConnect.
0.9.6.31
netconnect NombredeServidor, NúmerodePuerto
netconnect ( NombredeServidor, NúmerodePuerto )
netconnect NúmerodeSocket, NombredeServidor, NúmerodePuerto
netconnect ( NúmerodeSocket, NombredeServidor, NúmerodePuerto )
Abre una conexión de red (cliente) con un servidor. La dirección IP o el nombre del host del servidor se especifica en el argumento NombredeServidor, y el número de puerto de rede en el argumento NúmerodePuerto. Si no se indica un NúmerodeSocket se utilizara el número cero (0).
Abra dos instancias de BASIC-256 en un mismo equipo. Pegue el código “servidor” en una y el código “cliente” en el otro. Ejecute en primer lugar el servidor y después el cliente. Puede verse como los mensajes son enviados de un lado a otro entre los dos procesos.
# get a message and send back success print "wait for connection on " + netaddress() netlisten 9997 print "got connection" do while not netdata pause .1 print "."; end while n$ = netread print n$ netwrite "I got '" + n$ + "'." until n$ = "end" netclose
mostrará (donde xxx.xxx.xxx.xxx es la dirección IPv4 de su equipo):
wait for connection on xxx.xxx.xxx.xxx got connection .1 Hi There ....2 Hi There ........3 Hi There ..........4 Hi There .....5 Hi There .......6 Hi There ....7 Hi There ..........8 Hi There ....9 Hi There .....10 Hi There .end
# el usuario debe teclear un mensaje y enviarlo al servidor input "enter message?", m$ netconnect "127.0.0.1", 9997 for t = 1 to 10 pause rand netwrite t + " " + m$ print netread next t netwrite "end" print netread netclose
mostrara:
enter message?Hi There I got '1 Hi There'. I got '2 Hi There'. I got '3 Hi There'. I got '4 Hi There'. I got '5 Hi There'. I got '6 Hi There'. I got '7 Hi There'. I got '8 Hi There'. I got '9 Hi There'. I got '10 Hi There'. I got 'end'.
0.9.6.31
netdata
netdata ( )
netdata NúmerodeSocket
netdata ( NúmerodeSocket )
Devuelve el valor verdadero (true,1) si hay datos esperando a ser leídos usando la función [NetRead|NetRead]]. En otro caso devuelve el valor falso (false,0). Si no se especifica un NúmerodeSocket, se usará el número cero (0).
Ver ejemplo de uso en la página de NetConnect.
0.9.6.31
netlisten NúmerodePuerto
netlisten ( NúmerodePuerto)
netlisten NúmerodeSocket, NúmerodePuerto
netlisten ( NúmerodeSocket, NúmerodePuerto)
Abre una conexión de red (servidor) en un determinado puerto y espera a que otro programa se conecte. Si no se especifica NúmerodeSocket, se usará el número cero (0).
Ver ejemplo de uso en la página de NetConnect.
0.9.6.31
netread
netread ( )
netread ( NúmerodeSocket )
Lee datos de la conexión de red especificada y los devuelve como una cadena. Esta función esperará hasta que se reciban datos. Si no se especifica NúmerodeSocket, se utilizará el socket número cero (0).
Ver ejemplo de uso en la página de NetConnect.
0.9.6.31
netwrite cadena
netwrite ( cadena )
netwrite NúmerodeSocket, cadena
netwrite ( NúmerodeSocket, cadena )
Envía una cadena a la conexión de red abierta que se especifique. Si no se especifica NúmerodeSocket, se utilizará el socket número cero (0).
Ver ejemplo de uso en la página de NetConnect.
0.9.6.31
open NombredeArchivo
open(NombredeArchivo)
open NúmerodeArchivo, NombredeArchivo
open(NúmerodeArchivo, NombredeArchivo)
Abre un archivo para lectura y escritura. El nombre del archivo es especificado mediante una cadena, y puede ser una ruta absoluta o relativa. Si el número de archivo no se especifica , se usa el número cero (0).
BASIC-256 puede tener hasta 8 archivos abiertos a la vez. Los archivos se numeran desde el 0 hasta el 7. Abrir un archivo con un número cuando ya hay otro abierto con ese número, cerrará este último.
offerror
Desactiva la captura de errores y restaura el comportamiento por defecto en caso de error.
Ver ejemplo de uso en la página Códigos de error.
0.9.6z
onerror etiqueta
Hace que la subrutina indicada por etiqueta sea ejecutada cuando un error en tiempo de ejecución ocurra. El control del programa puede ser devuelto a la siguiente instrucción con una instrucción Return en la subrutina.
Ver ejemplo de uso en la página Códigos de error.
0.9.6z
pause segundos
pause (segundos)
Detiene la ejecución durante el número de segundos especificado. El valor de segundos puede ser un valor decimal, por lo que es posible conseguir una precisión inferior al segundo.
pixel (x, y )
Devuelve el valor RGB del pixel situado en las coordenadas x,y. Si el pixel no ha sido modificado desde la última instrucción Clg o fue pintado con el color CLEAR, se devuelve el valor -1.
0.9.5m
plot x, y
plot ( x, y )
Cambia el pixel situado en las coordenadas x, y del área de gráficos al color actual.
poly variable de array numérica
poly {x1, y1, x2, y2, x3, y3 …}
Dibuja un polígono. Los lados del polígono son definidos por los valores almacenados en el array, el cual debe contener pares x,y secuencialmente. La (longitud del array/2) dará el número de puntos. Un polígono puede tambien especificarse usando una lista de pares x,y encerrada entre llaves {}.
El número de puntos, como argumento del array, fue eliminado de la instrucción poly en la versión 0.9.4
print expresión [ ; ]
Escribe un texto en el area de texto, añadiendo un salto de linea. Si se incluye el punto y coma opcional, no se incluye el salto de linea.
putslice x, y, recorte$
putslice x, y, recorte$, ColorTransparente
Pone en la pantalla el gráfico almacenado en la cadena recorte$, situándolo en las coordenadas x,y. Si se especifica un color transparente, los puntos de ese color no se dibujan.
0.9.6b
radians ( expresión )
rand
rand()
Devuelve un número aleatorio entre 0 y 1. La distribución de los valores es uniforme.
Para obtener números aleatorios entre otro intervalo de valores, basta con multiplicar o sumar los números apropiados. Por ejemplo, para generar un entero entre 0 y 10, puede usarse la expresión int(rand * 10).
read
read()
read(NúmerodeArchivo)
Lee y devuelve un token de un archivo abierto. Un token es cualquier cadena de caracteres separada por un espacio, tabulación o carácter de nueva linea. Si el número de archivo no se especifica, se usa el número cero (0).
readline
readline()
readline(NúmerodeArchivo)
Lee y devuelve una linea completa de un archivo abierto. Si el número de archivo no se especifica, se usa el número cero.
rect x,y,anchura,altura
rect ( x, y, anchura, altura )
Dibuja un rectángulo de (anchura x altura) pixels, usando el color actual. La esquina superior izquierda estará situada en x, y.
redim VariableNumérica( NúmeroEntero )
redim VariableCadena$( NúmeroEntero )
redim VariableNumérica( filas , columnas )
redim VariableCadena$( filas , columnas )
Redimensiona un array previamente creado, conservando los datos. Si se aumenta el tamaño del array, los nuevos elementos serán inicializados con cero o una cadena vacía. Si se reduce el tamaño, los elementos de la parte final se suprimen y se pierden.
0.9.5t
refresh
Actualiza la ventana de gráficos para mostrar lo que se ha dibujado desde el último comando refresh. Refresh sólo funciona en el modo Fastgraphics.
rem comentario
# comentario
Linea de comentario. Una linea que comienza con REM ( o la abreviatura #) se ignora.
reset
reset()
reset(NúmerodeArchivo)
Borra el contenido de un archivo abierto. Todos los datos almacenados en él se pierden. Si el número de archivo no se especifica, se usa el número cero (0).
rgb( rojo, verde, azul )
Devuelve el valor RGB del color definido por sus componentes rojo, verde y azul. Los valores válidos para rojo, verde y azul van del 0 al 255.
0.9.5m
right( cadena, longitud)
Devuelve una porción de cadena formada con los últimos longitud caracteres de la cadena.
print right("Hello", 2)
mostrará:
lo
0.9.5b
say expresión
say ( expresión )
Usa el motor del sistema “Text to Speech” (TTS) para decir la expresión. En LINUX son necesarias las bibliotecas FLite o eSpeak. En Windows se usará la voz SAPI predeterminada.
En Windows, SAPI usará la voz predeterminada que se haya definido en el panel de control. En Linux/Mac, si se usa la biblioteca eSpeak es necesario copiar el archivo de voz elegido con el nombre default.
# Instrucciones para establecer como lenguaje predeterminado "es" en Ubuntu 10.10 # (en tu sistema podría ser diferente) cd /usr/share/espeak-data/voices sudo cp es default
0.9.4
second
second()
Devuelve el segundo actual (0-59) dentro del minuto actual, de acuerdo con el reloj del sistema.
# mostrar la fecha dim months$(12) months$ = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"} print right("0" + day, 2) + "-" + months$[month] + "-" +year # mostrar la hora h = hour if h > 12 then h = h - 12 ampm$ = "PM" else ampm$ = "AM" end if if h = 0 then h = 12 print right("0" + h, 2) + "-" + right("0" + minute, 2) + "-" + right("0" + second, 2) + " " + ampm$
mostrará algo similar a:
15-julio-2010 10-00-02 PM
0.9.4
seek posición
seek ( posición )
seek NúmerodeArchivo, posición
seek ( NúmerodeArchivo, posición )
Mueve el punto de lectura/escritura a una posición determinada (desplazamiento en bytes desde el inicio del archivo) dentro del un archivo abierto. Si el número de archivo no se especifica, se usa el número cero (0).
0.9.4
sin ( expresión )
Calcula el seno de expresión. Expresión debe estar en radianes.
La función sin no produce un resultado exacto.
clg color black # Traza una linea que cruza el area de gráficos line 0,150,300,150 # punto inicial lastx = 0 lasty = sin(0) * 50 + 150 # ahora, avanzamos a lo largo de la linea y trazamos for x = 0 to 300 step 5 angle = x / 300 * 2 * pi y = sin(angle) * 50 + 150 line lastx, lasty, x, y lastx = x lasty = y next x
size
size()
size(NúmerodeArchivo)
Devuelve el tamaño en bytes de un archivo abierto. Si el número de archivo no se especifica, se usa el número cero (0).
0.9.4
sound frecuencia, duración
sound ( frecuencia, duración )
sound ( array )
sound array
sound {frecuencia1, duración1, frecuencia2, duración2, …}
Produce un sonido mediante los altavoces del equipo. La frecuencia se expresa en Hz y la duración en milisegundos (1/1000 de un segundo). La instrucción puede recibir también un array o lista que contenga las frecuencias y duraciones. Esto elimina cualquier chasquido entre sonidos cuando se hace sonar sucesivamente más de uno. El soporte para sonido en sistemas LINUX se incorporó en la versión 0.0.5g. La instrucción fue modificada para usar el dispositivo de sonido predeterminado en Windows en la versión 0.9.5h.
spritecollide ( sprite1, sprite2)
Devuelve verdadero si los dos sprites están chocando. La función Spritecollide assume que los sprites están definidos por un rectángulo del tamaño de la imagen cargada. La colisión se calcula usando esos rectángulos. Para sprites redondos o de formas extrañas esta función puede detectar falsas colisiones.
Spritedim, Spriteh, Spritehide, Spriteload, Spritemove, Spriteplace, Spriteshow, Spriteslice, Spritev, Spritew, Spritex, Spritey
0.9.6n
spritedim n
spritedim ( n )
Crea n áreas de almacenamiento de sprites en la memoria . En el programa se accede a los sprites por un número de sprite de 0 a n-1.
Spritecollide, Spriteh, Spritehide, Spriteload, Spritemove, Spriteplace, Spriteshow, Spriteslice, Spritev, Spritew, Spritex, Spritey
0.9.6n
spriteh ( NúmeroSprite )
Devuelve la altura, en pixels, de un sprite que se ha cargado.
Spritecollide, Spritedim, Spritehide, Spriteload, Spritemove, Spriteplace, Spriteshow, Spriteslice, Spritev, Spritew, Spritex, Spritey
0.9.6n
spritehide NúmeroSprite
spritehide ( NúmeroSprite )
Oculta un sprite. Toda la información sobre la imagen y su posición se mantiene.
Spritecollide, Spritedim, Spriteh, Spriteload, Spritemove, Spriteplace, Spriteshow, Spriteslice, Spritev, Spritew, Spritex, Spritey
0.9.6n
spriteload NúmeroSprite, NombreArchivo
spriteload ( NúmeroSprite, NombreArchivo )
Carga una imagen o gráfico desde un archivo y lo guarda como un sprite. El sprite estará activo y podrá ser movido pero no se mostrará en pantalla hasta que la instrucción Spriteshow se ejecute para ese sprite. La instrucción Spriteload lee la mayoría de los formatos de imagen habituales, incluyendo: BMP (Windows Bitmap), GIF (Graphic Interchange Format),JPG/JPEG (Joint Photographic Experts Group), y PNG (Portable Network Graphics).
Spritecollide, Spritedim, Spriteh, Spritehide, Spritemove, Spriteplace, Spriteshow, Spriteslice, Spritev, Spritew, Spritex, Spritey
0.9.6n
spritemove NúmeroSprite, dx, dy
spritemove ( NúmeroSprite, dx, dy )
Mueve un sprite, partiendo se su posición actual,el número de pixels especificados. El movimiento se limitará a la pantalla actual.
Spritecollide, Spritedim, Spriteh, Spritehide, Spriteload, Spriteplace, Spriteshow, Spriteslice, Spritev, Spritew, Spritex, Spritey
0.9.6n
spriteplace NúmeroSprite, x, y
spriteplace ( NúmeroSprite, x, y )
Sitúa el centro de un sprite en una posición específica de la pantalla. Al igual que en Imgload, la posición del sprite se refiere al punto central del sprite y no a la esquina superior izquierda, como ocurre con la mayoría de las instrucciones gráficas.
Spritecollide, Spritedim, Spriteh, Spritehide, Spriteload, Spritemove, Spriteshow, Spriteslice, Spritev, Spritew, Spritex, Spritey
0.9.6n
spriteshow NúmeroSprite
spriteshow ( NúmeroSprite )
Muestra un sprite que está oculto.
Spritecollide, Spritedim, Spriteh, Spritehide, Spriteload, Spritemove, Spriteplace, Spriteslice, Spritev, Spritew, Spritex, Spritey
0.9.6n
spriteslice NúmeroSprite, x, y, anchura, altura
spriteslice ( NúmeroSprite, x, y, anchura, altura )
Copia la región rectangular de la pantalla que tiene la esquina superior izquierda en las coordenadas x,y y la anchura y altura especificadas, y crea un sprite. El sprite estará activo y podrá ser movido pero no se mostrará en pantalla hasta que la instrucción Spriteshow se ejecute. Se recomienda usar la instrucción Clg antes de dibujar y recortar el sprite. Todos los pixels no coloreados serán transparentes cuando el sprite se dibuje en la pantalla. Los pixels transparentes también se pueden conseguir dibujando con el color CLEAR.
Spritecollide, Spritedim, Spriteh, Spritehide, Spritemove, Spriteplace, Spriteshow, Spritev, Spritew, Spritex, Spritey
0.9.6o
spritev ( NúmeroSprite )
Devuelve verdadero si el sprite es visible.
Spritecollide, Spritedim, Spriteh, Spritehide, Spriteload, Spritemove, Spriteplace, Spriteshow, Spriteslice, Spritex, Spritey
0.9.6o
spritew ( NúmeroSprite )
Devuelve la anchura, en pixels, de un sprite que se ha cargado.
Spritecollide, Spritedim, Spriteh, Spritehide, Spriteload, Spritemove, Spriteplace, Spriteshow, Spriteslice, Spritev, Spritex, Spritey
0.9.6n
spritex ( NúmeroSprite )
Devuelve la coordenada x del punto central de un sprite que se ha cargado.
Spritecollide, Spritedim, Spriteh, Spritehide, Spriteload, Spritemove, Spriteplace, Spriteshow, Spriteslice, Spritev, Spritew, Spritey
0.9.6n
spritey ( NúmeroSprite )
Devuelve la coordenada y del punto central de un sprite que se ha cargado.
Spritecollide, Spritedim, Spriteh, Spriteload, Spritemove, Spriteplace, Spriteshow, Spriteslice, Spritev, Spritew, Spritex
0.9.6n
stamp x, y, array
stamp x, y, {x1, y1, x2, y2, x3, y3 …}
stamp x, y, escala, array
stamp x, y, escala, {x1, y1, x2, y2, x3, y3 …}
stamp x, y, escala, rotación, array
stamp x, y, escala, rotación, {x1, y1, x2, y2, x3, y3 …}
Dibuja un polígono con la esquina superior izquierda (origen) en x,y. De manera opcional, el tamaño del polígono puede ser definido por escala (1=tamaño normal). También se puede rotar la imagen de acuerdo con un ángulo especificado ( en radianes, en sentido de las agujas del reloj) en torno al origen. Los lados del polígono son definidos por los valores almacenados en el array, el cual debe contener pares x,y secuencialmente. La (longitud del array/2) dará el número de puntos. El polígono puede también especificarse usando una lista de pares x,y encerrada entre llaves {}.
Los dos bloques de código que aparecen a continuación dibujan un par de triángulos verdes en el área de gráficos:
clg color blue rect 0,0,300,300 color green dim tri(6) tri = {0, 0, 100, 100, 0, 100} # dibuja el triángulo en 0,0 (tamaño normal) stamp 100, 100, tri # dibuja el triángulo en 200,100 (mitad del tamaño) stamp 200, 100, .5, tri
clg color blue rect 0,0,300,300 color green # dibuja el triángulo en 0,0 (tamaño normal) stamp 100, 100, {0, 0, 100, 100, 0, 100} # dibuja el triángulo en 200,100 (mitad del tamaño) stamp 200, 100, .5, {0, 0, 100, 100, 0, 100}
0.9.4
string ( expresión )
Devuelve la representación en forma de cadena de un número.
system expresión
system ( expresión )
Ejecuta un comando del sistema en una ventana de terminal. PRECAUCIÓN: Esta instrucción puede ser muy peligrosa. Sólo debe usarse si se sabe lo que se está haciendo.
Esta instrucción puede ser desactivada en prevención de posibles problemas de seguridad del sistema. La configuración se puede hacer en el IDE, accediendo al menú Edición>Preferencias.
0.9.5h
tan ( expresión )
Calcula la tangente de expresión. Expresión debe estar en radianes.
La función tan no produce un resultado exacto.
clg color black # Traza una linea que cruza el area de gráficos line 0,150,300,150 # punto inicial lastx = 0 lasty = tan(0) * 50 + 150 # ahora, avanzamos a lo largo de la linea for x = 0 to 300 step 5 angle = x / 300 * 2 * pi y = tan(angle) * 50 + 150 line lastx, lasty, x, y lastx = x lasty = y next x
text x, y, cadena
text ( x, y, cadena )
Muestra una cadena de texto en el área de gráficos, a partir de la coordenada x,y y utilizando el color y la fuente actuales.
color grey rect 0,0,graphwidth,graphheight color red font "Times New Roman",18,50 text 10,100,"This is Times New Roman" color darkgreen font "Tahoma",28,100 text 10,200,"This is BOLD!"
0.9.4
upper ( cadena )
Devuelve cadena con todos los caracteres alfabéticos convertidos en mayúsculas.
print upper("AZul!")
mostrará
AZUL!
0.9.5e
volume nivel
volume ( nivel )
Ajusta el volumen de las notas que suenan con la instrucción Sound. El nivel del volumen debe ser un valor numérico entre 0 y 10. El nivel por defecto es 5.
0.9.5i
wavplay NombredeArchivo
wavplay ( NombredeArchivo )
Reproduce un archivo de audio WAV asíncronamente (en segundo plano).
0.9.4
wavstop
Detiene la reproducción del archivo de audio WAV que se está ejecutando en segundo plano.
0.9.4
write cadena
write ( cadena )
write NúmerodeArchivo, cadena
write ( NúmerodeArchivo, cadena )
Escribe cadena al final de un archivo abierto. Si el número de archivo no se especifica, se usa el número cero (0).
writeline cadena
writeline ( cadena )
writeline NúmerodeArchivo, cadena
writeline ( NúmerodeArchivo, cadena )
Escribe cadena con un caracter de salto de linea al final de un archivo abierto. Si el número de archivo no se especifica, se usa el número cero (0).
0.9.4
year
year ( )
Devuelve el año actual (con cuatro dígitos), de acuerdo con el reloj del sistema.
print "La fecha de hoy es "; print day + "/" (month + 1) + "/" + year
mostrará:
La fecha de hoy es 30/11/2009
0.9.4