¿Por qué App Inventor?


a1

Casi todos los lenguajes de programación tienen una sintaxis que al principiante le suena a chino. Son una mezcla de inglés y extrañas reglas de sintaxis. Como ejemplo, el programa más pequeño que se puede hacer en Java es algo así:

class Hola
{
public static void main(String [] args)
{
System.out.println(«Hola mundo»);
}
}

Es evidente que al  aprender a programar la sintaxis provoca una curva de aprendizaje significativa. Aunque hay lenguajes más limpios en este sentido que Java, como Python, siempre requiere invertir mucha práctica y tiempo en aprender los comandos, sus reglas de escritura, sentido de los distintos signos de puntuación, etc. Todo este tiempo es tiempo no empleado en aprender a diseñar algoritmos para resolver problemas, tal y como pedía el primero de los objetivos de la asignatura de TIC.

Con App Inventor se aprende a programar usando bloques de programación. Estos bloques están hechos con elementos comunes a la mayoría de los lenguajes de programación existentes. Se colocan bloques para construir bucles, condiciones, variables, etc. que permiten pensar lógicamente y solucionar los problemas de forma metódica, sin perder el tiempo en encontrar el punto y coma o los dos puntos que están donde no deben y producen errores de compilación o ejecución.

http://recursostic.educacion.es/observatorio/web/es/software/programacion/1090-uso-de-appinventor-en-la-asignatura-de-tecnologias-de-la-comunicacion-y-la-informacion

Programación en la Educación Escolar


a1

TALLER DE SCRATCH – (Tutorial  español- eduteka)     Fue diseñado como medio de expresión para ayudar a niños y jóvenes a expresar sus ideas de forma creativa, al tiempo que desarrollan habilidades tanto de pensamiento lógico, como de aprendizaje para el Siglo XXI.

Scratch permite crear fácilmente historias interactivas propias, animaciones, juegos, grabar sonidos y realizar creaciones artísticas.

DESCARGA E INSTALACIÓN
Antes de empezar a trabajar con Scratch hay que instalarlo en el computador. Para ello, se debe abrir el navegador de Internet y en la barra de direcciones escribir:

 scratch.mit.edu

http://www.eduteka.org/modulos/9/299/1135/modulos/9/278/modulos/9/278/

Informática: ¿qué deberíamos enseñar en la escuela?


a1

De acuerdo con los Estándares de Competencias en TIC para docentes, elaborado por la UNESCO en el año 2008, “para vivir, aprender y trabajar con éxito en una sociedad cada vez más compleja, rica en información y basada en el conocimiento, estudiantes y docentes deben utilizar la tecnología digital con eficacia. En un contexto educativo sólido, las Tecnologías de la Información y la Comunicación (TIC) pueden ayudar a los estudiantes a adquirir las capacidades necesarias para llegar a ser:

– competentes para utilizar tecnologías de la información;

– buscadores, analizadores y evaluadores de información;

– solucionadores de problemas y tomadores de decisiones;

– usuarios creativos y eficaces de herramientas de productividad;

– comunicadores, colaboradores, publicadores y productores; y

– ciudadanos informados, responsables y capaces de contribuir a la sociedad.”

Publicado por Virginia Caccuri

http://congresoedutic.com/profiles/blog/show?id=6365062%3ABlogPost%3A135223&xg_source=shorten_twitter

Aprender a programar como se aprende a leer


a1

Un número creciente de países enseña a los alumnos a escribir código. El objetivo es formar a creadores y no solo a meros consumidores. Potencia la creatividad y la mente lógica

Conscientes de los beneficios de este aprendizaje, el Ministerio de Educación británico ha pedido ayuda a la industria para crear un nuevo contenido para las clases de informática.

Finlandia e Israel ya han incorporado la programación a sus currículos escolares. La palabra “programación” asusta, pero los monitores no se cansan de repetir que resulta tan fácil de controlar como la lectura o la escritura.

http://sociedad.elpais.com/sociedad/2013/03/07/actualidad/1362689630_904553.html

Uso de AppInventor en la asignatura de Tecnologías de la Información y la Comunicación


a1 App Inventor es al mismo tiempo un lenguaje de programación, una herramienta de diseño y un entorno de desarrollo de aplicaciones para móviles y tablets que funcionen con el sistema operativo Android.  App Inventor permite también ejecutar las aplicaciones en un emulador, por lo que no es imprescindible disponer del teléfono para probar los programas que se hagan.

En el actual diseño del Bachillerato  se propone “Tecnologías de la Información y la Comunicación como asignatura extraprogramátcia”. Entre los objetivos generales de esta asignatura se puede leer “Usar los recursos informáticos como instrumento de resolución de problemas específicos” o “Integrar la información textual, numérica y gráfica obtenida de cualquier fuente para elaborar contenidos propios y publicarlos … y formatos que faciliten la inclusión de elementos multimedia decidiendo la forma en la que se ponen a disposición del resto de usuarios”. Son muchos los profesores que enseñan algún lenguaje de programación como una de las herramientas para alcanzar estos objetivos.

http://recursostic.educacion.es/observatorio/web/es/software/programacion/1090-uso-de-appinventor-en-la-asignatura-de-tecnologias-de-la-comunicacion-y-la-informacion

La programación, la enseñanza y los niños


a1

  “Enseñamos Física elemental a los niños no para que se conviertan en físicos, sino porque viven en un mundo gobernado por la leyes de la Física. Del mismo modo, deberían aprender Ciencias de la Computación desde pequeños, porque viven en un mundo en el que la computación está por todas partes.”

No se trata de crear programadores más allá de quienes manifiesten una vocación hacia ello, sino de prepararlos para el mundo en el que van a vivir, rodeados de productos servicios que son lo que son debido fundamentalmente a cómo fueron programados

http://www.enriquedans.com/2012/04/la-programacion-la-ensenanza-y-los-ninos.html

App Inventor para niños


a1

Antes de salir al mercado la versión piloto, » Google App Inventor», se probó en diferentes centros educativos y la utilizaron desde niños de 12 años hasta licenciados universitarios sin nociones de programación

Permite que cualquiera que esté familiarizado con la programación informática pueda crear aplicaciones de software para Android. Utiliza una interfaz gráfica muy similar a interfaz de usuario de Scratch y la StarLogo TNG , que permite a los usuarios arrastrar y soltar objetos visuales para crear una aplicación que se puede ejecutar en Android, disponible en muchos dispositivos móviles.

App Inventor es una herramienta, promovida por Google Labs que actualmente mantiene el Massachusetts Institute of Technology (MIT), que sirve para crear aplicaciones de software para el sistema operativo Android.

En este espacio encontrarás recursos para los profesores (Teach) , información y tutoriales (Explore); y, algunas ideas y directrices para crear tus aplicaciones para Android (Invent)

http://didactalia.net/comunidad/materialeducativo/recurso/MIT-App-Inventor-crea-aplicaciones-para-Android-/3f85eb3a-6157-40a4-8f8f-64efc3814833

4 Herramientas para enseñar a los niños a programar


 a1

 Scratch –  App Inventor – Alice –  Lego Mindstorms  
A medida que nuestro mundo se vuelve más orientado a la tecnología los educadores se enfrentan no sólo a enseñar a los niños a usar las computadoras, sino también a la forma de construirlos y programarlos.

En un reciente artículode PC Pro, el profesor Steven Furber, desarrollador del microprocesador ARM, se lamenta la fuerte caída de interés en las clases de ciencias de la computación en el Reino Unido. Y aunque los EE.UU. no ha visto la misma caída de las matrículas, una encuesta reciente de unos 14.000 maestros de escuela en EE.UU. por la Asociación de Maestros de Ciencias Informática encontró que sólo el 65% de los encuestados enseña en una escuela que ofrece algún tipo de curso introductorio de ciencia de la computación.

http://blog.jmacoe.com/aplicaciones/4-herramientas-ensenar-ninos-programar/

Small Basic: objeto Dictionary (código)


a1 

 Pide la definición de la palabra “magnanimous” con la operación GetDefinition

  1. Txt = «Magnanimous»
  2. GraphicsWindow.BackgroundColor = «Yellow»
  3. GraphicsWindow.FontName = «Verdana»
  4. GraphicsWindow.FontSize = 12
  5. GraphicsWindow.BrushColor = «Black»
  6. GraphicsWindow.DrawText(10, 10, Txt)
  7. defn = Dictionary.GetDefinition(Txt)
  8. GraphicsWindow.FontSize = 12
  9. GraphicsWindow.BrushColor = «Black»
  10. GraphicsWindow.DrawText(10, 10, »    «)
  11. GraphicsWindow.DrawText(10, 10, defn)

Taller: Scratch y su integración en estrategias didácticas


a1

https://sites.google.com/site/scratchsomece/          Bienvenidos al Taller de Scratch, en el que pondremos en juego nuestra creatividad, emoción y sobre todo, un gran amor a niños y niñas que recibirán el impacto de nuestros aprendizajes.   Scratch es un programa heredero de la filosofía de Logo, con el que se impulsa la creatividad y la construcción de conocimiento complejo en el aprendizaje de todos los campos de formación y las asignaturas del plan de estudios en la educación básica.

Small Basic: ejemplo simple animación (código)


a1

 Agregar una línea y un círculo en la ventana de gráficos.   Establecer el color, tamaño y ubicación de las formas.  Animar el círculo para que se mueva de izquierda a derecha en la ventana de gráficos, por encima de la línea.

  1. GraphicsWindow.Title = «Explorando las formas»
  2. GraphicsWindow.Height = 200
  3. GraphicsWindow.Width = 300
  4. GraphicsWindow.BackgroundColor = «Yellow»
  1. GraphicsWindow.PenColor = «Purple»
  2. base = Shapes.AddLine(0, 0, 300, 0)
  3. Shapes.Move(base, 0, 100)
  4. GraphicsWindow.PenColor = «Black»
  5. GraphicsWindow.BrushColor = «Cyan»
  6. círculo = Shapes.AddEllipse(50, 50)
  7. Shapes.Move(círculo, 0, 50)
  8. Shapes.Animate(círculo, 250, 50, 1000)

Kodu: ¿Y si un niño pudiera programar videojuegos?


 a1

El proceso de creación de un videojuego de última generación es extremadamente largo y costoso. Programadores y diseñadores coordinan sus esfuerzos para generar mundos virtuales, algo que no está al alcance de todos.

Kodu es un editor de videojuegos que rehuye la complejidad de los entornos de desarrollo tradicionales. Pensado para niños en edad escolar, Kodu es tan intuitivo y agradable a la vista que parece un juego más. Y es que, en cierto modo, lo es.

Ejemplos y lecciones son el recurso que Kodu utiliza para enseñar los fundamentos de su modelo de programación visual, sin código ni compiladores. Crear los mundos de juego es sencillísimo gracias a las herramientas de edición de terreno. El excelente motor gráfico de Kodu aprovecha al máximo los recursos disponibles.

http://kodu.softonic.com/

Small Basic: Operaciones del objeto Shapes (código)


 

 

 

 a1

 Hemos utilizado la operación AddImage para insertar una imagen en la pantalla. A continuación, utilizamos Move, Animate y Zoom para realizar diversas acciones en la imagen.

 

  1. rutaArchivo = «C:\Small Basic\Nenúfares.jpg»
  2. imagen=Shapes.AddImage(rutaArchivo)
  3. Shapes.Move(imagen, 5, 5)
  4. Shapes.Animate(imagen, 20, 20, 1000)
  5. Shapes.Zoom(imagen, 0.1, 0.1)
  6. For i=0 To 1 Step 0.1
  7. Program.Delay(1000)
  8. Shapes.Zoom(imagen, 0.1 + i, 0.1 + i)
  9. EndFor

 

SCRATCH EN LA EDUCACIÓN ESCOLAR


a1

LA HERRAMIENTA Scratch es un entorno de programación desarrollado [3] por un grupo de investigadores del Lifelong Kindergarten Group del Laboratorio de Medios del MIT, bajo la dirección del Dr. Michael Resnick.
Aunque es un proyecto de código abierto, su desarrollo es cerrado pero el código fuente se ofrece de manera libre y gratuita [4]. Este entorno aprovecha los avances en diseño de interfaces para hacer que la programación sea más atractiva y accesible para todo aquel que se enfrente por primera vez a aprender a programar.

Gracias al apoyo de Motorola Foundation, Motorola de Colombia Ltda. y la gestión de la ONG Give to Colombia, la Fundación Gabriel Piedrahita Uribe (FGPU) está implementando el proyecto Scratch con el que se busca contribuir al desarrollo de habilidades del siglo XXI, capacidades intelectuales de orden superior [1] y pensamiento algorítmico, por parte de estudiantes de básica primaria.

Este proyecto contempló el diseño del componente curricular de Scratch [2] que se puso a prueba con un grupo de docentes de Informática, Matemáticas y Ciencias Naturales, pertenecientes a escuelas de Cali (Colombia) que tienen a su cargo poblaciones vulnerables. A partir de la retroalimentación que se recibió por parte de ese primer grupo, se hicieron los ajustes correspondientes para iniciar la capacitación de un grupo más amplio.

http://www.eduteka.org/modulos.php?catx=9&idSubX=278

¿ Cómo y por qué enseñar programación a niños?


 a1

 Fundamentos Teóricos según Piaget sobre el Desarrollo Cognitivo del Niño..

El niño desde que nace, va desarrollando estructuras cognoscitivas las cuales se van configurando por medio de las experiencias.

El pensamiento del niño sigue su crecimiento, llevando a cabo varias funciones especiales de coherencia como son las de clasificación, simulación, explicación y de relación.

El desarrollo cognoscitivo comienza cuando el niño va realizando un equilibrio interno entre la acomodación y el medio que lo rodea y la asimilación de esta misma realidad a sus estructuras. Este desarrollo va siguiendo un orden determinado, que incluye cuatro periodos de desarrollo, el senso-motor, el preconcreto, el concreto y el formal, cada uno de estos periodos está constituido por estructuras originales, las cuales se irán construyendo a partir del paso de un estado a otro. “Este estadio constituye, pues, por las estructuras que lo definen, una forma particular de equilibrio y la evolución mental se efectúa en el sentido de una equilibración más avanzada”.

El ser humano estaría siempre en constante desarrollo cognoscitivo, por lo tanto cada experiencia nueva consistirá en reestablecer un equilibrio, es decir, realizar un reajuste de estructuras.

http://alefalletti.wordpress.com/2008/11/20/como-y-por-que-ensenar-programacion-a-ninos/

Small Basic: triángulo rectángulo


a1

Hacemos que la tortuga dibuje un triángulo y lo rellene con un color 

  1. GraphicsWindow.Width = 250
  2. GraphicsWindow.Height = 250
  3. GraphicsWindow.BackgroundColor = «Yellow»
  4. GraphicsWindow.PenColor = «Blue»
  5. GraphicsWindow.PenWidth = 5
  6. Turtle.Show()
  7. Turtle.X =50
  8. Turtle.Y = 200
  9. Turtle.Speed = 5
  10. Turtle.Move(150)
  11. Turtle.Turn(90)
  12. Turtle.Move(150)
  13. Turtle.MoveTo(50, 200)
  14. Turtle.Angle = 45
  15. GraphicsWindow.PenColor = «GreenYellow»
  16. GraphicsWindow.BrushColor = «GreenYellow»
  17. GraphicsWindow.DrawTriangle(50, 200, 50, 50, 200, 50)
  18. GraphicsWindow.FillTriangle(50, 200, 50, 50, 200, 50)

Cómo enseñar a programar a un niño o niña de 8 años


 a1

¿Por qué es importante aprender a programar  desde niños?…   Simplemente porque tienen todo un futuro tecnológico por delante. Empezar a conocer los fundamentos de la programación  les dotará de un conocimiento muy por encima del usuario informático medio. Por otra parte pensar en cómo resolver mediante un programa informático algunos retos les ayuda mucho a desarrollar la lógica, la concentración y la visualización de cualquier situación en la vida. En suma, les ayuda a resolver problemas lógicamente y a trazar planes  sólidos respecto a cualquier cosa que se propongan. Aún más, tener la capacidad de visualizar una situación compleja y encontrar las diferentes posibilidades o alternativas es parte fundamental de eso que llamamos inteligencia.

Podeis tener la seguridad de que los niños y niñas asimilarán rápidamente la idea básica de un lenguaje informático. Seguramente con mayor facilidad que un adulto.

http://www.taringa.net/posts/hazlo-tu-mismo/14751924/Como-ensenar-a-programar-a-un-nino-o-nina-de-8-anos.html

Small Basic: la tortuga dibuja…(código)


 a1

dos gráficos en forma de estrella con diferentes colores : 

  1. GraphicsWindow.Height = 400
  2. GraphicsWindow.Width = 400
  3. GraphicsWindow.Title = «Gráficos de la tortuga»
  4. GraphicsWindow.BackgroundColor = «Yellow»
  5. Turtle.Show()
  6. Turtle.Speed = 10
  7. Turtle.X = 100
  8. Turtle.Y = 200
  9. For i = 0 To 200 Step 5 
  10. GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
  11. Turtle.Move(i) 
  12. Turtle.Turn(150)
  13. EndFor
  14. Turtle.PenUp()
  15. Turtle.Move(300)
  16. Turtle.Turn(105)
  17. Turtle.Move(150)
  18. Turtle.PenDown()
  19. For i = 0 To 200 Step 5 
  20. GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
  21. Turtle.Move(i) 
  22. Turtle.Turn(150)
  23. EndFor

Code.org cree que la programación de computadoras debe ser materia esencial


a1 

 Bill Gates: «Aprender a escribir programas extiende tu mente y te ayuda a pensar mejor. Crea una manera de pensar en las cosas que yo creo que es útil en todos los campos»

