ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Pseudocodigos Small Basic

bryan9626 de Junio de 2013

15.843 Palabras (64 Páginas)527 Visitas

Página 1 de 64

con estos pasos ya podemos empezar a trabajar para crear una extensión. Pero hay que tener en cuenta algunas cosas como que no está soportada la sobrecarga de funciones, por lo que no podemos tener dos funciones con el mismo nombre aunque reciban distintos parámetros. Todas las variables responden al tipo Primitive de la API interna del lenguaje, por lo que no podemos trabajar directamente con tipos de datos como int o string. Sabiendo esto aquí tenemos un esquema básico de como sería una extensión y sus tres diferentes tipos de elementos:

using Microsoft.SmallBasic.Library;

namespace MisExtensiones {

[SmallBasicType]

public static class MiExtension {

// Para definir variables:

public static Primitive Propiedad=new Primitive();

// Para definir métodos:

public static void Metodo1() {

// Código del método...

}

public static void Metodo2(Primitive param) {

// Código del método...

}

public static Primitive Metodo3() {

// Código del método...

}

public static Primitive Metodo4(Primitive param) {

// Código del método...

}

// Para definir manejadores de eventos:

public static event SmallBasicCallback Evento=null;

}

}

De esta forma al generar la dll del proyecto y añadirla al directorio de librerías de Small Basic, tendremos una nueva librería llamada MiExtension, con en este caso una propiedad, un manejador de eventos y cuatro funciones. Las posibilidades de esto son por decirlo de algún modo infinitas. Podemos añadir todo lo que queramos al lenguaje, teniendo en cuenta que no podemos repetir identificadores ya que ello confundiría a Small Basic. Por cierto que en este caso para la variable no hemos usado una propiedad de C#, pero podríamos haberla usado perfectamente y con ello podríamos limitar su escritura para hacerla solo de lectura, ya que hay cosas que no tiene sentido que el usuario las cambie de valor.

Con esto ya está de momento cubierto el lenguaje y la mayoría de sus puntos, por lo que a partir de aquí, hasta que salga una nueva versión de Small Basic, me pondré a hacer alguna que otra extensión y/o juego que colgaré en esta web cuando lo tenga listo y terminado. Aunque de momento hasta que termine junio, estaré con los exámenes para terminar la carrera y ello me va a tener bastante liado, por lo que seguramente no haya mucho movimiento por aquí hasta la última semana de junio. Así que a estudiar, jej.

ARCHIVADO EN ARTÍCULOS, C#

Pintando con la tortuga en Small Basic

11 MAYO, 2009 DEJA UN COMENTARIO

Por último para terminar con el modo ventana tenemos la librería Turtle, que sirve para pintar rectas como si estuviéramos usando un lápiz sobre un papel. Es una forma sencilla para pintar cosas, que se utilizó bastante hace unas cuantas décadas. Sus atributos y operaciones son:

 Angle: Permite obtener y cambiar el ángulo actual de la tortuga, los cambios son aplicados al instante. El ángulo se indica en grados donde el Norte es 0º, el Este 90º, el Sur 180º y el Oeste son 270º.

 Speed: Permite obtener y cambiar la velocidad de movimiento. Esta va de 1 a 10, donde 10 es el valor más rápido porque realiza las operaciones de forma instantánea.

 X: Permite obtener y cambiar la coordenada X de la tortuga de forma instantánea.

 Y: Permite obtener y cambiar la coordenada Y de la tortuga de forma instantánea.

 Show(): Muestra la tortuga en la ventana.

 Hide(): Oculta la tortuga en la ventana.

 PenDown(): Baja el lápiz de la tortuga para que cuando esta se mueva se vaya pintando en pantalla.

 PenUp(): Sube el lápiz de la tortuga para evitar que al moverse se vaya pintando en pantalla.

 Move(distancia): Mueve la tortuga una distancia especificada. Si el lápiz está bajado se dibujará una línea al moverse.

 MoveTo(x, y): Mueve la tortuga un punto especificado. Si el lápiz está bajado se dibujará una línea al moverse.

 Turn(ángulo): Gira la tortuga en base al ángulo en grados especificado. Si el ángulo es positivo gira a la derecha y si es negativo a la izquierda.

 TurnLeft(): Gira la tortuga 90º a la izquierda.

 TurnRight(): Gira la tortuga 90º a la derecha.

Y tras ver las operaciones y atributos de la librería Turtle, aquí tenéis un bonito programa de ejemplo donde se pintan unas cuantas formas usando esta librería, entre ellas un bonito círculo:

'----------------------------------------------------

' Prueba con turtle