Code.org, una organización sin fines de lucro, lanzó una campaña para estimular la enseñanza de programación de computadoras en las escuelas del país, porque afirma que hay una escasez mundial en esta carrera y un millón de empleos que no se podrán llenar de aquí al 2020.

http://vidayfamilia.univision.com/es-el-momento/noticias/article/2013-03-05/es-el-momento-campana-programacion-computadoras-code-org

Enseñar a programar en la escuela


 a1

 Steve Jobs: «Enseñar a programar es importante porque ayuda a pensar”

Bajo este punto de vista es interesante observar un proyecto como el de Code.org que busca promover el aprendizaje de la programación y la escritura de código computacional desde la educación secundaria. Iniciativas de este tipo ya se ponen en práctica en países como Reino Unido y recientemente han desembarcado en los EE.UU. con una campaña en la que participan líderes de opinión y personajes reconocidos del sector digital.

http://blogs.gestion.pe/revoluciondigital/2013/03/ensenar-a-programar-en-la-escu.html

Se ingresa el diámetro y calcula el área, perímetro y grafica el círculo (código)


a1

Small Basic está dentro del entorno  .NET por lo que accede a todas las bibliotecas de éste. Entre ellas al objeto MATH, que calcula : Pi Abs ArcCos ArcSin ArcTan Ceiling Cos Floor GetDegrees GetRadians GetRandomNumber Log Max Min NaturalLog Power Remainder Round Sin SquareRoot Tan

  1. TextWindow.WriteLine(«ingrese el diámetro del círculo   «)
  2. diámetro = TextWindow.ReadNumber()
  3. radio = diámetro /2
  4. area = (Math.Pi) * (Math.Power(radio, radio))
  5. circunferencia = (Math.Pi) * radio
  6. area = Math.Round(area)
  7. circunferencia = Math.Round(circunferencia)
  8. TextWindow.WriteLine(«el area es: »  + area)
  9. TextWindow.WriteLine(«el perimetro es: » + circunferencia)
  10. circulo = (Math.Pi*Math.Power(2, 2))
  11. circulo = Math.Round(circulo)
  12. TextWindow.WriteLine(» radio = 2 el área es:  » + circulo)
  13. GraphicsWindow.Width = 400
  14. GraphicsWindow.Height = 300
  15. GraphicsWindow.BackgroundColor = «Yellow»
  16. GraphicsWindow.PenColor = «Red»
  17. diámetro = diámetro * 100
  18. GraphicsWindow.DrawEllipse (60, 100, diámetro, diámetro)
  19. GraphicsWindow.BrushColor = «Green»
  20. GraphicsWindow.FillEllipse (60, 100, diámetro, diámetro)

Small Basic: juego del Sokoban (código)


soko3

El objetivo del juego es empujar las cajas (o las bolas) hasta su lugar correcto dentro de un reducido almacén, con el número mínimo de empujes y de pasos. Las cajas se pueden empujar solamente, y no tirar de ellas, y sólo se puede empujar una caja a la vez. Parece fácil, pero los niveles van desde muy fáciles a extremadamente difíciles, y algunos lleva horas e incluso días resolverlos. La simplicidad y la elegancia de las reglas han hecho de Sokoban uno de los juegos de ingenio más populares.

Para bajar las instrucciones siga este link:

http://smallbasic.com/program/?SOKO

Small Basic: responder preguntas con puntaje (código)


a1

v     Cree una serie de afirmaciones y muéstrelas en la ventana de gráficos.

v     Cree dos botones: uno con el texto “Verdadero” y el otro con el texto “Falso”.

v     Para cada una de las afirmaciones, el usuario hará clic en “Verdadero” o en “Falso”.

v     El usuario consigue puntos por identificar si la afirmación es verdadera o falsa.

  1. ‘ Copyright (c) Microsoft      Corporation.  Todos los      derechos reservados.
  2. GraphicsWindow.Hide()
  3. anVent      = 500
  4. alVent      = 350
  1. cuadroPuntajesIzq      = 175
  2. preguntaAprobada      = 0
  1. puntuación      = 0
  2. elección      = «»
  3. i =      1
  1. P[1]      = «El Nilo es el río más largo del mundo.»
  2. P[2]      = «La montaña más alta del mundo es el monte Everest.»
  3. P[3]      = «Zambia también se conoce como ‘el país del cobre’.»
  4. P[4]      = «El lugar más frío del mundo se encuentra en Siberia.»
  5. P[5]      = «Sídney es la capital de los Estados Unidos.»
  6. P[6]      = «El río Jordán desemboca en el mar Muerto.»
  7. P[7]      = «Mumbai es la capital de la India.»
  8. P[8]      = «África es el continente con la mayor producción de café en el      mundo.»
  9. P[9]      = «El desierto más grande del mundo es el desierto del Sáhara.»
  10. P[10]      = «Londres es la capital del Reino Unido.»
  1. R[1]      = «Verdadero»
  2. R[2]      = «Verdadero»
  3. R[3]      = «Verdadero»
  4. R[4]      = «Verdadero»
  5. R[5]      = «Falso»
  6. R[6]      = «Verdadero»
  7. R[7]      = «Falso»
  8. R[8]      = «Falso»
  9. R[9]      = «Verdadero»
  10. R[10]      = «Verdadero»
  1. matrizAleat[1]      = «5234162»
  2. matrizAleat[2]      = «1896523»
  3. matrizAleat[3]      = «5974216»
  4. matrizAleat[4] =      «2756194»
  1. númAleat =      Math.GetRandomNumber(Array.GetItemCount(matrizAleat))
  1. GraphicsWindow.CanResize =      «False»
  2. GraphicsWindow.Width = anVent
  3. GraphicsWindow.Height = alVent
  4. GraphicsWindow.Top =      (Desktop.Height – alVent) / 2
  5. GraphicsWindow.Left =      (Desktop.Width – anVent) / 2
  6. GraphicsWindow.Title =      «Verdadero o Falso»
  7. GraphicsWindow.Show()
  1. Controls.ButtonClicked =      AlHacerClic
  1. CrearInterfazUsuario()
  1. Sub CrearInterfazUsuario
  2. GraphicsWindow.BrushColor =      «Purple»
  3. GraphicsWindow.FontName =      «Verdana»
  4. GraphicsWindow.FontSize = 14
  5. GraphicsWindow.DrawRectangle(10,      10, 480, 330)
  1. btnVerdadero  =      Controls.AddButton(«Verdadero», 30, 210)
  2. btnFalso =      Controls.AddButton(«Falso», 320, 210)
  3. Controls.SetSize(btnVerdadero,      150, 100)
  4. Controls.SetSize(btnFalso, 150,      100)
  1. GraphicsWindow.DrawText(220,      300, «Resultado»)
  2. cuadroTxtResultado =      Shapes.AddText(«»)
  3. Shapes.Move(cuadroTxtResultado,      220, 250)
  1. cuadroTxtPuntuación = Shapes.AddText(«Puntuación:      0»)
  2. Shapes.Move(cuadroTxtPuntuación,      365, 15)
  3. IniciarJuego()
  4. EndSub
  1. Sub      IniciarJuego
  2. preguntaAprobada      = Text.GetSubText(matrizAleat[númAleat], i, 1)
  3. If i <= 7 Then
  4. px = 60
  5. py = 90
  6. GraphicsWindow.BrushColor =      «LightBlue»
  7. GraphicsWindow.FillRectangle(200,      220, 100, 80)
  8. GraphicsWindow.FillRectangle(20,      50, 460, 100)
  9. GraphicsWindow.BrushColor =      «Blue»
  10. GraphicsWindow.DrawBoundText(px      – 20, py, 420 «» + P[preguntaAprobada])
  11. respuestaCorrecta      = R[preguntaAprobada]
  12. Else
  13. Program.Delay(1000)
  14. GraphicsWindow.ShowMessage(«Su      puntuación es » + puntuación, «FIN»)
  15. Program.End()
  16. EndIf
  17. i = i + 1
  18. EndSub
  1. Sub      AlHacerClic
  2. respuestaJugador      = Controls.GetButtonCaption(Controls.LastClickedButton)
  1. If      respuestaJugador = respuestaCorrecta Then
  2. últimaRespuesta      = «Correcto»
  3. Shapes.Move(cuadroTxtResultado,      220, 250)
  4. puntuación      = puntuación + 1
  5. Else
  6. últimaRespuesta      = «Incorrecto»
  7. Shapes.Move(cuadroTxtResultado,      212, 250)
  8. EndIf
  1. Shapes.SetText(cuadroTxtResultado,      últimaRespuesta)
  2. Shapes.SetText(cuadroTxtPuntuación,      «Puntuación: » + puntuación)
  1. IniciarJuego()
  2. EndSub

Exportar programas de Small Basic a Visual Basic (código)


a1

Una vez que haya escrito un programa en Small Basic, puede exportarlo fácilmente para ejecutarlo desde Visual Basic.

Esta lección le introduce a un nuevo y más poderoso ambiente de programación llamado Microsoft® Visual Basic.

  1. For img = 1 to 5
  2.   imagen = Flickr.GetRandomPicture(«paisaje»)
  3.   Desktop.SetWallPaper(imagen)
  4.   Program.Delay(10000)
  5. EndFor

Una historia de tres juegos: programación en lenguajes para niños (I de IV)


a1

Programar juegos de computadora puede sonar divertido pero para nada es trivial. Un buen juego es un excelente ejemplo de ingeniería simple: fácil de usar, divertido, entretenido pero con mucho esfuerzo y trabajo bien pensado como soporte.

De la investigación puedo comentarles que los tres lenguajes usan paradigmas de programación ligeramente distintos. Alice es muy cercano a lo que conocemos como “orientado a objetos”, Scratch es un lenguaje procedural donde cada figura se programa independientemente y Small Basic utiliza objetos pero solo como un mecanismo para acceder a ciertos recursos: la pantalla gráfica es un objeto, lo mismo que la de texto, el sistema de archivos y no puede tener más de un objeto de la misma clase.

Alice y Scratch implementan muy bien los mecanismos de ejecución simultánea mientras que en Small Basic lo natural es que todo vaya a un solo hilo de proceso. Y todavía hay más, pero mejor paso a contarles cómo me fue y qué pude lograr, pero eso será en el siguiente post.

http://ingenieriasimple.com/blog/blog/2010/07/23/una-historia-de-tres-juegos-programacion-en-lenguajes-para-ninos-i-de-iv/comment-page-1/#comment-2622

Lenguaje de programación para entornos educativos


a1

Small Basic funciona sobre la plataforma .Net y a nivel conceptual y de paradigma deriva en parte de “su abuelo” Basic. No obstante, se trata de una versión bastante reducida (tan sólo 15 palabras reservadas) y que emplea conceptos minimalistas para mantener un nivel de complejidad bajo, de modo que prácticamente cualquier persona pueda comprenderlo sin mayores dificultades.

El entorno de desarrollo es bastante minimalista igualmente, aunque incluye algunas características que seguro serán bien recibidas por sus usuarios como por ejemplo Intellisense y ayuda instantánea contextual. Además de ello, Small Basic permite el uso de librerías de terceros, de modo que tanto el lenguaje como la plataforma tienen indudables posibilidades de evolución, especialmente en comunidades educativas.

http://geeks.ms/blogs/mllopis/archive/2008/10/23/small-basic-nuevo-lenguaje-de-programaci-243-n-para-entornos-educativos.aspx

SMALL BASIC, para aprender a programar.


a1

Es sabido, para los que somos docentes, que para muchos alumnos el impacto de comenzar a programar es alto, tan alto que existe mucha deserción de los mismos a otras carreras, relacionadas con el área pero que no tengan programación, como cuales? , bueno, existe en mi país una proliferación de carreras que tienen un perfil de egreso “en estudio” para ser no tan categórico, como los técnicos en redes y telecomunicaciones, técnicos en mantención de equipos computaciones, técnicos en mantención de equipamiento informático, etc (que a mi parecer son más perfiles que profesiones, pero bueno, es harina de otro costal).

Como introducir a los alumnos y como lograr el paso desde un pseudocódigo en la pizarra de clases, a un entorno de desarrollo directamente a programar duro, es un paso que también le cuesta a un buen porcentaje de estudiantes.

Small Basic al rescate

Si bien está en etapas tempranas de su desarrollo, sirve para los que comienzan en el mundo de la programación, tiene una interfaz muy minimalista (aún) y una potencialidad enorme.

El código que tiene este ejemplo, cambia el Wallpaper de nuestro Desktop! de manera muy sencilla.

Y el LOGO, la tortuga más conocida por los Geeks, (después de la JVM,ajajaja) también está incluida, una manera muy sencilla de utilizarla.

http://geeks.ms/blogs/gperez/archive/2008/10/28/small-basic-para-aprender-a-programar.aspx

La tortuga dibuja un fractal


a1

El objeto Stack en Small Basic se usa para almacenar datos al igual que si apilara platos. Este objeto sigue el principio: primero en entrar, primero en salir.

  1. angulo      = 30
  2. delta      = 10
  3. distancia      = 60
  4. Turtle.Speed      = 9
  5. GraphicsWindow.BackgroundColor      = «Blue
  6. GraphicsWindow.PenColor =      «Yellow»
  7. DrawTree()
  1. Sub DrawTree
  2. If (distancia > 0) Then
  3. Turtle.Move(distancia)
  4. Turtle.Turn(angulo)
  1. Stack.PushValue(«distancia»,      distancia)
  2. distancia=      distancia – delta
  3. DrawTree()
  4. Turtle.Turn( -angulo * 2)
  5. DrawTree()
  6. Turtle.Turn(angulo)
  7. distancia      = Stack.PopValue(«distancia»)
  1. Turtle.Move(-distancia)
  2. EndIf
  3. EndSub

Small Basic: operaciones del objeto Flickr, objeto ImageList, objeto Network (código)


a1

Cargar 10 imágenes de animales desde Flickr. Modificar la altura y el ancho de la ventana de gráficos similar al tamaño de la imagen.
Mostrar las imágenes descargadas en la ventana de gráficos.
Cambiar la imagen cada 2000 milisegundos.
  1. While imagen < 10
  2. rutaImagen =      Flickr.GetRandomPicture(«Animales»)
  3. Imágenes =      ImageList.LoadImage(rutaImagen)
  4. GraphicsWindow.Height =      ImageList.GetHeightOfImage(Imágenes)
  5. GraphicsWindow.Width =      ImageList.GetWidthOfImage(Imágenes)
  6. GraphicsWindow.DrawImage(Imágenes,      0, 0)
  1. Program.Delay(2000)
  2. imagen = imagen + 1
  3. EndWhile

Subrutinas, eventos, random (código)


a1

Puede crear un programa interactivo en Small Basic definiendo eventos que desencadenan una acción en respuesta a entradas del usuario.
  1. GraphicsWindow.BackgroundColor      = «SteelBlue»
  2. GraphicsWindow.BrushColor =      «Yellow»
  3. GraphicsWindow.MouseDown =      OnMouseDown
  4. GraphicsWindow.KeyDown =      OnKeyDown
  1. Sub OnKeyDown
  2. GraphicsWindow.BrushColor =      GraphicsWindow.GetRandomColor()
  3. EndSub
  1. Sub OnMouseDown
  2. x = GraphicsWindow.MouseX – 10
  3. y = GraphicsWindow.MouseY -10
  4. GraphicsWindow.FillEllipse(x,      y, 20, 20)
  5. EndSub

Small Basic: Los objetos Clock, Desktop y Dictionary (código)


a1

 Programa para ajustar una alarma que reproduzca un sonido de campana y cambie el fondo de pantalla de su escritorio.

  1. subConfigurarAlarma()
  2. rutaArchivo = program.Directory + «\escritorio.jpg»
  1. arriba:
  2. If Clock.Time = alarma Then 
  3. Desktop.SetWallPaper(rutaArchivo)  
  4. Sound.PlayBellRing()           
  5. EndIf
  6. Program.Delay(1000)
  7. Goto arriba
  1. Sub subConfigurarAlarma
  2. TextWindow.WriteLine(«Configurar alarma»)
  3. TextWindow.Write(«Escriba la hora: «)
  4. hora = TextWindow.Read()
  5. TextWindow.Write(«Escriba los minutos: «)
  6. minuto = TextWindow.Read()
  7. TextWindow.Write(«a.m. o p.m.?: «)
  8. StadoAmPm = TextWindow.Read()
  9. alarma = hora + «:» + minuto + «:00″+ StadoAmPm
  10. TextWindow.WriteLine(«Hora de la alarma: » + alarma)
  11. EndSub

Small Basic: el objeto Sound (código)


 a1

 ¿Sabía usted que puede incluir sonidos en los programas de Small Basic?

  1. GraphicsWindow.Show()
  2. GraphicsWindow.Title = «Sonido»
  3. rutaArchivo = Program.Directory + «sonido.wav»
  4. Sound.Play(rutaArchivo)
  5. Program.Delay(2000)
  6. Sound.Pause(rutaArchivo)
  7. Sound.Play(rutaArchivo)
  8. Program.Delay(500)
  9. Sound.Stop(rutaArchivo)

¿ Aprender a programar en el colegio ?


a1

 La tecnología avanza a diario y cada vez son más los jóvenes y niños que tienen acceso a un computador, ya sea, en el hogar o en su establecimiento educacional. Sin embargo las metodologías de las clases de computación, así como los contenidos y conceptos informáticos parecen estar estancados en los años 90. Usar programas básicos como Word o PowerPoint, si bien son necesarios, luego de unas pocas clases ya es escaso lo que puedes seguir progresando en el conocimiento del software.

Debido a este fenómeno en Inglaterra se comenzó a replantear el currículum escolar, para que los estudiantes aprendan los conceptos básicos de la programación. Esta nueva iniciativa -que aún no tiene nombre- apunta a dar solución a un tema que es muy común en la sociedad actual, que la educación hace que los jóvenes pierdan el entusiasmo en las nuevas tecnologías y no estudien carreras relacionadas con ellas.

La nueva clase tendrá en cuenta los principios de la computación, el pensamiento sistemático, desarrollo de software y lógica, entre otras cosas, señaló el gobierno. También se planea crear una certificación enfocada en estos mismos principios básicos.

Beneficios
Lo positivo es que el aprendizaje va más allá de lo técnico, sino que se a su vez se desarrollan una serie de habilidades, como pensamiento analítico o de solución de problemas, que son requeridos en los trabajos que tienen que ver con tecnología y ciencia, pero que también se pueden aplicar en una serie de otras áreas.

El programa será desarrollado por el gobierno junto con una asociación de empresas del sector, que quieren promover el estudio de ciencias de la computación: la BBC, Cisco, Deloitte, HP, IBM, Microsoft, Procter & Gamble y otros.

http://www.secundarios.cl/estudiantes/blogs/secundarios/1011-aprender-programar-en-el-colegio.html

Small Basic: Objetos Sound, Program y Text (código)


 a1

 Utilizar el objeto Program (programa) para gestionar la ejecución de programas de Small Basic.

Utilizar el objeto Sound (sonido) para habilitar la reproducción de sonidos en los programas Small Basic.

Utilizando el objeto Text (texto) para trabajar con funciones relacionadas con el texto en programas de Small Basic.

v  Pida al usuario que escriba una respuesta a una pregunta simple.

v  Si la respuesta es correcta, el programa debe mostrar un mensaje de éxito junto con un sonido de timbre.

  1. TextWindow.Title = «Responda un cuestionario» 
  2. TextWindow.WriteLine(«Escriba el nombre del tercer planeta desde el Sol: «)
  3. respuesta = TextWindow.Read()
  4. If (Text.StartsWith(respuesta, «Tierra») Or Text.StartsWith(respuesta, «tierra»)) Then
  5.   Sound.PlayChime()
  6.   TextWindow.WriteLine(«¡Su respuesta es correcta!»)
  7. Else
  8.   TextWindow.WriteLine(«Su respuesta no es correcta.»)
  9.   Sound.PlayBellRing()
  10. EndIf

MS Small Basic: Diversión con la tortuga (código) – 1


a1

Vamos a utilizar el ciclo For para indicar a la tortuga que se mueva y gire en distancias y ángulos específicos, creando un diseño grafico en el proceso.

  1. GraphicsWindow.Title = «Gráficos de la tortuga»
  2. GraphicsWindow.Height = 320
  3. GraphicsWindow.Width = 300
  4. GraphicsWindow.PenColor = «Purple»
  5. Turtle.Show()
  6. Turtle.Speed = 8
  7. Turtle.X = 150
  8. Turtle.Y = 150
  9. For i = 0  To 200 Step 5 
  10. Turtle.Move(i)
  11. Turtle.Turn(90)
  12. EndFor

MS Small Basic: Diversión con la tortuga (código) – 2


a1

puede utilizar la tortuga para crear múltiples y coloridos gráficos en la pantalla. Echemos un vistazo a un programa que proporciona la siguiente salida.

  1. GraphicsWindow.Title = «Gráficos de la tortuga»
  2. GraphicsWindow.Height = 300
  3. GraphicsWindow.Width = 500
  4. Turtle.Show()
  5. Turtle.Speed = 10
  6. Turtle.X = 150
  7. Turtle.Y = 150
  8. For i = 0  To 200 Step 5
  9. GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
  10. Turtle.Move(i)
  11. Turtle.Turn(90)
  12. EndFor
  13. Turtle.PenUp()
  14. Turtle.Move(260)
  15. Turtle.Turn(60)
  16. Turtle.Move(120)
  17. Turtle.PenDown()
  18. For i = 0  To 200 Step 5 
  19. GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
  20. Turtle.Move(i)
  21. Turtle.Turn(120)
  22. EndFor

MS Small Basic: el objeto GraphicsWindow (código)


 

a1

 

 

Vamos a explorar las diferentes propiedades y operaciones del objeto GraphicsWindow escribiendo un programa para crear formas.

 
  1. GraphicsWindow.Title = «Ventana de gráficos»
  2. GraphicsWindow.Height = 300
  3. GraphicsWindow.Width = 300
  4. GraphicsWindow.PenColor = «Black»
  5. GraphicsWindow.PenWidth = 3
  6. GraphicsWindow.DrawRectangle(70, 60, 100, 150)
  7. GraphicsWindow.FillRectangle(70, 60, 100, 150)
  8. GraphicsWindow.BrushColor = «Green»
  9. GraphicsWindow.DrawEllipse(200, 150, 50, 100)
  10. GraphicsWindow.FillEllipse(200, 150, 50, 100)
  11. GraphicsWindow.PenColor = «Gold»
  12. GraphicsWindow.DrawLine(10, 200, 250, 200)

 

MS Small Basic: Pilas y matrices (código)


a1

Usar diferentes operaciones del objeto Array.  Usar diferentes operaciones del objeto Stack.

Usando el objeto Array, escriba un programa de “Reserva de vuelos” que ejecute los siguientes pasos:

v  Reservar asientos para 10 pasajeros.

v  Mostrar el nombre de cada pasajero y su número de asiento.

v  Mostrar el número total de asientos disponibles.

__________________________________________________________________________________________________________________________________________________________

 

TextWindow.WriteLine(«Reservas de vuelos»)
TotalAsientos = 10
For i = 1 To TotalAsientos
  TextWindow.Write(«Introduzca el nombre del pasajero: «)
  nombre[i] = TextWindow.Read() 
  TextWindow.WriteLine(«El número de asiento » + i + » está reservado para » + nombre[i])
  ObtenerDetalles()
EndFor
 
Sub ObtenerDetalles
  If Array.GetItemCount(nombre) = TotalAsientos Then
    TextWindow.WriteLine(«¡No hay más asientos disponibles!»)
  Else
    Array.GetItemCount(nombre)
    AsientosDisponibles = TotalAsientos – Array.GetItemCount(nombre)   
    TextWindow.WriteLine(«Número de asientos disponibles: «+ AsientosDisponibles)
    TextWindow.WriteLine(«»)   
  EndIf
EndSub

MS Small Basic: Respuesta a eventos (código)


rebotar_pelota

Juego “Rebotar la pelota”

El objetivo del juego es mantener a la bola por encima del suelto tanto tiempo como sea posible.

Observe cómo utilizar los eventos del mouse para impedir que la pelota toque el suelo. La pelota responde a los clics del mouse para mantenerse a flote.

__________________________________________________________________________________________________________________________________________________________

‘ Copyright (c) Microsoft Corporation. Todos los derechos reservados. GraphicsWindow.Hide()

anVent = 450

alVent = 400

GraphicsWindow.CanResize = «Falso»

GraphicsWindow.Width = anVent

GraphicsWindow.Height = alVent

GraphicsWindow.Top = (Desktop.Height – alVent) / 2

GraphicsWindow.Left = (Desktop.Width – anVent) / 2

GraphicsWindow.Title = «Rebotar la pelota»

GraphicsWindow.Show()

velocidad = 15

imgSuelo = Program.Directory + «\suelo.png»

imgPelota = Program.Directory + «\pelota.png»

GraphicsWindow.FontSize = 14

Controls.ButtonClicked = OnClicked

ángulo = 30

seg = 0

min = 0

anVent = GraphicsWindow.Width

alVent = GraphicsWindow.Height

y = anVent – 86

x = 210

GraphicsWindow.BrushColor = «Black»

GraphicsWindow.DrawText(10, 10, «Tiempo: 00:00») 

instrucciones = Shapes.AddText(«Haga clic en la pelota para comenzar a jugar.»)

Shapes.Move(instrucciones, 100,130)

pelota = Shapes.AddImage(imgPelota)

suelo = Shapes.AddImage(imgSuelo)

Shapes.Move(suelo, 0, alVent – 50)

botónPelota = Controls.AddButton(«», x, y)

Controls.SetSize(botónPelota, 36, 36)

Shapes.Move(pelota, x, y)

Shapes.Move(botónPelota, x, y)

Shapes.SetOpacity(botónPelota, 0)

Sub AlEmpezar

  pX = 1

  pY = -2

  númAleat = Math.GetRandomNumber(200)

  topy = númAleat

  Bucle:

  y = y + pY

  anVent = GraphicsWindow.Width

  alVent = GraphicsWindow.Height

  If x >= anVent – 16 Or x <= 0 Then

    pX = -pX

  EndIf

  If y <= númAleat Then

    pY = -pY

  EndIf

  Shapes.Move(pelota, x, y)

  Shapes.Rotate(pelota, ángulo+ 30)

  Shapes.Move(botónPelota, x, y)

  Program.Delay(velocidad) 

  MostrarPuntuación()

  If (y < alVent – 86) Then 

    Goto Bucle

  EndIf

  Fin:

  GraphicsWindow.ShowMessage(«Rebotó la pelota durante » + strMin + «:» + strSeg + » segundos.», «FIN»)

  Program.End()

EndSub

Sub OnClicked

  Shapes.HideShape(instrucciones)

  velocidad = velocidad – 0.5

  MostrarPuntuación()

  AlEmpezar()

EndSub

Sub MostrarPuntuación 

  seg = seg + 0.01

  If seg < 60 And min < 1 Then

    strMin = «00»

    If seg < 10 Then 

      strSeg = Text.Append(«0», Math.Floor(seg))

    ElseIf seg > 10 Then

      strSeg = Text.Append(«», Math.Floor(seg))

    EndIf

  Else

    If min < 10 Then 

      strMin = Text.Append(«0», min)

    ElseIf min > 10 Then

      strMin = Text.Append(«», min)

    EndIf 

    If seg < 10 Then 

      strSeg = Text.Append(«0», Math.Floor(seg))

    ElseIf seg > 10 Then

      strSeg = Text.Append(«», Math.Floor(seg))

    EndIf 

  EndIf

  GraphicsWindow.BrushColor = «White»

  GraphicsWindow.FillRectangle(50, 10, 200, 20)

  GraphicsWindow.BrushColor = «Black»

  GraphicsWindow.DrawText(54, 10,»» + strMin + «:» + strSeg) 

EndSub

MS Small Basic: juego de atrape las manzanas (código)


manzana

El  juego  contiene dos objetos: un cubo y unas manzanas. Las manzanas caern al azar desde la parte superior de la pantalla. El jugador intentará capturar las manzanas con el cubo. El juego se ejecuta durante 30 segundos.

Incluya un tablero de puntuación para mostrar el número total de manzanas atrapadas

 _________________________________________________________________________________________________________________________________________________________

‘ Copyright (c) Microsoft Corporation.  Todos los derechos reservados.
GraphicsWindow.Hide()
ventanaAncho = 800
ventanaAlto = 600

GraphicsWindow.CanResize = «False»
GraphicsWindow.Width  = ventanaAncho
GraphicsWindow.Height = ventanaAlto
GraphicsWindow.Top = (Desktop.Height – ventanaAlto) / 2
GraphicsWindow.Left = (Desktop.Width – ventanaAncho) / 2
GraphicsWindow.Title = «Atrapar las manzanas»
GraphicsWindow.Show()

manzanasRestantes = 30
puntuaciónJuego = 0
imagenCubo = Program.Directory + «\cubo.png»
imagenManzana = Program.Directory + «\manzana.png»

GraphicsWindow.MouseMove = AlMoverMouse
CrearInterfaz()

While manzanasRestantes > 0
  SoltarManzana()
 
  manzanasRestantes = manzanasRestantes – 1 
  Shapes.SetText(manzasRestantesCuadroTexto, «Manzanas restantes: » + manzanasRestantes)
EndWhile

GraphicsWindow.ShowMessage(«Su puntuación es: » + puntuaciónJuego, «FIN»)
Program.End()

Sub CrearInterfaz
  GraphicsWindow.BackgroundColor = «LightBlue»
 
  cubo = Shapes.AddImage(imagenCubo)
  manzana = Shapes.AddImage(imagenManzana)
 
  GraphicsWindow.BrushColor = «Gray»
  GraphicsWindow.FillRectangle(1, 1, ventanaAncho, 40)
 
  GraphicsWindow.FontName = «Verdana»
  GraphicsWindow.FontSize = 18
  GraphicsWindow.BrushColor = «White»
  GraphicsWindow.DrawText(350, 5, «Atrapar las manzanas»)
 
  puntuaciónCuadroTexto = Shapes.AddText(«Puntuación: 0»)
  Shapes.Move(puntuaciónCuadroTexto, 650, 5)
 
  manzasRestantesCuadroTexto = Shapes.AddText(«Manzanas restantes: » + manzanasRestantes)
  Shapes.Move(manzasRestantesCuadroTexto, 5, 5)
 
  GraphicsWindow.PenColor = «Black»
  GraphicsWindow.DrawLine(0, 50, 800, 50)
 
  Shapes.Move(cubo, 0, ventanaAlto – 40) 
  Mouse.HideCursor()
EndSub

Sub AlMoverMouse
  cuboX = Math.Min(GraphicsWindow.MouseX, 570)
  Shapes.Move(cubo, cuboX, ventanaAlto – 40)
EndSub
Sub SoltarManzana 
  manzanaX = Math.GetRandomNumber(600)
  manzanaY = 50
 
  While (manzanaY < ventanaAlto + 20)
    Shapes.Move(manzana, manzanaX, manzanaY)
    Program.Delay(15)
    DetecciónAtrapar()
    manzanaY = manzanaY + 5
  EndWhile
EndSub

Sub DetecciónAtrapar
  If manzanaY >= ventanaAlto – 40 And manzanaX < cuboX + 50 And manzanaX >= cuboX Then
    puntuaciónJuego = puntuaciónJuego + 1
    Shapes.SetText(puntuaciónCuadroTexto, «Puntuación: » + puntuaciónJuego)     
    manzanaY = ventanaAlto + 20
  EndIf
EndSub

MS Small Basic y Silverlight


a1

Insertando su programa en línea

Como sabe, puede ver sus programas publicados en el sitio web de Small Basic dentro de un navegador compatible con Silverlight. ¡Pero Small Basic tiene mucho más que ofrecer!

Puedes simplemente insertar su programa en su sitio web. El sitio web de Small Basic proporciona el código HTML exclusivo para su programa

http://smallbasic.com/

MS Small Basic: la detección de colisiones en los juegos (código)


a1

La detección de colisiónes es un aspecto básico de los juego de dos y tres dimensiones. Los algoritmos ayudan a detectar la colisión. La mayoría de juegos utilizan detección de colisiones una vez que esta se ha producido.

GraphicsWindow.Hide()

gw = 620

gh = 450

GraphicsWindow.BackgroundColor = «LightBlue»

GraphicsWindow.CanResize = «False»

GraphicsWindow.Width = gw

GraphicsWindow.Height = gh

GraphicsWindow.Top = ( Desktop.Height – gh ) / 2

GraphicsWindow.Left = ( Desktop.Width – gw ) / 2

GraphicsWindow.Title = «Dar en el blanco»

GraphicsWindow.Show()

Turtle.Hide()

rx = 40

ry = 20

tortugaX = 315

tortugaY = 300

ancho = 550

alto = 390

CuadroPuntuaciónX = 400

TeclaEntrar = «Return»

diana = 10

vidas = 3

puntuación = 0

GraphicsWindow.FontSize = 30

GraphicsWindow.DrawText(10, 200, «¡Pulse ENTRAR para comenzar el juego!»)

GraphicsWindow.KeyDown = AlPresionar

Sub AlPresionar

  entrar = entrar + 1

  If GraphicsWindow.LastKey = TeclaEntrar And entrar = 1 Then

    GraphicsWindow.Clear()

    GraphicsWindow.FontSize = 12

    Interfaz()

    MoverFigura()

    MostrarPuntuación()

    Controls.ButtonClicked = Disparar

  EndIf 

EndSub

Sub Disparar

  ángulo = Math.Round(Controls.GetTextBoxText(ángulotexto))

  distancia = Math.Round(Controls.GetTextBoxText(distanciatexto))

  presionado = Controls.GetButtonCaption(Controls.LastClickedButton) 

  If presionado = «Disparar» Then

    GraphicsWindow.PenWidth = 0

    Turtle.Angle = ángulo

    Turtle.Move(distancia)

    If Turtle.x > x and Turtle.x < x + 93 and Turtle.y > y and Turtle.y < y + 96 Then

      Shapes.HideShape(diana)

      puntuación = puntuación + 10  

      MostrarPuntuación()

      Program.Delay(500)

      If diana = puntuación Then

        TerminarJuego()

      EndIf

      Controls.SetTextBoxText(ángulotexto, «»)

      Controls.SetTextBoxText(distanciatexto, «»)

      MoverFigura()

    Else

      Program.Delay(1000)

      If vidas > 1 Then

        GraphicsWindow.ShowMessage(«Haga clic en Aceptar para continuar el juego»,»Reintentar»)

        presionado = «Reintentar»

      Else     

        TerminarJuego()

      EndIf   

    EndIf        

  EndIf

  If presionado = «Reintentar» Then   

    vidas = vidas – 1

    If puntuación >= 10 Then

      puntuación = puntuación – 5

    EndIf   

    MostrarPuntuación()

    Controls.SetTextBoxText(ángulotexto, «»)

    Controls.SetTextBoxText(distanciatexto, «»)

    MoverFigura()  

    If vidas < 1 Then

      TerminarJuego()

    EndIf   

  EndIf