'----------------------------------------------------

GraphicsWindow.Title = "Prueba con turtle"

GraphicsWindow.BackgroundColor = "White"

GraphicsWindow.PenColor = "SteelBlue"

GraphicsWindow.KeyDown = OnKeyDown

'----------------------------------------------------

Sub OnKeyDown

If GraphicsWindow.LastKey = "S" Then

Turtle.Show()

ElseIf GraphicsWindow.LastKey = "H" Then

Turtle.Hide()

ElseIf GraphicsWindow.LastKey = "C" Then

GraphicsWindow.Clear()

ElseIf GraphicsWindow.LastKey = "Escape" Then

Program.End()

ElseIf GraphicsWindow.LastKey = "D1" Then

Paint1()

ElseIf GraphicsWindow.LastKey = "D2" Then

Paint2()

ElseIf GraphicsWindow.LastKey = "D3" Then

Paint3()

ElseIf GraphicsWindow.LastKey = "D4" Then

lines = 6

PaintCircle()

ElseIf GraphicsWindow.LastKey = "D5" Then

lines = 8

PaintCircle()

ElseIf GraphicsWindow.LastKey = "D6" Then

lines = 16

PaintCircle()

ElseIf GraphicsWindow.LastKey = "D7" Then

lines = 32

PaintCircle()

ElseIf GraphicsWindow.LastKey = "D8" Then

lines = 64

PaintCircle()

ElseIf GraphicsWindow.LastKey = "D9" Then

lines = 128

PaintCircle()

ElseIf GraphicsWindow.LastKey = "D0" Then

lines = 256

PaintCircle()

EndIf

EndSub

'----------------------------------------------------

Sub Paint1

GraphicsWindow.Clear()

Turtle.X = GraphicsWindow.Width / 2

Turtle.Y = GraphicsWindow.Height / 2

Turtle.Speed = 8

Turtle.Angle = 0

Turtle.PenDown()

For i = 1 To 21

Turtle.Move(10 * i)

Turtle.TurnRight()

EndFor

Turtle.PenUp()

EndSub

'----------------------------------------------------

Sub Paint2

GraphicsWindow.Clear()

Turtle.X = 100

Turtle.Y = 100

Turtle.Speed = 8

Turtle.Angle = 180

paint = "True"

w = GraphicsWindow.Width - 200

h = GraphicsWindow.Height - 200

distance = 10

lines = h / distance

PaintStepLine()

Turtle.TurnLeft()

lines = w / distance

PaintStepLine()

Turtle.TurnLeft()

lines = h / distance

PaintStepLine()

Turtle.TurnLeft()

lines = w / distance

PaintStepLine()

Turtle.TurnLeft()

EndSub

'----------------------------------------------------

Sub PaintStepLine

For i = 1 To lines

If paint Then

Turtle.PenDown()

paint = "False"

Else

Turtle.PenUp()

paint = "True"

EndIf

Turtle.Move(distance)

EndFor

EndSub

'----------------------------------------------------

Sub Paint3

GraphicsWindow.Clear()

Turtle.X = GraphicsWindow.Width / 2

Turtle.Y = GraphicsWindow.Height / 2

Turtle.Speed = 8

Turtle.Angle = 0

Turtle.PenDown()

For i = 1 To 21

Turtle.Move(10 * i)

Turtle.Turn(45)

EndFor

Turtle.PenUp()

EndSub

'----------------------------------------------------

Sub PaintCircle

GraphicsWindow.Clear()

cx = GraphicsWindow.Width / 2

cy = GraphicsWindow.Height / 2

radius = cy * 0.8

Turtle.X = cx - radius

Turtle.Y = cy

Turtle.Speed = 8

Turtle.Angle = 0

Turtle.PenDown()

angle = Math.Pi * 2 / lines

For i = 1 To lines

x = cx - Math.Cos(angle * i) * radius

y = cy - Math.Sin(angle * i) * radius

Turtle.MoveTo(x, y)

EndFor

Turtle.PenUp()

EndSub

Y con esto damos por terminada la API de Small Basic. Aunque lo cierto es que hay más librerías como comenté en la introducción a la API, pero francamente no son especialmente útiles y en caso de tener curiosidad sobre ellas siempre queda la ayuda en línea del IDE para solventar la mayoría de las dudas, eso y la experimentación claro. ¿Quiere decir todo esto que ya se han acabado los artículos sobre Small Basic? Pues la verdad es que no, ya que todavía me queda una cosa muy importante

...

Descargar como (para miembros actualizados) txt (118 Kb)
Leer 63 páginas más »
Disponible sólo en Clubensayos.com