EndSub

Sub Interfaz

  imagen = Program.Directory + «\dibujo.png» 

  GraphicsWindow.DrawRectangle(rx, ry, ancho, alto)

  diana = Shapes.AddImage(imagen)

  GraphicsWindow.BrushColor = «Black»

  Shapes.Move(diana, 100, 50)

  Turtle.Show()

  Turtle.X = tortugaX

  Turtle.y = tortugaY 

  Turtle.Angle = 0

  GraphicsWindow.DrawText(rx + 5, alto – 10, «Ángulo:»)

  ángulotexto = Controls.AddTextBox(tortugaX – 205, tortugaY + 70)

  Controls.SetSize(ángulotexto, 40, 30) 

  GraphicsWindow.DrawText(rx + 140, alto – 10, «Distancia:»)

  distanciatexto = Controls.AddTextBox(tortugaX – 60, tortugaY + 70)

  Controls.SetSize(distanciatexto, 40, 30)  

  firebutton = Controls.AddButton(«Disparar», tortugaX + 20, tortugaY + 70) 

  Controls.SetSize(firebutton, 80, 30)   

Endsub

Sub MoverFigura

  Shapes.ShowShape(diana)

  Turtle.x = tortugaX

  Turtle.Y = tortugaY

  Turtle.Angle = 0

  x = Math.GetRandomNumber(450)

  y = Math.GetRandomNumber(80)

  If x <= 40 Then

    x = 40

    Shapes.Animate(diana, x, y, 1000)

  ElseIf y <= 20 Then

    y = 20

    Shapes.Animate(diana, x, y, 1000)

  Else 

    Shapes.Animate(diana, x, y, 1000)

  EndIf

EndSub

Sub TerminarJuego

  GraphicsWindow.ShowMessage(«Puntuación: » + puntuación, «FIN») 

  Program.End()

EndSub

Sub MostrarPuntuación

  GraphicsWindow.FontSize = 14

  GraphicsWindow.BrushColor = «Gray»

  GraphicsWindow.FillRectangle(CuadroPuntuaciónX + 50, CuadroPuntuaciónX – 65, 135, 70)

  GraphicsWindow.BrushColor = «White»

  GraphicsWindow.DrawText(CuadroPuntuaciónX + 60, CuadroPuntuaciónX – 55, «Puntuación: «)

  GraphicsWindow.DrawText(CuadroPuntuaciónX + 150, CuadroPuntuaciónX – 55, puntuación)

  GraphicsWindow.DrawText(CuadroPuntuaciónX + 60, CuadroPuntuaciónX – 20, «Vidas: «)

  GraphicsWindow.DrawText(CuadroPuntuaciónX + 110, CuadroPuntuaciónX – 20, vidas)   

EndSub

Los beneficios de aprender a PROGRAMAR desde niño


a1

The Guardian dedica, dentro de su serie Digital literacy campaign, un par de interesantes artículos no al aprendizaje de la programación sino a la conveniencia de iniciar dicho aprendizaje de forma temprana, incluyéndolo en la educación infantil, en los programas de los colegios.

 

http://nanotice.blogspot.com.ar/2012/02/los-beneficios-de-aprender-programar.html

 

MS Small Basic, para aprender a programar con un lenguaje sencillo


a1

 

Small Basic facilita a los estudiantes de todas las edades entrar en el mundo de la programación gracias a su sencilla interfaz, un plan de estudios con clases separadas, y un montón de código como ejemplo.

Microsoft Small Basic propone a los niños aprender a programar de forma sencilla y divertida mediante código simplificado. Se trata de un dialecto de Basic reducido a tan solo 15 funciones para dibujo bidimensional, la reproducción de sonidos y cálculos aritméticos.

http://didactalia.net/comunidad/materialeducativo/recurso/Microsoft-Small-Basic-para-aprender-a-programar-c/acc1633d-5482-4c23-9ab4-32410ccd3838?rdf

 

Algunas capacidades gráficas interesantes que ofrece MS Small Basic (código)


a1

 .

  1. GraphicsWindow.Show()
  2. GraphicsWindow.Title = «Una ventana de gráficos»
  3. GraphicsWindow.Height = 640
  4. GraphicsWindow.Width = 800
  5. GraphicsWindow.BackgroundColor = «Black»
  6. GraphicsWindow.PenWidth = 10
  7. GraphicsWindow.PenColor = «Gold»
  8. GraphicsWindow.DrawLine(65, 100, 65, 370)
  9. GraphicsWindow.PenColor = «Black»
  10. GraphicsWindow.BrushColor = «Cyan»
  11. GraphicsWindow.DrawEllipse(70, 250, 100, 100)
  12. GraphicsWindow.FillEllipse(70, 250, 100, 100)
  13. For i = 1 To 10
  14. GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
  15. GraphicsWindow.PenWidth = 2
  16. GraphicsWindow.Drawrectangle(100, i * 20, 50, 10)
  17. EndFor
  18. imagen1 = «C:\Small Basic\Invierno.jpg»
  19. GraphicsWindow.DrawResizedImage(imagen1, 200, 100, 500, 500)
  20. GraphicsWindow.ShowMessage(«¡Que tenga un buen día!», «Mensaje»)
  21.  
  22.  

Kid’s Corner


a1

Es un programa (gratuito) de Microsoft pensando en aquellas personas que quieren aprender a programar y enfocado también en los niños para encaminarlos hacia ese mundo. Sin tener conocimientos previos de programación, con un entorno muy sencillo y un lenguaje más que simple, te permite crear bibliotecas para hacer realidad tus programas y/o juegos, con unas pocas líneas de códigos. Recién estrenada la web social de Small Basic, podrás compartir tus programas con los amigos, permitiéndoles que los prueben, pudiendo, a su vez, incorporar tu creación en tu web o blog.

Algunas Formas de enseñar programación a los niños


a1

  La programación es una actividad que estimula la concentración y el raciocinio lógico, con lo que enseñar a programar a los niños no tiene porqué aplicarse solamente a los futuros programadores.

Aquí dejamos tres opciones para que los niños empiecen sus primeros pasos en la programación.

http://www.diginota.com/algunas-formas-de-ensenar-programacion-a-los-ninos/

Estados Unidos anima a las escuelas a enseñar programación


a1

¿Niños de primaria aprendiendo a programar?

Un número creciente de países ha comenzado a enseñar a sus alumnos a escribir código con el objetivo de formar a creadores digitales y no solo a meros consumidores de contenido, potenciando, así, su creatividad y su mente lógica. Programar es una palabra que puede sonarle aburrida a cualquiera, pero la cosa cambia cuando le preguntas a un niño de diez años si le gustaría aprender a crear sus propias aplicaciones y videojuegos.

http://blog.uptodown.com/ninos-de-primaria-aprendiendo-a-programar/

 

MS Small Basic: Juego «La pelota rebota…» (código)


a1

… en los bloques de color gris. Gana si se deshace de todos los bloques de colores

‘ Copyright (c) Microsoft Corporation. Todos los derechos reservados.

  1.  GraphicsWindow.Hide()
  2. GraphicsWindow.Height = 450
  3. GraphicsWindow.Width = 600
  4. GraphicsWindow.Top = ( Desktop.Height – 450 ) / 2
  5. GraphicsWindow.Left = ( Desktop.Width – 600 ) / 2
  6. GraphicsWindow.CanResize = «False»
  7. GraphicsWindow.Show()
  8. imgPaleta = Program.Directory + «\rectángulo.png»
  9. imgPelota =   Program.Directory + «\círculo.png»
  10. restantes  = 42
  11. yInicialBloq = 35
  12. CrearInterfazUsuario()
  13. golpes = 0
  14. GraphicsWindow.MouseMove = MouseAction
  15. For índice = 0 To 15
  16.   Array.SetValue(«bloquesRosados», índice, 1)
  17.   Array.SetValue(«bloquesVioleta», índice, 1)
  18.   Array.SetValue(«bloquesTurquesa», índice, 1)
  19. Endfor
  20. InicializarBloques()
  21. puntuación = 0
  22. ShowScore()
  23. anVent = GraphicsWindow.Width
  24. alVent = GraphicsWindow.Height
  25. y = anVent – 28
  26. Shapes.Move(pelota, x, y)
  27. dX= 1
  28. dY =-2
  29. Bucle:
  30. x = x + dX
  31. y = y + dY
  32. If x >= anVent – 16 Or x <= 0 Then
  33.   dX= -dX
  34. EndIf
  35. If y <= 0 Then
  36.   dY = -dY
  37. EndIf 
  38. paletaX = Shapes.GetLeft(paleta)
  39. If y >= alVent – 28 + 2 And x >= paletaX And x <= paletaX + 70 Then
  40.   y = alVent – 28 + 2   
  41.   golpes = golpes + 1
  42.   If Math.Remainder(golpes, 3) = 0 Then
  43.     For índice = 0 To 15
  44.       HidePinkBrick()
  45.       HideVioletBrick()
  46.       HideAquaBrick()
  47.     Endfor
  48.     yInicialBloq = yInicialBloq + 20
  49.     InicializarBloques()
  50.   EndIf
  51.  
  52.   TestAqua:
  53.   For índice = 0 To 15
  54.     If Array.GetValue(«bloquesTurquesa», índice) = 1 Then
  55.       If yInicialBloq > altoVentana – 160 Then
  56.         Goto EndGame
  57.       EndIf
  58.     EndIf
  59.   EndFor
  60.  
  61.   TestViolet:
  62.   For índice = 0 To 15
  63.     If Array.GetValue(«bloquesVioleta», índice) = 1 Then
  64.       If yInicialBloq > altoVentana – 100 Then
  65.         Goto EndGame
  66.       EndIf
  67.     EndIf
  68.   EndFor
  69.   TestPink:
  70.   For índice = 0 To 15
  71.     If Array.GetValue(«bloquesRosados», índice) = 1 Then
  72.       If yInicialBloq > altoVentana – 40 Then
  73.         Goto EndGame
  74.       EndIf
  75.     EndIf
  76.   EndFor
  77.   EndTest:
  78.   dX= dX- 2 + (x – paletaX) / 30
  79.   If puntuación = puntuaciónAnterior Then
  80.     If puntuación <> 0 Then
  81.       puntuación = puntuación – 1
  82.     EndIf
  83.   EndIf
  84.   puntuaciónAnterior = puntuación
  85.   ShowScore()
  86.   dY = -dY
  87. EndIf
  88. Shapes.Move(pelota, x, y)
  89. Program.Delay(5)
  90. If y > yInicialBloq – 16 And y < yInicialBloq + 20 Then
  91.   índice = (x+8) / 40
  92.   índice = Math.Floor(índice)
  93.   If Array.GetValue(«bloquesRosados», índice) = 1 Then        
  94.     If índice=8 Then
  95.     Else
  96.       Array.SetValue(«bloquesRosados», índice, 0)
  97.       HidePinkBrick()
  98.       restantes = restantes – 1
  99.       puntuación = puntuación + 15
  100.       ShowScore()
  101.     EndIf           
  102.     dY = -dY 
  103.     finJuego()     
  104.   EndIf
  105. EndIf
  106. If y > yInicialBloq + 44 And y < yInicialBloq + 80 Then
  107.   índice = (x + 8) / 40
  108.   índice = Math.Floor(índice)
  109.   If Array.GetValue(«bloquesVioleta», índice) = 1 Then
  110.     If índice=4 Or índice=11 Then
  111.     Else 
  112.       Array.SetValue(«bloquesVioleta», índice, 0)
  113.       HideVioletBrick()
  114.       restantes = restantes – 1
  115.       puntuación = puntuación + 10
  116.       ShowScore()
  117.     EndIf    
  118.     dY = -dY
  119.     finJuego()     
  120.   EndIf
  121. EndIf
  122. If y > yInicialBloq + 104 And y < yInicialBloq + 140 Then
  123.   índice = (x + 8) / 40 
  124.   índice = Math.Floor(índice)
  125.   If Array.GetValue(«bloquesTurquesa», índice) = 1 Then
  126.     If índice = 2 Or índice = 7 Or índice = 13 Then
  127.     Else 
  128.       Array.SetValue(«bloquesTurquesa», índice, 0)
  129.       HideAquaBrick()
  130.       puntuación = puntuación + 5
  131.       ShowScore()
  132.       restantes = restantes – 1
  133.     EndIf 
  134.     dY = -dY 
  135.     finJuego()
  136.   EndIf
  137. EndIf
  138. If y < altoVentana Then
  139.   Goto Bucle
  140. EndIf 
  141. EndGame:
  142. GraphicsWindow.ShowMessage(«Su puntuación es: » + puntuación, «FIN»)
  143. Program.End()
  144. Sub CrearInterfazUsuario
  145.   GraphicsWindow.Title = «Juego de paletas»
  146.   GraphicsWindow.FontSize = 14
  147.   paleta = Shapes.AddImage(imgPaleta)
  148.   pelota = Shapes.AddImage(imgPelota)
  149. EndSub
  150. Sub MouseAction
  151.   paletaX = GraphicsWindow.MouseX 
  152.   Shapes.Move(paleta, paletaX – 10, GraphicsWindow.Height – 14)
  153. EndSub
  154. Sub ShowScore
  155.   GraphicsWindow.BrushColor = «White»
  156.   GraphicsWindow.FillRectangle(520, 10, 200, 20)
  157.   GraphicsWindow.BrushColor = «Black»
  158.   GraphicsWindow.DrawText(500, 10, «Puntuación: » + puntuación)
  159. EndSub
  160. Sub InicializarBloques 
  161.   For índice = 0 To 15    
  162.     If índice = 8 Then
  163.       GraphicsWindow.PenColor = «Black»
  164.       GraphicsWindow.BrushColor = «Gray»
  165.     Else
  166.       If Array.GetValue(«bloquesRosados», índice) = 1 Then
  167.         GraphicsWindow.PenColor = «Black»
  168.         GraphicsWindow.BrushColor = «Pink»
  169.       Else
  170.         GraphicsWindow.PenColor = «White»
  171.         GraphicsWindow.BrushColor = «White»
  172.       EndIf
  173.     EndIf
  174.    
  175.     GraphicsWindow.FillRectangle(índice * 40, yInicialBloq, 40, 20)
  176.     GraphicsWindow.DrawRectangle(índice * 40, yInicialBloq, 40, 20)
  177.    
  178.     GraphicsWindow.BrushColor = «Violet»
  179.    
  180.     If índice = 4 Or índice=11 Then
  181.       GraphicsWindow.PenColor = «Black»
  182.       GraphicsWindow.BrushColor = «Gray»
  183.     Else
  184.       If Array.GetValue(«bloquesVioleta», índice) = 1 Then
  185.         GraphicsWindow.PenColor = «Black»
  186.         GraphicsWindow.BrushColor = «Violet»
  187.       Else
  188.         GraphicsWindow.PenColor = «White»
  189.         GraphicsWindow.BrushColor = «White»
  190.       EndIf
  191.     EndIf
  192.    
  193.     GraphicsWindow.FillRectangle(índice * 40, yInicialBloq + 60, 40, 20)
  194.     GraphicsWindow.DrawRectangle(índice * 40, yInicialBloq + 60, 40, 20)
  195.    
  196.     GraphicsWindow.BrushColor = «Aqua»
  197.     If índice = 2 Or índice = 7 Or índice = 13 Then
  198.       GraphicsWindow.PenColor = «Black»
  199.       GraphicsWindow.BrushColor = «Gray»
  200.     Else
  201.       If Array.GetValue(«bloquesTurquesa», índice) = 1 Then
  202.         GraphicsWindow.PenColor = «Black»
  203.         GraphicsWindow.BrushColor = «Aqua»
  204.       Else
  205.         GraphicsWindow.PenColor = «White»
  206.         GraphicsWindow.BrushColor = «White»
  207.       EndIf
  208.     EndIf
  209.     GraphicsWindow.FillRectangle(índice * 40, yInicialBloq + 120, 40, 20)
  210.     GraphicsWindow.DrawRectangle(índice * 40, yInicialBloq + 120, 40, 20)
  211.   EndFor
  212. EndSub
  213. Sub HidePinkBrick
  214.   GraphicsWindow.PenColor = «White»
  215.   GraphicsWindow.BrushColor = «White»
  216.   GraphicsWindow.FillRectangle(índice * 40, yInicialBloq, 40, 20)
  217.   GraphicsWindow.DrawRectangle(índice * 40, yInicialBloq, 40, 20)
  218. EndSub
  219. Sub HideVioletBrick
  220.   GraphicsWindow.PenColor = «White»
  221.   GraphicsWindow.BrushColor = «White»
  222.   GraphicsWindow.FillRectangle(índice * 40, yInicialBloq + 60, 40, 20)
  223.   GraphicsWindow.DrawRectangle(índice * 40, yInicialBloq + 60, 40, 20)
  224. EndSub
  225. Sub HideAquaBrick
  226.   GraphicsWindow.PenColor = «White»
  227.   GraphicsWindow.BrushColor = «White»
  228.   GraphicsWindow.FillRectangle(índice * 40, yInicialBloq + 120, 40, 20)
  229.   GraphicsWindow.DrawRectangle(índice * 40, yInicialBloq + 120, 40, 20)
  230. EndSub
  231. Sub finJuego
  232.   If restantes = 0 Then
  233.     GraphicsWindow.ShowMessage(«¡Bien hecho! Su puntuación es: » + puntuación, «FIN»)
  234.     Program.End()  
  235.   EndIf
  236. EndSub
  237.  

MS Small Basic: juego “Acierte a la figura correcta” (código)


a1

‘ Copyright (c) Microsoft Corporation. Todos los derechos reservados.

  1. GraphicsWindow.Hide()
  2. anVent = 620
  3. alVent = 400
  4. GraphicsWindow.CanResize = «False»
  5. GraphicsWindow.Width = anVent
  6. GraphicsWindow.Height = alVent
  7. GraphicsWindow.Top = ( Desktop.Height – alVent ) / 2
  8. GraphicsWindow.Left = ( Desktop.Width – anVent ) / 2
  9. GraphicsWindow.Title = «Acierte a la figura correcta»
  10. GraphicsWindow.Show()
  11. seg = 50
  12. puntuación = 0
  13. cuadroPuntX = 420
  14. retrasoVelocidad = 15
  15. GraphicsWindow.MouseDown = ClicMouse
  16. nombresFiguras[0] = «»
  17. nombresFiguras[1] = «Cuadrado»
  18. nombresFiguras[2] = «Rectángulo»
  19. nombresFiguras[3] = «Elipse»
  20. nombresFiguras[4] = «Círculo»
  21. cuadroTexto = Controls.AddTextBox(200, 0)
  22. Controls.SetTextBoxText(cuadroTexto, «Cuadrado»)
  23. MostrarPuntuación()
  24. GraphicsWindow.BrushColor = «Pink»
  25. GraphicsWindow.DrawRectangle(-2, 25, GraphicsWindow.Width + 2, GraphicsWindow.Height – 50)
  26. GraphicsWindow.FillRectangle(-2, 25, GraphicsWindow.Width + 2, GraphicsWindow.Height – 50)
  27. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  28. elipse = Shapes.AddEllipse(60, 40)
  29. Shapes.Move(elipse, -90, 50)
  30. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  31. rectángulo = Shapes.AddRectangle(60, 40)
  32. Shapes.Move(rectángulo, -20, 50)
  33. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  34. círculo = Shapes.AddEllipse(80, 80)
  35. Shapes.Move(círculo, 20, 50)
  36. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  37. cuadrado1 = Shapes.AddRectangle(40, 40)
  38. Shapes.Move(cuadrado1, 230, 50)
  39. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  40. rectángulo1 = Shapes.AddRectangle(40, 80)
  41. Shapes.Move(rectángulo1, 300, 250)
  42. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  43. elipse1 = Shapes.AddEllipse(35, 60)
  44. Shapes.Move(elipse1, 100, 250)
  45. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  46. cuadrado2 = Shapes.AddRectangle(20, 20)
  47. Shapes.Move(cuadrado2, 250, 250)
  48. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  49. círculo1 = Shapes.AddEllipse(80, 80)
  50. Shapes.Move(círculo1, 450, 210)
  51. i = 1
  52. segAnterior = 0
  53. segActual = Clock.ElapsedMilliseconds
  54. segE    = segActual
  55. While 1 = 1   
  56.   Shapes.Move(elipse, Shapes.GetLeft(elipse) + 4, 50)
  57.   If Shapes.GetLeft(elipse) > 650 Then
  58.     shapes.ShowShape(cuadrado1) 
  59.     Shapes.Move(elipse, -90, 300)
  60.   EndIf
  61.  
  62.   Shapes.Move(rectángulo, Shapes.GetLeft(rectángulo) + 5, 50)
  63.   If Shapes.GetLeft(rectángulo)  > 600  Then
  64.     shapes.ShowShape(rectángulo) 
  65.     Shapes.Move(rectángulo, -20, 50)
  66.   EndIf
  67.  
  68.   Shapes.Move(círculo, Shapes.GetLeft(círculo) + 4, 50)
  69.   If Shapes.GetLeft(círculo) > 600 Then
  70.     shapes.ShowShape(círculo)
  71.     Shapes.Move(círculo, -110, 100)
  72.   EndIf
  73.  
  74.   Shapes.Move(cuadrado1, Shapes.GetLeft(cuadrado1) + 3, 50)
  75.   If Shapes.GetLeft(cuadrado1) > 600 Then
  76.     shapes.ShowShape(cuadrado1)
  77.     Shapes.Move(cuadrado1, -200, 100)
  78.   EndIf
  79.  
  80.   Shapes.Move(rectángulo1, Shapes.GetLeft(rectángulo1) + 6, 250)
  81.   If Shapes.GetLeft(rectángulo1) > 600 Then
  82.     shapes.ShowShape(rectángulo1)
  83.     Shapes.Move(rectángulo1, -100, 180)
  84.   EndIf
  85.  
  86.   Shapes.Move(elipse1, Shapes.GetLeft(elipse1) + 2, 250)
  87.   If Shapes.GetLeft(elipse1) > 600 Then
  88.     shapes.ShowShape(elipse1)
  89.     Shapes.Move(elipse1, -60, 70)
  90.   EndIf
  91.  
  92.   Shapes.Move(cuadrado2, Shapes.GetLeft(cuadrado2)+3, 250)
  93.   If Shapes.GetLeft(cuadrado2) > 600 Then
  94.     shapes.ShowShape(cuadrado2)
  95.     Shapes.Move(cuadrado2, -250, 300)
  96.   EndIf  
  97.  
  98.   Shapes.Move(círculo1, Shapes.GetLeft(círculo1) + 5, 210)
  99.   If Shapes.GetLeft(círculo1) > 600 Then
  100.     Shapes.ShowShape(círculo1)
  101.     Shapes.Move(círculo1, -50, 210)
  102.   EndIf   
  103.   seg = seg – 0.01
  104.   GraphicsWindow.BrushColor = «Blue»
  105.   GraphicsWindow.FillRectangle(cuadroPuntX+60, 0, 120, 25)
  106.   GraphicsWindow.BrushColor = «White»
  107.   GraphicsWindow.DrawText(cuadroPuntX + 62, 5, «Tiempo:»)
  108.   If seg >= 10 Then
  109.     GraphicsWindow.DrawText(cuadroPuntX + 130, 5,»00:» + Math.Floor(seg))
  110.   ElseIf seg > 0 Then
  111.     GraphicsWindow.DrawText(cuadroPuntX + 130, 5,»00:0″ + Math.Floor(seg))
  112.   EndIf
  113.   If seg <= 0 Then
  114.     Goto fuera
  115.   EndIf  
  116.  
  117.   Program.Delay(retrasoVelocidad)   
  118.  
  119.   segActual = Clock.ElapsedMilliseconds   
  120.   If (segActual – segAnterior) >= 5000 Then     
  121.     i = Math.GetRandomNumber(4)   
  122.     If i <> 0 Then
  123.       Controls.SetTextBoxText(cuadroTexto, nombresFiguras[i])
  124.     EndIf      
  125.     segAnterior = segActual      
  126.   EndIf  
  127.   segActual = Clock.ElapsedMilliseconds  
  128. EndWhile
  129. fuera:
  130. GraphicsWindow.DrawText(cuadroPuntX + 130, 5,»00:0″ + Math.Floor(seg))
  131. GraphicsWindow.ShowMessage(«Su puntuación es: » + puntuación, «FIN»)
  132. Program.End()   
  133. Sub ClicMouse   
  134.   cuadrado1_izq =  Shapes.GetLeft(cuadrado1)
  135.   cuadrado1_sup  =  Shapes.GetTop(cuadrado1)
  136.   cuadrado2_izq =  Shapes.GetLeft(cuadrado2)
  137.   cuadrado2_sup  =  Shapes.GetTop(cuadrado2)
  138.   rectángulo_izq    =  Shapes.GetLeft(rectángulo)
  139.   rectángulo_sup     =  Shapes.GetTop(rectángulo)
  140.   rectángulo1_izq   =  Shapes.GetLeft(rectángulo1)
  141.   rectángulo1_sup    =  Shapes.GetTop(rectángulo1)
  142.   elipse_izq    =  Shapes.GetLeft(elipse)
  143.   elipse_sup     =  Shapes.GetTop(elipse)
  144.   elipse1_izq   =  Shapes.GetLeft(elipse1)
  145.   elipse1_sup    =  Shapes.GetTop(elipse1) 
  146.   círculo_izq  =  Shapes.GetLeft(círculo)
  147.   círculo_sup   =  Shapes.GetTop(círculo)
  148.   círculo1_izq =  Shapes.GetLeft(círculo1)
  149.   círculo1_sup  =  Shapes.GetTop(círculo1)
  150.  
  151.   If Controls.GetTextBoxText(cuadroTexto) = «Cuadrado» Then
  152.     If (GraphicsWindow.MouseX >= cuadrado1_izq) And (GraphicsWindow.MouseX <= cuadrado1_izq + 40) Then
  153.       If (GraphicsWindow.MouseY >= cuadrado1_sup) And (GraphicsWindow.MouseY <= cuadrado1_sup + 40) Then
  154.         Shapes.HideShape(cuadrado1)
  155.         puntuación = puntuación + 1                      
  156.       EndIf
  157.     EndIf
  158.    
  159.     If (GraphicsWindow.MouseX >= cuadrado2_izq) And (GraphicsWindow.MouseX <= cuadrado2_izq + 20) Then
  160.       If (GraphicsWindow.MouseY >= cuadrado2_sup) And (GraphicsWindow.MouseY <= cuadrado2_sup + 20) Then
  161.         Shapes.HideShape(cuadrado2)
  162.         puntuación = puntuación + 1         
  163.       EndIf
  164.     EndIf
  165.   EndIf    
  166.  
  167.   If Controls.GetTextBoxText(cuadroTexto) = «Rectángulo» Then
  168.     If (GraphicsWindow.MouseX >= rectángulo_izq) And (GraphicsWindow.MouseX <= rectángulo_izq + 40) Then
  169.       If (GraphicsWindow.MouseY >= rectángulo_sup) And (GraphicsWindow.MouseY <= rectángulo_sup + 40) Then
  170.         Shapes.HideShape(rectángulo)
  171.         puntuación = puntuación + 1           
  172.       EndIf
  173.     EndIf
  174.    
  175.     If (GraphicsWindow.MouseX >= rectángulo1_izq) And (GraphicsWindow.MouseX <= rectángulo1_izq + 40) Then
  176.       If (GraphicsWindow.MouseY >= rectángulo1_sup) And (GraphicsWindow.MouseY <= rectángulo1_sup + 80) Then
  177.         Shapes.HideShape(rectángulo1)
  178.         puntuación = puntuación + 1         
  179.       EndIf
  180.     EndIf
  181.   EndIf    
  182.  
  183.   If Controls.GetTextBoxText(cuadroTexto) = «Elipse» Then
  184.     If (GraphicsWindow.MouseX >= elipse_izq) And (GraphicsWindow.MouseX <= elipse_izq + 60) Then
  185.       If (GraphicsWindow.MouseY >= elipse_sup) And (GraphicsWindow.MouseY <= elipse_sup + 40) Then
  186.         Shapes.HideShape(elipse)
  187.         puntuación = puntuación + 1         
  188.       EndIf
  189.     EndIf
  190.    
  191.     If (GraphicsWindow.MouseX >= elipse1_izq) And (GraphicsWindow.MouseX <= elipse1_izq + 60) Then
  192.       If (GraphicsWindow.MouseY >= elipse1_sup) And (GraphicsWindow.MouseY <= elipse1_sup + 40) Then         
  193.         Shapes.HideShape(elipse1)
  194.         puntuación = puntuación + 1         
  195.       EndIf
  196.     EndIf
  197.   EndIf
  198.  
  199.   If Controls.GetTextBoxText(cuadroTexto) = «Círculo» Then
  200.     If (GraphicsWindow.MouseX >= círculo_izq) And (GraphicsWindow.MouseX <= círculo_izq + 80) Then
  201.       If (GraphicsWindow.MouseY >= círculo_sup) And (GraphicsWindow.MouseY <= círculo_sup + 80) Then
  202.         Shapes.HideShape(círculo)
  203.         puntuación = puntuación + 1        
  204.       EndIf
  205.     EndIf
  206.     If (GraphicsWindow.MouseX >= círculo1_izq) And (GraphicsWindow.MouseX <= círculo1_izq + 40) Then
  207.       If (GraphicsWindow.MouseY >= círculo1_sup) And (GraphicsWindow.MouseY <= círculo1_sup + 40) Then
  208.         Shapes.HideShape(círculo1)
  209.         puntuación = puntuación + 1         
  210.       EndIf
  211.     EndIf
  212.   EndIf
  213.   MostrarPuntuación()   
  214. EndSub
  215. Sub MostrarPuntuación
  216.   GraphicsWindow.FontName = «Verdana»
  217.   GraphicsWindow.FontSize = 14
  218.   GraphicsWindow.BrushColor = «White»
  219.   GraphicsWindow.FillRectangle(0, 0, 150, 20)
  220.   GraphicsWindow.BrushColor = «Black»
  221.   GraphicsWindow.DrawText(10, 5, «Puntuación: » + puntuación)
  222. EndSub

¿ cómo enseñar programación a niños y adolescentes ?


 

 a4

He seguido una discusión en línea con O’Reilly alrededor de cuál es la mejor manera de acercarse a enseñar a los niños a programar, así que pensé en  preguntar a la comunidad en  la entrada.

 ¿Ha enseñado a programar a los niños? Si es así, ¿qué recursos se utilizaron? ¿Qué idioma / s qué decidiste eran los más apropiados? ¿Se enseña a uno-a-uno o en un salón de clases? ¿Utilizó algún libro, y si es así, ¿funcionan bien para usted? Si no, ¿qué clase de libro crees que sería más apropiado?

http://answers.oreilly.com/topic/1514-best-way-to-teach-programming-to-children/

Teach kids about computers


a4

Enseñar a los niños acerca de las computadoras puede prepararlos para el uso de las numerosas formas de tecnología que están presentes en toda la sociedad de hoy. Además de proporcionar entretenimiento a los niños, las computadoras también se puede utilizar como un recurso para la realización de tareas tales como tareas o trabajos de investigación. Al igual que con cualquier persona que es nueva en las computadoras, usted debe comenzar con lo básico enseñar a los niños de ordenador, tales como el uso de un ratón y el teclado, y acerca de la etiqueta general de la computadora. Continúe leyendo este artículo para aprender acerca de las formas en que usted puede comenzar a enseñar a los niños acerca de las computadoras. 

http://www.wikihow.com/Teach-Kids-About-Computers

Programación para niños – 10 recursos gratuitos para aprender al instante


a1

 No quedan dudas de que las mentes más prodigiosas para aprender y sacarle el mayor beneficio a la programación y su lógica, aplicándola a los problemas y nuevos retos que se enfrentan cotidianamente, son las de los niños. Así pues, acá revisamos algunas opciones para que se sumerjan desde temprana edad a este interesante mundillo y aprendan a utilizarla en espacios diferentes. Sobra recomendar el acompañamiento de un adulto para fortalecer el proceso educativo.

http://wwwhatsnew.com/2013/01/30/programacion-para-ninos-recursos-gratuitos-aprender-al-instante/

KidsRuby: Enseña a los niños a programar Ruby


a1

 

 KidsRuby es un software gratuito para enseñar a programar en Ruby, diseñado especialmente para niños.

La versión 1.2 de KidsRuby fue recientemente liberada, y la gran noticia es que esta versión incluye traducción en español. Así que si KidsRuby puede ser una gran opción para enseñar a niños en latinoamérica a programar utilizando un lenguaje sencillo y amigable como Ruby.

http://sg.com.mx/buzz/kidsruby-ense%C3%B1a-los-ni%C3%B1os-programar-ruby

Enseñando a los niños a Programar


a1 

Scratchhttp://scratch.mit.edu      El ser capaz de usar Internet y operar una computadora es una cosa, pero  enseñar a los alumnos cómo codificar y realizar programas tiene también un valor educativo

Existen un gran número de herramientas gratuitas que proveen una introducción a la programación y a la codificación de programas

se han reportado grandes mejoras en el aprendizaje de la programación y codificación desde edades tempranas con el uso de estas herramientas.

Autor:

Ignacio Cabral Perdomo

Descarga gratis el lenguaje Scratch…


a2

Scratch se ha diseñado para ayudar a los niños a:

Desarrollar conceptos de programación en un entorno de creatividad artística.

Programar animaciones, juegos, todo ello utilizando pistas de música y dibujos propios.

Aprender conceptos matemáticos e informáticos.

http://portable-scratch.softonic.com/

Un portatil por niño…


a1

EL proyecto Un portatil por niño o OLPC (del inglés «One Laptop Per Child«), también conocido como la computadora portátil es el nombre de un proyecto centrado en la distribución de un PC fabricado con el propósito de proporcionar a cualquier niño del mundo conocimiento y acceso a la tecnología de la información como formas modernas de educación. El proyecto cuenta con el apoyo y colaboración de Google, AMD, Red Hat, News Corp, Brightstar Corp y otras empresas.[1]

El portátil se basa en una plataforma GNU/Linux, y es eficiente en la utilización de la energía, de manera que con un dispositivo mecánico de tipo manivela se puede generar suficiente energía para su operación. Un dispositivo de conectividad inalámbrica permite que los aparatos se conecten entre sí y a Internet desde cualquier sitio. Estos portátiles serán vendidos inicialmente a los gobiernos y entregados a los niños en las escuelas bajo el principio «una computadora para cada niño».

http://es.wikipedia.org/wiki/OLPC

 

Una docena de herramientas para iniciar a los niños en la programación


 a1

Hoy por hoy, la mayoría de los niños, son lo que se conoce como ‘nativos digitales’. Las nuevas generaciones se están criando entre herramientas tecnológicas que les sirven como vehículo para facilitar su aprendizaje. Se enseña a los niños a utilizar herramientas de usuario para que escriban documentos o busquen información en internet. Pero, ¿por qué no enseñar a los niños además de a utilizar videojuegos, a fabricar sus propios videojuegos? ¿por qué no iniciamos a los niños de forma temprana en la programación de sus propias herramientas de usuario?

http://unadocenade.com/una-docena-de-herramientas-para-iniciar-a-los-ninos-en-la-programacion/

Scratch y la docencia, recursos para todos


a2

http://www.genbetadev.com/lenguajes-de-programacion/scratch-ensenando-programacion-a-los-peques

Este proyecto tiene un especial esfuerzo en hacerlo llegar a los niños en forma de material docente, proporcionando para ello todo tipo de ayudas a profesores para que se puedan usar en clase, como manuales, fichas, soporte, una página de educadores o una comunidad online especialmente dedicada a que todo sea mucho más fácil.

Por si fuera poco también tienen las especificaciones de unas placas que permitirían alimentar la E/S de Scratch con el mundo físico, de forma que la experiencia de los desarrollos sería mucho más rica y divertida, pudiendo tanto alimentar de datos el sistema, disparando eventos en el software, como al revés, haciendo que suene porque ocurra algo en el sistema.

Es de destacar que este programa está traducido a muchos idiomas y posiblemente el que busques esté ya incorporado por defecto, lo cual favorecerá que se pueda usar en todo el mundo.

Enseñando programación a los pequeños


a1

http://www.genbetadev.com/lenguajes-de-programacion/scratch-ensenando-programacion-a-los-peques

Realmente, Scratch es un producto para enseñar a pensar a todo el mundo, no es sólo para niños. Es una aproximación bastante gráfica a la resolución de problemas usando la división en tareas más pequeñas y de recorrerlo desde arriba hasta abajo.

Es como una versión para el siglo XXI de la tortuga triangular de Logo que nombrábamos antes, un gato muy infantil acompañado de más personajes a los que se puede animar y hacer funcionar en una historieta con una facilidad pasmosa.

Programación orientada a objetos (C# y Visual Basic)


a1

 Todos los lenguajes administrados de .NET Framework, como Visual Basic y C#, proporcionan plena compatibilidad con la programación orientada a objetos, incluidos la encapsulación, la herencia y el polimorfismo.

Encapsulation means that a group of related properties, methods, and other members are treated as a single unit or object.’ data-guid=»08ca340f2489883d54eaf511beaeb1cd» xml:space=»preserve»>La encapsulación significa que un grupo de propiedades, métodos y otros miembros relacionados se tratan como si de una sola unidad u objeto se tratase.

Inheritance describes the ability to create new classes based on an existing class.’ data-guid=»6a601763577d5bdb59dba0f39c24f040″ xml:space=»preserve»>Herencia describe la posibilidad de crear nuevas clases basadas en una clase existente.

Polymorphism means that you can have multiple classes that can be used interchangeably, even though each class implements the same properties or methods in different ways.’ data-guid=»f79235d833293c31a6e62ddbc9653f38″ xml:space=»preserve»>Polimorfismo significa que puede tener múltiples clases que se pueden utilizar de forma intercambiable, si bien cada clase implementa las mismas propiedades o los mismos métodos de maneras diferentes.

En esta sección se describen los conceptos siguientes:

Propiedades y campos

Métodos

Constructores

Destructores

Eventos

Clases anidadas

http://msdn.microsoft.com/es-es/library/dd460654(v=vs.100).aspx

MS Small Basic: diversión con el objeto Shapes (código)


  a1

Además de dibujar formas de diferentes estilos y tamaños, también puede crear formas con diseños únicos usando condiciones y bucles en el programa.

__________________________________________________________________________________________________________________________________________________________

GraphicsWindow.Title= «Explorando las formas»
GraphicsWindow.Height =500
GraphicsWindow.Width = 700

For i = 0 To 20
  GraphicsWindow.PenWidth = 0.5
  GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  rectangulo1 = Shapes.AddRectangle (i * 20, i * 10)
  Shapes.Move(rectangulo1, i * 10, i * 10)
EndFor

MS Small Basic: animación de una forma con el objeto Shapes (código)


animate 

  1. GraphicsWindow.Title = «Explorando las formas»
  2. Forma1 =Shapes.AddRectangle(100, 100)
  3. Fpelota = Shapes.AddEllipse(100, 100)
  4. Shapes.Move(Fpelota, 0, 340)
  5. x = 450
  6. GraphicsWindow.DrawRectangle(550, 0, 80, 450)
  7. GraphicsWindow.BrushColor = «Purple»
  8. GraphicsWindow.FillRectangle(550, 0, 80, 450)
  9. Shapes.Animate(Fpelota, x, 40, 450)
  10. Program.Delay(500)
  11. If (Shapes.GetLeft(Fpelota) = x) Then
  12. Shapes.Animate(Fpelota, 0, 340, 500)
  13. EndIf

Crear videojuegos utilizando conceptos de Small Basic (código)


 A4

 Utilize GraphicsWindows para crear la interfaz del juego.

Utilize el objeto Shapes para crear el área del juego para las X y O en la ventana de gráficos.

Utilice eventos del mouse y condiciones como If-Else para mostrar las acciones realizadas por el usuario y el ordenador durante el juego.

 ________________________________________________________________________________________________________________

‘ Copyright (c) Microsoft Corporation.  Todos los derechos reservados.
GraphicsWindow.Hide()
anVent = 350
alVent = 350
 
cuadrículaX = 25
cuadrículaY = 25
tamañoCelda = 100
 
GraphicsWindow.CanResize = «False»
GraphicsWindow.Width = anVent
GraphicsWindow.Height = alVent
 
GraphicsWindow.Top = (Desktop.Height – alVent) / 2
GraphicsWindow.Left = (Desktop.Width – anVent) / 2
GraphicsWindow.Title = «Tres en raya»
GraphicsWindow.Show()
 
turnoJugador = «True»
GraphicsWindow.MouseMove = AlMoverMouse
GraphicsWindow.MouseDown = AlPulsarMouse
 
IniciarTablero()
 
bucleJuego:
ComprobarFinJuego()
If finalizado = «True» Then
  Goto TerminarJuego
EndIf
 
If turnoJugador = «True» Then
  Program.Delay(1000)
  Goto bucleJuego
EndIf
 
IntentarGanar()
If filaComp <> -1 And colComp <> -1 Then
  TurnoOrdenador()
  Goto comprobarJuego
EndIf
 
IntentarBloque()
If filaComp <> -1 And colComp <> -1 Then
  TurnoOrdenador()
  Goto comprobarJuego
EndIf
 
‘ Jugar en el centro
If celdas[1][1] = «» Then
  filaComp = 1
  colComp = 1
  TurnoOrdenador()
  Goto comprobarJuego
EndIf
 
‘ Elegir una esquina
ElegirEsquina()
If filaComp <> -1 And colComp <> -1 Then
  TurnoOrdenador()
  Goto comprobarJuego
EndIf
 
‘ Elegir una celda vacía
ElegirUna()
If filaComp <> -1 And colComp <> -1 Then
  TurnoOrdenador()
  Goto comprobarJuego
EndIf
 
comprobarJuego:
ComprobarFinJuego()
If finalizado <> «True» Then
  Goto bucleJuego
EndIf
 
TerminarJuego:
If ganaJugador = «True» Then
  GraphicsWindow.ShowMessage(«¡Ha ganado! Bien hecho.», «FIN»)
  Program.End()
ElseIf ganaComp = «True» Then
  GraphicsWindow.ShowMessage(«¡Ha perdido! Suerte para la próxima vez.», «FIN»)
  Program.End()
Else
  GraphicsWindow.ShowMessage(«¡Empate!», «FIN»)
  Program.End()
EndIf
 
Sub IntentarGanar
  filaComp = -1
  colComp = -1
  For i = 0 to 2
    If celdas[i][0] = «O» And celdas[i][1] = «O» And celdas[i][2] = «» Then
      filaComp = i
      colComp = 2
    ElseIf celdas[i][0] = «O» And celdas[i][1] = «» And celdas[i][2] = «O» Then
      filaComp = i
      colComp = 1
    ElseIf celdas[i][0] = «» And celdas[i][1] = «O» And celdas[i][2] = «O» Then
      filaComp = i
      colComp = 0
    ElseIf celdas[0][i] = «O» And celdas[1][i] = «O» And celdas[2][i] = «» Then
      colComp = i
      filaComp = 2
    ElseIf celdas[0][i] = «O» And celdas[1][i] = «» And celdas[2][i] = «O» Then
      colComp = i
      filaComp = 1
    ElseIf celdas[0][i] = «» And celdas[1][i] = «O» And celdas[2][i] = «O» Then 
      colComp = i
      filaComp = 0
    EndIf   
  EndFor
  If celdas[0][0] = «O» And celdas[1][1] = «O» And celdas[2][2] = «» Then
    colComp = 2
    filaComp = 2
  ElseIf celdas[0][0] = «O» And celdas[1][1] = «» And celdas[2][2] = «O» Then
    colComp = 1
    filaComp = 1
  ElseIf celdas[0][0] = «» And celdas[1][1] = «O» And celdas[2][2] = «O» Then
    colComp = 0
    filaComp = 0
  EndIf
EndSub
 
Sub IntentarBloque
  filaComp = -1
  colComp = -1
  For i = 0 to 2
    If celdas[i][0] = «X» And celdas[i][1] = «X» And celdas[i][2] = «» Then
      filaComp = i
      colComp = 2
    ElseIf celdas[i][0] = «X» And celdas[i][1] = «» And celdas[i][2] = «X» Then
      filaComp = i
      colComp = 1
    ElseIf celdas[i][0] = «» And celdas[i][1] = «X» And celdas[i][2] = «X» Then
      filaComp = i
      colComp = 0
    ElseIf celdas[0][i] = «X» And celdas[1][i] = «X» And celdas[2][i] = «» Then
      colComp = i
      filaComp = 2
    ElseIf celdas[0][i] = «X» And celdas[1][i] = «» And celdas[2][i] = «X» Then
      colComp = i
      filaComp = 1
    ElseIf celdas[0][i] = «» And celdas[1][i] = «X» And celdas[2][i] = «X» Then 
      colComp = i
      filaComp = 0
    EndIf   
  EndFor
  If celdas[0][0] = «X» And celdas[1][1] = «X» And celdas[2][2] = «» Then
    colComp = 2
    filaComp = 2
  ElseIf celdas[0][0] = «X» And celdas[1][1] = «» And celdas[2][2] = «X» Then
    colComp = 1
    filaComp = 1
  ElseIf celdas[0][0] = «» And celdas[1][1] = «X» And celdas[2][2] = «X» Then
    colComp = 0
    filaComp = 0
  EndIf
EndSub
 
Sub ComprobarFinJuego
  For i = 0 to 2
    If celdas[i][0] = «X» And celdas[i][1] = «X» And celdas[i][2] = «X» Then
      ganaJugador = «True»
      finalizado = «True»
    ElseIf celdas[i][0] = «O» And celdas[i][1] = «O» And celdas[i][2] = «O» Then
      ganaComp = «True»
      finalizado = «True»
    ElseIf celdas[0][i] = «X» And celdas[1][i] = «X» And celdas[2][i] = «X» Then
      ganaJugador = «True»
      finalizado = «True»
    ElseIf celdas[0][i] = «O» And celdas[1][i] = «O» And celdas[2][i] = «O» Then
      ganaComp = «True»
      finalizado = «True»
    EndIf
  EndFor
  If celdas[0][0] = «X» And celdas[1][1] = «X» And celdas[2][2] = «X» Then
    ganaJugador = «True»
    finalizado = «True»
  ElseIf celdas[0][0] = «O» And celdas[1][1] = «O» And celdas[2][2] = «O» Then
    ganaComp = «True»
    finalizado = «True»
 ElseIf celdas[0][2] = «O» And celdas[1][1] = «O» And celdas[2][0] = «O» Then
     ganaComp = «True»
     finalizado = «True»  
  ElseIf celdas[0][2] = «X» And celdas[1][1] = «X» And celdas[2][0] = «X» Then
     ganaJugador = «True»
     finalizado = «True» 
  EndIf
 
  If finalizado <> «True» Then
    finalizado = «True»
    For i = 0 to 2
      For j = 0 To 2
        If celdas[i][j] = «» Then
          finalizado = «False»
        EndIf
      EndFor
    EndFor
  EndIf
EndSub
 
Sub ElegirEsquina
  If celdas[0][0] = «X» And celdas[2][2] = «» Then
    filaComp = 2
    colComp = 2
  ElseIf celdas[0][2] = «X» And celdas[2][0] = «» Then
    filaComp = 2
    colComp = 0
  ElseIf celdas[2][0] = «X» And celdas[0][2] = «» Then
    filaComp = 0
    colComp = 2
  ElseIf celdas[2][2] = «X» And celdas[0][0] = «» Then
    filaComp = 2
    colComp = 2
  ElseIf celdas[0][0] = «» Then
    filaComp = 0
    colComp = 0
  ElseIf celdas[0][2] = «» Then
    filaComp = 0
    colComp = 2
  ElseIf celdas[2][0] = «» Then
    filaComp = 2
    colComp = 0
  ElseIf celdas[2][2] = «» Then
    filaComp = 2
    colComp = 2
  EndIf
EndSub
 
Sub ElegirUna
  For i = 0 to 2
    For j = 0 To 2
      If celdas[i][j] = «» Then
        filaComp = i
        colComp = j
        Goto finElegirCualquiera
      EndIf
    EndFor
  EndFor
finElegirCualquiera:
EndSub
 
Sub TurnoOrdenador
  f = filaComp
  c = colComp
 
  celdas[f][c] = «O»
       
  GraphicsWindow.BrushColor = «Black»
  GraphicsWindow.FontSize = 40
  GraphicsWindow.FontBold = «False»
  textoCelda = Shapes.AddText(«O»)
  Shapes.Move(textoCelda, c * tamañoCelda + cuadrículaX + 40, f * tamañoCelda + cuadrículaY + 26)
  turnoJugador = «True»
EndSub
 
Sub AlPulsarMouse
  If turnoJugador = «True» Then
 
    mx = GraphicsWindow.MouseX
    my = GraphicsWindow.MouseY
    If mx > cuadrículaX And my > cuadrículaY And mx < (cuadrículaX + 3 * tamañoCelda) And my < (cuadrículaY + 3 * tamañoCelda) Then
      c = Math.Floor((mx – cuadrículaX) / tamañoCelda)
      f = Math.Floor((my – cuadrículaY) / tamañoCelda)
     
      If celdas[f][c] = «» Then
        celdas[f][c] = «X»
       
        GraphicsWindow.BrushColor = «Black»
        GraphicsWindow.FontSize = 40
        GraphicsWindow.FontBold = «False»
        textoCelda = Shapes.AddText(«X»)
        Shapes.Move(textoCelda, c * tamañoCelda + cuadrículaX + 40, f * tamañoCelda + cuadrículaY + 26)
        turnoJugador = «False»
      EndIf
    EndIf
  EndIf
EndSub
 
Sub AlMoverMouse
  If turnoJugador = «True» Then
    pistaMouse = «False»
    DrawCell()
   
    mx = GraphicsWindow.MouseX
    my = GraphicsWindow.MouseY
    If mx > cuadrículaX And my > cuadrículaY And mx < (cuadrículaX + 3 * tamañoCelda) And my < (cuadrículaY + 3 * tamañoCelda) Then
      col = Math.Floor((mx – cuadrículaX) / tamañoCelda)
      fila = Math.Floor((my – cuadrículaY) / tamañoCelda)
 
      pistaMouse = «True»
      DrawCell()
    EndIf
  EndIf
EndSub
 
Sub IniciarTablero
  pistaMouse = «False»
  For col = 0 to 2
    For fila = 0 To 2
      DrawCell()
    EndFor
  EndFor
 
  fila = -1
  col = -1
EndSub
 
Sub DrawCell
  If fila >= 0 And col >= 0 And fila <= 2 And col <=2 Then
    x = col * tamañoCelda + cuadrículaX
    y = fila * tamañoCelda + cuadrículaY
     
    If pistaMouse = «True» Then
      GraphicsWindow.BrushColor = «Azure»
    Else
      GraphicsWindow.BrushColor = «White»
    EndIf
    GraphicsWindow.FillRectangle(x, y, tamañoCelda, tamañoCelda)
   
    GraphicsWindow.PenColor = «Black»
    GraphicsWindow.DrawRectangle(x, y, tamañoCelda, tamañoCelda)
  EndIf
EndSub
 
 

Videojuego en MS Small Basic (código)


asteroide

 ‘  Asteroids Game
‘ Copyright (C) 2009, Jason T. Jacques
‘ License: MIT license http://www.opensource.org/licenses/mit-license.php

‘ Game area controls
gameWidth = 640
gameHeight = 480
backColor = «black»

‘ Window title
gameTitle = «Asteroids, Score: »

‘ Target frames per second
fps = 25

‘ Key controls
leftKey = «Left»
rightKey = «Right»
forwardKey = «Up»
backKey = «Down»
fireKey = «Space»
pauseKey = «P»

‘ Asteroid (rock) settings
rockSpeed = 1
rockColor = «white»
rockMin = 20 ‘ small size rock
rockTypes = 3 ‘ number of rock sizes (multiples of small rock size)
initRocks = 5

‘ Ammo settings
ammoSpeed = 5
ammoColor = «white»
ammoLife = 60 ‘ moves before auto destruct
ammoMax = 10
ammoSize = 5

‘ Player settings
playerColor = «white»
playerHeight = 30
playerWidth = 20
safeTime = 100 ‘ time player has to get out of the way on level up

‘ Point multiplier
pointsMultiply = 10

‘ Array name initialisation
rock = «rockArray»
rockAngle = «rockAngle»
rockSize = «rockSize»
ammo = «ammoArray»
ammoAngle = «ammoAngle»
ammoAge = «ammoAge»

rockCount = 0
ammoCount = 0

bigRock = ImageList.LoadImage(«http://smallbasic.com/drop/Asteroids_BigRock.png»)
medRock = ImageList.LoadImage(«http://smallbasic.com/drop/Asteroids_MediumRock.png»)
smlRock = ImageList.LoadImage(«http://smallbasic.com/drop/Asteroids_SmallRock.png»)
background = ImageList.LoadImage(«http://smallbasic.com/drop/Asteroids_Sky.png»)

‘ Start game
Init()
Play()

‘ Setup world
Sub Init
GraphicsWindow.Hide()
GraphicsWindow.Title = gameTitle + «0»
GraphicsWindow.CanResize = «False»
GraphicsWindow.Width = gameWidth
GraphicsWindow.Height = gameHeight

GraphicsWindow.BackgroundColor = backColor
GraphicsWindow.BrushColor = backColor
GraphicsWindow.DrawImage(background, 0, 0)

LevelCheck()

GraphicsWindow.PenColor = playerColor
player = Shapes.AddImage(«http://smallbasic.com/drop/Asteroids_Ship.png»)
‘ player = Shapes.AddTriangle(playerWidth/2, 0, 0, playerHeight, playerWidth, playerHeight)
Shapes.Move(player, (gameWidth – playerWidth) / 2, (gameHeight – playerHeight) / 2)
playerAngle = 0
EndSub

‘ Main gane routine
Sub Play
GraphicsWindow.Show()
GraphicsWindow.KeyDown = ChangeDirection

‘ Main loop
play = 1
pause = 0
While(play = 1)
Program.Delay(1000/fps)
If (pause = 0) Then
Move()
CollisionCheck()
AgeAmmo()
LevelCheck()
EndIf
EndWhile
EndSub

‘ Read key event and act
Sub ChangeDirection
If(GraphicsWindow.LastKey = rightKey) Then
playerAngle = Math.Remainder(playerAngle + 10, 360)
ElseIf(GraphicsWindow.LastKey = leftKey) Then
playerAngle = Math.Remainder(playerAngle – 10, 360)
ElseIf(GraphicsWindow.LastKey = forwardKey) Then
playerSpeed = playerSpeed + 1
ElseIf(GraphicsWindow.LastKey = backKey) Then
playerSpeed = playerSpeed – 1
ElseIf(GraphicsWindow.LastKey = fireKey) Then
Fire()
ElseIf(GraphicsWindow.LastKey = pauseKey) Then
pause = Math.Remainder(pause + 1, 2)
EndIf
Shapes.Rotate(player, playerAngle)
EndSub

‘ Move all on screen items
Sub Move
‘ Move player
x = Math.Remainder(Shapes.GetLeft(player) + (Math.Cos(Math.GetRadians(playerAngle – 90)) * playerSpeed) + gameWidth, gameWidth)
y = Math.Remainder(Shapes.GetTop(player) + (Math.Sin(Math.GetRadians(playerAngle – 90)) * playerSpeed) + gameHeight, gameHeight)
Shapes.Move(player, x, y)

‘ Move rocks
For i = 1 To rockCount
x = Math.Remainder(Shapes.GetLeft(Array.GetValue(rock, i)) + (Math.Cos(Math.GetRadians(Array.GetValue(rockAngle, i) – 90)) * rockSpeed) + gameWidth, gameWidth)
y = Math.Remainder(Shapes.GetTop(Array.GetValue(rock, i)) + (Math.Sin(Math.GetRadians(Array.GetValue(rockAngle, i) – 90)) * rockSpeed) + gameHeight, gameHeight)
Shapes.Move(Array.GetValue(rock, i), x, y)
EndFor

‘ Move ammo
For i = 1 To ammoCount
x = Math.Remainder(Shapes.GetLeft(Array.GetValue(ammo, i)) + (Math.Cos(Math.GetRadians(Array.GetValue(ammoAngle, i) – 90)) * ammoSpeed) + gameWidth, gameWidth)
y = Math.Remainder(Shapes.GetTop(Array.GetValue(ammo, i)) + (Math.Sin(Math.GetRadians(Array.GetValue(ammoAngle, i) – 90)) * ammoSpeed) + gameHeight, gameHeight)
Shapes.Move(Array.GetValue(ammo, i), x, y)
Array.SetValue(ammoAge, i, Array.GetValue(ammoAge, i) + 1)
EndFor
EndSub

‘ Check for collisions between onscreen items
Sub CollisionCheck
‘ Calculate player bounding box.
px1 = Shapes.GetLeft(player) – ( (Math.Abs(playerWidth * Math.Cos(Math.GetRadians(playerAngle)) + playerHeight * Math.Sin(Math.GetRadians(playerAngle))) – playerWidth) / 2)
py1 = Shapes.GetTop(player) – ( (Math.Abs(playerWidth * Math.Sin(Math.GetRadians(playerAngle)) + playerHeight * Math.Cos(Math.GetRadians(playerAngle))) – playerHeight) / 2)
px2 = px1 + Math.Abs(playerWidth * Math.Cos(Math.GetRadians(playerAngle)) + playerHeight * Math.Sin(Math.GetRadians(playerAngle)))
py2 = py1 + Math.Abs(playerWidth * Math.Sin(Math.GetRadians(playerAngle)) + playerHeight * Math.Cos(Math.GetRadians(playerAngle)))

‘ Re-order co-oridinates if they are the wrong way arround
If(px1 > px2) Then
tmp = px1
px1 = px2
px2 = tmp
EndIf
If(py1 > py2) Then
tmp = py1
py1 = py2
py2 = tmp
EndIf

‘ Check if each rock has hit something
For i = 1 To rockCount
ax1 = Shapes.Getleft(Array.GetValue(rock, i))
ay1 = Shapes.GetTop(Array.GetValue(rock, i))
ax2 = ax1 + Array.GetValue(rockSize, i)
ay2 = ay1 + Array.GetValue(rockSize, i)

‘ Player collison
If(playerSafe < 1) Then
If ( (ax1 < px1 And ax2 > px1) Or (ax1 < px2 And ax2 > px2) ) Then
If ( (ay1 < py1 And ay2 > py1) Or (ay1 < py2 And ay2 > py2) ) Then
EndGame()
EndIf
EndIf
EndIf

‘ Ammo collison
For j = 1 to ammoCount
bx1 = Shapes.Getleft(Array.GetValue(ammo, j))
by1 = Shapes.GetTop(Array.GetValue(ammo, j))
bx2 = bx1 + ammoSize
by2 = by1 + ammoSize

If ( (ax1 < bx1 And ax2 > bx1) Or (ax1 < bx2 And ax2 > bx2) ) Then
If ( (ay1 < by1 And ay2 > by1) Or (ay1 < by2 And ay2 > by2) ) Then
nextRemove = i
RemoveRock()
nextRemove = j
RemoveAmmo()
EndIf
EndIf
EndFor

EndFor

‘ Decrease the time player is safe
If (playerSafe > 0) Then
playerSafe = playerSafe – 1
EndIf
EndSub

‘ Add a new rock to the world
Sub AddRock
‘ Check if the next rock size/position has been specified
If (nextSize <> 0) Then
size = rockMin* nextSize
x = Shapes.GetLeft(nextPosition)
y = Shapes.GetTop(nextPosition)
nextSize = 0
Else
‘ Choose a random size and position
size = rockMin * Math.GetRandomNumber(rockTypes)
x = Math.GetRandomNumber(gameWidth – size)
y = Math.GetRandomNumber(gameHeight – size)
EndIf

‘ Draw the rock
GraphicsWindow.PenColor = rockColor
If size = 60 Then
Array.SetValue(rock, rockCount + 1, Shapes.AddImage(bigRock))
ElseIf size = 40 Then
Array.SetValue(rock, rockCount + 1, Shapes.AddImage(medRock))
Else
Array.SetValue(rock, rockCount + 1, Shapes.AddImage(smlRock))
EndIf
rockCount = rockCount + 1

Shapes.Move(Array.GetValue(rock, rockCount), x, y)
Array.SetValue(rockAngle, rockCount, Math.GetRandomNumber(360))
Array.SetValue(rockSize, rockCount, size)
EndSub

‘ Remove a rock from the world and update score
Sub RemoveRock
removeSize = Array.GetValue(rockSize, nextRemove) / rockMin
‘ If not a mini rock
If (removeSize > 1) Then
‘ … add new rocks until we have made up for it being broken apart…
While(removeSize > 0)
nextSize = Math.GetRandomNumber(removeSize – 1)
nextPosition = Array.GetValue(rock, nextRemove)
removeSize = removeSize – nextSize
AddRock()
EndWhile
‘ And give a point for a ‘hit’
score = score + 1
Else
‘ We’ve destroyed it – give some extra points and
score = score + 5
EndIf

‘ Show updated score
GraphicsWindow.Title = gameTitle + (score * pointsMultiply)

‘ Remove all references from the arrays
Shapes.Remove(Array.GetValue(rock, nextRemove))
For i = nextRemove To rockCount – 1
Array.SetValue(rock, i, Array.GetValue(rock, i+1))
Array.SetValue(rockAngle, i, Array.GetValue(rockAngle, i+1))
Array.SetValue(rockSize, i, Array.GetValue(rockSize, i+1))
EndFor
Array.RemoveValue(rock, rockCount)
Array.RemoveValue(rockAngle, rockCount)
Array.RemoveValue(rockSize, rockCount)
rockCount = rockCount – 1
EndSub

‘ Check if the player has completed the level, if so, level up
Sub LevelCheck
If(rockCount < 1) Then
nextSize = 0
For i = 1 To initRocks
AddRock()
EndFor
initRocks = initRocks + 1

‘ Give players some time to move out of the way
playerSafe = safeTime
EndIf
EndSub

‘ Add ammo to game
Sub Fire
‘ Remove additional ammo
While(ammoCount > (ammoMax – 1))
nextRemove = 1
RemoveAmmo()
EndWhile

‘ Add the ammo
GraphicsWindow.PenColor = ammoColor
ammoCount = ammoCount + 1
Array.SetValue(ammo, ammoCount, Shapes.AddEllipse(ammoSize, ammoSize))
Shapes.Move(Array.GetValue(ammo, ammoCount), (px1 + px2 – ammoSize) / 2, (py1 + py2 – ammoSize) / 2)
Array.SetValue(ammoAngle, ammoCount, playerAngle)
EndSub

‘ Check ammo age
Sub AgeAmmo
While (Array.GetValue(ammoAge, 1) > ammoLife)
nextRemove = 1
RemoveAmmo()
EndWhile
EndSub

‘ Remove top Ammo
Sub RemoveAmmo
Shapes.Remove(Array.GetValue(ammo, nextRemove))
For i = nextRemove To ammoCount – 1
Array.SetValue(ammo, i, Array.GetValue(ammo, i+1))
Array.SetValue(ammoAngle, i, Array.GetValue(ammoAngle, i+1))
Array.SetValue(ammoAge, i, Array.GetValue(ammoAge, i+1))
EndFor
Array.RemoveValue(ammo, ammoCount)
Array.RemoveValue(ammoAngle, ammoCount)
Array.RemoveValue(ammoAge, ammoCount)
ammoCount = ammoCount – 1
EndSub

‘ Display simple end game message box
Sub EndGame
play = 0
Shapes.Remove(player)
GraphicsWindow.ShowMessage(«You scored » + (score * pointsMultiply) + » points. Thanks for Playing.», «Game Over!»)
EndSub

Programación sencilla para niños y jóvenes – 4


a1

http://portal.educ.ar/debates/educacionytic/inclusion-digital/ensenar-a-programar-a-los-nino.php  El portal educativo del estado argentino

Programas para aprender programación en la edad escolar hay muchos. La mayoría están en inglés, así que no los tendremos en cuenta, al menos por el momento. En español hemos localizado tres: MswLogo, Promorph (KLP) y Scratch. Hemos decidido trabajar con éste último porque resulta ser el más fácil, el más divertido y –algo muy importante en estos tiempos– el de interfaz más atractiva.

Scratch no es un programa que va a enseñarnos a programar con lenguajes de programación. Va a enseñarnos a comprender qué significa programar. A reflexionar, como lo haríamos con un lenguaje de programación, a actuar de esa manera, a entender el concepto: doy una orden, una acción se desencadenará. Causa y efecto.

Programación sencilla para niños y jóvenes – 3


a1

La enseñanza de la programación a los más pequeños es un tema que da lugar a debates. Algunos dicen que es algo para adultos, otros insisten en la dificultad o especificidad de la tarea. Pareciera que solo los programadores mayores, los que se dedican a la informática, programan, pero no es así. La programación sirve para muchas cosas, no solo para programar. Y de eso vamos hablar: de sus virtudes en el aprendizaje cotidiano, de cómo programar, de cómo empezar, etcétera.

Razones para aprender a programar desde pequeño.
La primera razón podría ser lisa y llanamente porque el tema empieza a resonar en los oídos de docentes, padres y otros. Los chicos lo piden; los nativos digitales lo llevan a cabo solitos, solitos. Por lo tanto, nuestra tarea será la de acompañarlos y organizar su espontáneo autodidactismo. La segunda razón podría ser porque programar sirve para algo más que aprender XML. Y de esta segunda razón vamos a ocuparnos particularmente.

http://portal.educ.ar/debates/educacionytic/inclusion-digital/ensenar-a-programar-a-los-nino.php

Lenguaje Python


 a1

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible.

Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.

Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License,[1] que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.

http://es.wikipedia.org/wiki/Python

¡Quiero Aprender Python!


bebe

http://python.org.ar/pyar/AprendiendoPython

Ahora, ¿a dónde podrías recurrir para obtener información que te inicie en la programación pythonesca? Bueno, estos son algunos libros que se propusieron en la ListaDeCorreo. De todos modos, no dudes en preguntar.

  • How to Think Like a Computer Scientist (Python 2.x) es de conceptos generales de programación usando Python. Hay una versión en español llamada Aprenda a pensar como un programador (con Python).
  • Byte of Python es un libro para iniciarse en Python, el autor proclama que es para quien lo unico que sabe de computación es grabar un archivo. Actualmente cuenta con ediciones para Python 2.x y 3.
  • Dive into Python, está en varios idiomas, se viene escribiendo/actualizando hace bastante, y viene con Ubuntu. Inmersión en Python es la versión en castellano y ya han sido traducidos algunos capitulos. También tiene versiones para Python 2.x y 3.
  • Instant Python es un curso de entrenamiento corto e intensivo. (Versión en español).
  • A Primer on Python for Life Science Researchers, versión en forma de publicación científica del trabajo anterior. La principal diferencia es que está versión ha sido revisada por el sistema de peer-review que se usa para las publicaciones científicas.
  • Python Ya Python desde cero. Tutorial web interactivo. Permite escribir y ejecutar nuestros programas directamente en la página, sin necesidad de tener Python instalado.
  • Para quien ya tiene alguna idea, pero necesita buscar algo puntual, puede probar

Programación sencilla para niños y jóvenes – 2


a1

 http://msdn.microsoft.com/en-us/beginner/ff384126.aspx

Introducción a Small Basic
Microsoft Small Basic pone la diversión en la programación de computadoras. Con un entorno favorable al desarrollo que es muy fácil de dominar, que facilita a los estudiantes de todas las edades en el mundo de la programación.

Programación sencilla para niños y jóvenes – 1


a1

 http://scratch.mit.edu/

Scratch es un lenguaje de programación que le facilita crear sus propias historias interactivas, animaciones, juegos, música y arte; además, le permite compartir con otros sus creaciones en la web.A medida que los jóvenes crean y comparten proyectos realizados en Scratch, aprenden importantes ideas matemáticas y computacionales; al mismo tiempo que aprenden a pensar creativamente, a razonar sistemáticamente y a trabajar colaborativamente.    
Educadores – Información para educadores que usan Scratch Noticias – Publicaciones sobre Scratch en los medios

Investigaciones – Trabajos y presentaciones sobre con Scratch

Done – Apoye el proyecto Scratch

A Scratch lo desarrolla el Lifelong Kindergarten Group en el Laboratorio de Medios de MIT, con apoyo finanaciero de la National Science Foundation, Microsoft, la Fundación Intel, Nokia, lomega y el consorcio de investigación del Laboratorio de Medios de MIT.Revise la página de Créditos y en ella encontrara el listado de las personas que trabajaron para crear Scratch.

Para encontrar libros, camisetas y otros productos relacionados con Scratch, visite la Tienda de Scratch

Para informarse sobre eventos relacionados con Scratch, visite los sitios Conferencias Scratch y Día Scratch

Crear una base de datos de Access para compartir en Web


a1

 

 Puede usar Access 2010 y Servicios de Access, un nuevo componente de SharePoint, para crear aplicaciones de bases de datos web. Esto es útil para lo siguiente:

  • Proteger y administrar el acceso a los datos
  • Compartir datos dentro de una organización o a través de Internet

Nota Se requiere una cuenta de usuario para usar una base de datos web. El acceso anónimo no se admite.

  • Crear aplicaciones de base de datos que no requieran el uso de Access

 

Cuando se publica una base de datos web, Servicios de Access crea un sitio de SharePoint que la contiene. Todos los datos y los objetos de la base de datos se mueven a listas de SharePoint ubicadas en dicho sitio.

http://office.microsoft.com/es-es/access-help/crear-una-base-de-datos-de-access-para-compartir-en-web-HA010356866.aspx?CTT=5&origin=HA010341617

 

 

Microsoft BI Solution Builder


a1

 Aprenda cómo las herramientas familiares como Excel encajan en la estrategia de BI de la empresa

Business Intelligence y la visión puede hacer la diferencia entre una empresa sobrevivir y prosperar. Microsoft pretende hacer inteligencia de negocios (BI) más accesible a todo el mundo a través de una organización, en parte, al proporcionar capacidades de BI en herramientas familiares como Excel para capacitar a más usuarios a crear y consumir ricas soluciones de BI como parte de su trabajo diario.
Si usted está interesado en cómo las capacidades de BI de Excel podrían caber dentro amplia solución de BI de la empresa, revise el Microsoft BI Solution Builder, una herramienta de configuración en línea que le ayuda a ver cómo las capacidades de los productos que usted posee actualmente podría contribuir a una renta básica de  completa solución. Más información en el blog de Microsoft Business Intelligence.

http://blogs.office.com/b/microsoft-excel/archive/2013/02/11/microsoft-bi-solution-builder-excel.aspx

Cómo desarrollar aplicaciones Web en Windows Phone 7 con WebMatrix


a1 

 Windows Phone 7 ha llegado con un nuevo navegador Web de gran alcance para ayudarle a competir en el mercado de teléfonos inteligentes. Para los desarrolladores que les gusta codificar a mano su HTML, CSS, JavaScript y ASP.NET para crear páginas Web para móviles livianos, WebMatrix es la respuesta. En esta sesión usted aprenderá cómo utilizar WebMatix, la nueva sintaxis de Razor, IIS Express y SQL Server Compact 4.0 para crear aplicaciones Web móviles. Al mismo tiempo, usted aprenderá importantes prácticas en Web Móvil de W3C, y cómo implementar estándares como XHTML Basic, ECMAScript Mobile Profile y CSS Mobile Profile, con lo que podrá apuntar a cualquier navegador de su teléfono inteligente con su contenido de la Web.

https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-AR&EventID=1032513011&CountryCode=AR

 

Tools for developments (gratis)


a1

http://www.microsoft.com/web/platform/tools-developer.aspx

Visual Studio ofrece un entorno de desarrollo global que ayuda a los programadores web a crear servicios y aplicaciones web basadas en estándares. Mejora la productividad al permitir a los usuarios desarrollar, probar e implementar soluciones web rápidamente. Obtenga más información en el sitio web de Visual Studio.

Visual Studio ofrece una versión gratuita pensada para los programadores web. Con Visual Web Developer Express, obtiene el entorno de desarrollo web con toda la funcionalidad para trabajar con los estándares web, ASP.NET y Javascript. Y lo mejor de todo, es gratis como parte de Microsoft Web Platform. Descárguelo ahora.

http://www.microsoft.com/web/platform/tools-developer.aspx

MS Small Basic: Operaciones de entrada y salida


a1

Con la ayuda del objeto File (archivo) en Small Basic, puede acceder a información de un archivo almacenado en el equipo. Además puede leer y escribir información desde y hacia el archivo.

Operaciones del objeto File

Copy File (copiar archivo)

Puede usar la operación CopyFile para copiar el archivo especificado a un destino.

GetFiles (obtener archivos)

Con la operación GetFiles, puede obtener una lista de todos los archivos presentes en el directorio especificado.

Escribamos un programa para entender mejor estas operaciones

  1. TextWindow.Title = «El objecto File»
  2. rutaarchivoorigen = «C:\temp\SubdirectorioTemp\mio.txt»
  3. rutaarchivodestino = «C:\temp\SubdirectorioTemp\Mover»
  4. rutadirectorio = «C:\temp\SubdirectorioTemp»
  5. TextWindow.WriteLine(«Copiar archivo de operación: » + File.CopyFile(rutaarchivoorigen, rutaarchivodestino))
  6. TextWindow.WriteLine(«Archivos en el directorio: » + File.GetFiles(rutadirectorio))

MS Small Basic: eventos e interactividad (código)


a1 

 

 

Eventos y controles para agregar interactividad a sus programas de Small Basic.
 

Puede crear un programa interactivo en Small Basic definiendo eventos que desencadenan una acción en respuesta a entradas del usuario. 

  

Los eventos del teclado producen una acción cuando se presiona una determinada tecla. Existen dos eventos de teclado que forman parte del objeto GraphicsWindow: KeyDown (tecla hacia abajo) y KeyUp (tecla hacia arriba). 
 

Al igual que los eventos de teclado, puede crear programas en Small Basic que trabajen con eventos basados en clics del mouse. Los eventos del mouse generan acciones en su programa con un clic del mouse.  
 

MouseDown desencadena un evento cuando se hace clic con el botón del mouse. 
  

MouseUp desencadena un evento cuando se suelta el botón del mouse. 
 

MouseMove desencadena un evento cuando se mueve el mouse en la ventana de gráficos.
 
 

  1. GraphicsWindow.Hide()
  2. ancho = 620
  3. alto = 450
  4. GraphicsWindow.CanResize = «False»
  5. GraphicsWindow.Width = ancho
  6. GraphicsWindow.Height = alto
  7. GraphicsWindow.Top = (Desktop.Height-alto) / 2
  8. GraphicsWindow.Left = (Desktop.Width-ancho) / 2
  9. GraphicsWindow.Show()
  10. GraphicsWindow.Title = «Eventos e interactividad»
  11. InterfazUsuario()
  12. Controls.ButtonClicked = AcciónMouse
  13. Sub InterfazUsuario 
  14.   GraphicsWindow.DrawRectangle(10, 10, 600, 320)
  15.   GraphicsWindow.DrawRectangle(10, 340, 200, 100)
  16.   GraphicsWindow.DrawRectangle(10, 340, 600, 100)
  17.   GraphicsWindow.DrawRectangle(370, 340, 150, 100)  
  18.   Triángulo = Controls.AddButton(«Triángulo», 40, 345)
  19.   Controls.SetSize(Triángulo, 120, 30)
  20.   Rectángulo = Controls.AddButton(«Rectángulo»,40,375)
  21.   Controls.SetSize(Rectángulo, 120, 30)
  22.   Círculo = Controls.AddButton(«Círculo», 40, 405)
  23.   Controls.SetSize(Círculo, 120, 30)
  24.   Rotar = Controls.AddButton(«Rotar», 230, 360)
  25.   Controls.SetSize(Rotar, 60, 60)
  26.   Zoom = Controls.AddButton(«Zoom», 290, 360)
  27.   Controls.SetSize(Zoom, 60, 60)
  28.   FreeHand = Controls.AddButton(«Dibujar», 390, 360)
  29.   Controls.SetSize(FreeHand, 60, 60)  
  30.   Borrar = Controls.AddButton(«Borrar», 450, 360)
  31.   Controls.SetSize(Borrar, 60, 60)
  32.   Salir = Controls.AddButton(«Salir», 530, 360)
  33.   Controls.SetSize(Salir, 60, 60)    
  34. EndSub
  35. Sub AcciónMouse
  36.   x = GraphicsWindow.MouseX
  37.   y = GraphicsWindow.MouseY  
  38.   GraphicsWindow.PenWidth = 1 
  39.   If x > 40 And x < 160 Then    
  40.     GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor() 
  41.     If y > 345 And y < 375 Then       
  42.       dibujar = 0
  43.       j = 0
  44.       z = 1
  45.       tri = Shapes.AddTriangle(20, 20, 100, 100, 150, 20)
  46.       Shapes.Move(tri, 80, 100)
  47.     EndIf  
  48.     If y > 375 And y < 405 Then
  49.       dibujar = 0     
  50.       j = 0 
  51.       z = 2  
  52.       rect = Shapes.AddRectangle(100, 100)
  53.       Shapes.Move(rect, 250, 150)
  54.     EndIf    
  55.     If y > 405 And y < 435 Then
  56.       dibujar = 0
  57.       j = 0      
  58.       z = 3      
  59.       circ = Shapes.AddEllipse(100, 100)
  60.       Shapes.Move(circ, 400, 150)
  61.     EndIf      
  62.   EndIf    
  63.   If y > 360 And y < 420 Then       
  64.     If x > 230 And x < 290 Then          
  65.       dibujar = 0   
  66.       If z = 1 Then        
  67.         Shapes.Rotate(tri, 30 + m)
  68.       Else
  69.         If z = 2 Then     
  70.           Shapes.Rotate(rect,30 + m)  
  71.         Else
  72.           If z = 3 Then     
  73.             Shapes.Rotate(circ, 30 + m)    
  74.           Endif           
  75.         Endif 
  76.       Endif
  77.       m = m + 30             
  78.     EndIf      
  79.     If x > 290 And x < 390 Then
  80.       dibujar = 0         
  81.       i = 0.1 + j
  82.       If i < 0.4 Then  
  83.         If z = 1 Then        
  84.           Shapes.Zoom(tri, 1 + i, 1 + i)
  85.         Else
  86.           If z = 2 Then     
  87.             Shapes.Zoom(rect, 1 + i, 1 + i)
  88.           Else
  89.             If z = 3 Then     
  90.               Shapes.Zoom(circ, 1 + i, 1 + i)      
  91.             EndIf    
  92.           EndIf 
  93.         EndIf     
  94.         j = j + 0.1
  95.       EndIf
  96.     EndIf         
  97.     If x > 390 And x < 450 Then
  98.       dibujar = 1
  99.       Paint()
  100.     EndIf     
  101.     If x > 450 And x < 510 Then
  102.       dibujar = 0
  103.       j = 0
  104.       GraphicsWindow.Clear()   
  105.       GraphicsWindow.BrushColor = «Blue»
  106.       InterfazUsuario()
  107.       dibujar = 0
  108.     EndIf     
  109.     If x > 530 And x < 590 Then
  110.       dibujar = 0
  111.       Program.End()
  112.     EndIf     
  113.   EndIf     
  114. EndSub
  115. Sub Paint
  116.   If dibujar = 1 Then    
  117.     GraphicsWindow.MouseMove = ArrastrarMouse         
  118.   Else
  119.     If Mouse.IsLeftButtonDown Then    
  120.       AcciónMouse()   
  121.     EndIf
  122.   EndIf    
  123. EndSub
  124.  
  125. Sub ArrastrarMouse
  126.   If dibujar = 1 then 
  127.     x = GraphicsWindow.MouseX
  128.     y = GraphicsWindow.MouseY   
  129.     If x > 10 And x < 600 And y > 10 And y < 320 Then   
  130.       If Mouse.IsLeftButtonDown Then
  131.         GraphicsWindow.DrawLine(OrgX, OrgY, x, y)
  132.       EndIf    
  133.     EndIf 
  134.     OrgX = x
  135.     OrgY = y
  136.   EndIf
  137. EndSub
 
 
 
 

Basic, Visual Basic, Small Basic


a1

Una cadencia de lenguajes. Una tradición continuada.

Visual Basic y Small Basic, dentro de la plataforma .NET con todas sus bibliotecas disponibles.

¿ Abandonará Microsoft al difundido V Basic por el promisorio C# ?. En ese caso ¿ pasará toda la capacidad de programación del Office, VBA a algo como C#A para Office ?

Tarea monumental.

Small Basic aparece después de Visual Basic, y con una función «Graduate» para migrar las pequeñas aplicaciones de Small Basic a Visual.

¿ Esperamos que los chicos terminen el secundario para que aprendan programación con un lenguaje potente ?

O ya empezamos en el secundario con un lenguaje sencillo, para pequeñas aplicaciones (small) que le da los rudimentos de programación y les enseña a pensar desde la programción.

Gente importante de la industria,  ( ver http://www.code.org/) acaba de destacar la importancia de enseñar a programar en los colegios por las ventajas que da al alumno inciarse en esta práctica: cualquiera sea la carrera por la que después elijan: abogados, médicos o biólogos. No solo para los que optarán por desarrollarse en la Tecnología Informática (los menos)

ver   https://empiezoinformatica.wordpress.com/2013/02/05/que-es-el-microsoft-small-basic/

La propuesta está a disposición de la Educación. El software y los completísimos manuales Microsoft, blogs y wikis están en forma totalmente gratuita. Solo un download y ya se empieza, desde aquí:

http://msdn.microsoft.com/es-ar/beginner/gg597501(en-us).aspx

Web tools


a1

Visual Studio ofrece un entorno de desarrollo global que ayuda a los programadores web a crear servicios y aplicaciones web basadas en estándares. Mejore su productividad con Intellisense para todo lo relacionado con los lenguajes de programación del servidor como C# y VB para marcado HTML, hojas de estilos y bibliotecas Javascript. 

Microsoft® Expression® Web 3 le proporciona las herramientas para crear sitios web basados en estándares de alta calidad, compatibilidad integrada con los estándares web actuales, capacidades de diseño CSS sofisticadas y herramientas de diagnóstico visual, incluido SuperPreview. Con SuperPreview, puede depurar sus páginas en múltiples exploradores en el mismo equipo que usa para desarrollo.

http://www.microsoft.com/web/platform/tools.aspx

Miscelánea…


a1

Microsoft Silverlight es una estructura para aplicaciones web que agrega nuevas

funciones multimedia como la reproducción de vídeos, gráficos vectoriales,

animaciones e interactividad, en forma similar a lo que hace Adobe Flash.

Silverlight compite con Adobe Flex, JavaFX, OpenLaszlo y algunas presentaciones

de componentes AJAX. La primera versión de Silverlight fue lanzada en

septiembre de 2007 y actualmente su versión 5.0 se distribuye de forma gratuita.

a3

Microsoft SharePoint, también conocido como Microsoft SharePoint Products

and Technologies, es una plataforma de colaboración empresarial, formada por

productos y elementos de software que incluye, entre una selección cada vez

mayor de componentes, funciones de colaboración, basado en el Explorador web,

módulos de administración de proceso, módulos de búsqueda y una plataforma de

administración de documento [1].

SharePoint puede utilizarse para sitios de web host que acceda a espacios de

trabajo compartidos, almacenes de información y documentos, así como para

alojar aplicaciones definidas como los wikis y blogs. Todos los usuarios pueden

manipular los controles propietarios llamados «web parts» o interactuar con piezas

de contenido, como listas y bibliotecas de documentos.

Microsoft Share Point Designer (SPD), formalmente conocido como Microsoft

Office Share Point Designer, es un editor HTML especializado y una herramienta

para diseño web libre, para crear y modificar sitios y páginas web Microsoft

SharePoint. Es parte de la familia de productos Microsoft SharePoint,[1] pero no fue

incluido en ninguna de las suites de Microsoft Office.

SharePoint Designer y su producto hermano Microsoft Expression Web son

sucesores de Microsoft FrontPage. Mientras que Expression Web sirve como el

sucesor con todas las funciones a FrontPage, SharePoint Designer se centra en el

diseño y la personalización de los sitios web de Microsoft SharePoint.

Microsoft SkyDrive (anteriormente Windows Live SkyDrive y Windows Live

Folders) SkyDrive permite a los usuarios subir archivos de una computadora y

almacenarlos en línea (nube), y acceder a ellos desde un navegador web o su

dispositivo local. El servicio utiliza Microsoft account para controlar el acceso a los

archivos del usuario. Los archivos que se comparten públicamente no requieren

una cuenta de Microsoft account para acceder.

a4

Al crear un sitio Web en Publisher puede generar una publicación Web en forma

de archivo de Publisher (.pub). Cuando publique este sitio Web en el Web,

Publisher convierte el archivo .pub en archivos HTML filtrados (HTML filtrado: Al guardar la página Web, el formato Filtrado quita las etiquetas específicas de Microsoft Office. Si guarda el archivo en HTML filtrado y, a continuación, lo vuelve a abrir en programas Office, el texto y la apariencia general se mantendrán, pero algunas características funcionarán de otra forma.) y después exporta

estos archivos al destino que seleccione.

Para obtener los mejores resultados, debe editar el sitio Web como un archivo

.pub en Publisher. Para realizar cambios en el sitio Web, debe conservar en el

equipo local una versión actual del sitio Web en forma de archivo .pub. Si utiliza un

programa FTP (FTP: protocolo de comunicaciones que permite al usuario transferir archivos entre ubicaciones remotas de una red. Este protocolo permite a los usuarios utilizar comandos FTP, como crear listas de archivos y carpetas, para trabajar con archivos de una ubicación remota.) externo para publicar el sitio Web y necesita guardar el sitio como

archivo .html o .mhtml antes de publicarlo en el Web, también debe guardar una

versión actual como archivo .pub. Si desea realizar cambios en el sitio Web

publicado, edite este archivo .pub original y después publíquelo de nuevo en el

Web para reemplazar el sitio Web publicado con la versión actualizada.

a1

Excel: Cómo crear una lista desplegable múltiple


 a1

En muchas ocasiones nos encontramos trabajando con múltiples listas desplegables en una misma hoja de cálculo que ocupan un espacio que podríamos aprovechar para otros fines; en nuestra experiencia este suele ser un molesto inconveniente cuando se trata de diseñar paneles de control, balanced scorecards o dashboards desde Excel con controles de interactividad que permitan explorar múltiples fuentes de datos, instrumentos en donde por premisas de diseño debemos aprovechar al máximo cada espacio disponible, dándole siempre el mejor uso posible.

Afortunadamente de una forma muy sencilla podemos forzar que una lista desplegable cambie automáticamente a partir de nuestra selección en una combinación de botones de opción (también disponibles en los Controles de Formulario), los cuales ocupan considerablemente menos espacio. En este tutorial detallaremos como hacerlo partiendo de tres sencillos pasos a seguir:

  1. Preparar nuestra hoja de cálculo.
  2. Insertar y configurar nuestros botones de opción.
  3. Insertar y configura nuestra lista desplegable múltiple.

El resultado final que obtendrán al aplicar nuestras instrucciones deberá ser muy similar al de la imagen anexa:

a2

 http://www.excellentias.com/2010/11/tutorial-excel-como-crear-una-lista-desplegable-multiple/