domingo, 27 de marzo de 2016

Introducción a la programación

Tras completar el juego de  "Hora del código (promovido por Code.org que tiene como objetivo la difusión de los conceptos informáticos, os dejo un vídeo que os ayudará a entender esta asociación) proseguiremos con  que aunque sea difícil de creer, nos proporcionará información acerca de la programación, transmitiendonos poco a poco una serie de conceptos relacionados con este ámbito, que nos resultan hasta divertidos gracias a desarrollarse en unos escenarios de Ice Age, Plantas vs Aliens o Angry Birds. Cada nivel se podría definir como un pequeño y sencillo laberinto, donde depende del personaje, tienes que alcanzar un simpático cerdo verde, una planta o una bellota.










Para entender esto, ( que a simple vista a más de uno le parecerá complicado) es recomendable practicar con este juego donde al principio puede parecer complejo, pero, tras una serie de intentos, observamos que ,simplemente, es cogerle el truco a un patrón y ,finalmente, nuestro pato eliminará a todos sus objetivos al primer intento.
Vale, ahora aumentemos la dificultad, pasamos de nivel (aquí).  Ahora es más complicado, ¿verdad? Bueno, si necesitáis ayuda aquí teneis la solución.




Este último juego, nos permite comprender la programación a través de JavaScript (muy utilizada hoy en día). Se podría considerar como una de las gramáticas dentro del lenguaje informático de la programación. 




Ahora, como siempre, nos ayudará a entenderlo si analizamos el pasado de la programación. Así que. como no, nos era imposible no hablar del BASIC, un lenguaje de programación que se popularizó en la década del 70 aproximadamente, fue diseñado en 1964 por John George Kemeny y Thomas Eugene Kurtz en el Dartmouth College fue creado simplificar la programación en ordenadores a estudiantes que no tuvieran grandes conocimientos en ciencias. Por aquel entonces, casi todos los ordenadores precisaban codificar software hecho específicamente para ellos, con lo cual solo podían ser usados por personas con amplios conocimientos en informática o derivados. Básicamente, se podría decir que BASIC originalmente fue creado como un instrumento de enseñanza.


Aún que fue muy novedoso y nos sirvió para simplificar los lenguajes anteriores y que ayudó a difundir su uso, presentaba una gran desventaja en relación con otros lenguajes es que necesitaba apoyarse en una aplicación externa que permitía poder acceder de manera inmediata a cualquier archivo.

Aunque muchos creais que está en total de uso, aún se puede 'juguetear' con él online (os dejo aquí el link). Yo he pegado un código de un juego (creado por mi profesor) y ahora creamos nuestro propio circuito usando las teclas A,S,D y W. Despues de haber hecho el circuíto, hay que diferenciar a los jugadores asignandoles un nombre (siendo uno el azul y el otro amarillo). Despues de hacer esto, el juego asignará los controles para cada jugador serán A,S,DW y J,K,I,L respectivamente). Y, como en cualquier otro juego, el primero que llegue a la meta, es el ganador.





Este es el código del juego:
100 REM ** Preparación del terreno de juego **
110 CLS
120 LET X = 5
130 LET Y = 0
140 PLOT X,Y,"pink"
150 PRINT "Marca los li­mites del juego con color rosa utilizando los controles w, a, s, d. Pulsa espacio cuando hayas terminado para competir."
160 LET A = GETCHAR()
170 IF A="w" THEN LET Y=Y+1 ELSE IF A="s" THEN LET Y=Y-1 ELSE IF A="a" then LET x=x-1 else if A="d" then LET x=x+1 else if A=" " then goto 500 else goto 160
180 PLOT X,Y, "pink"
190 GOTO 160
500 REM ** Comienzo de la carrera **
510 INPUT "Nombre del jugador amarillo:"; C
520 INPUT "Nombre del jugador azul:"; D
530 LET X=0
540 LET Y=0
550 LET M=1
560 LET N=0
570 CLT
580 PRINT "Controles de "; C; " (amarillo): w, a, s, d"
590 PRINT "Controles de "; D; " (azul): i, j, k, l"
600 LET A = GETCHAR()
610 IF A="w" THEN LET Y=Y+1 ELSE IF A="s" THEN LET Y=Y-1 ELSE IF A="a" then LET x=x-1 else if A="d" then LET x=x+1 else IF A="i" THEN LET N=N+1 ELSE IF A="k" THEN LET N=N-1 ELSE IF A="j" then LET M=M-1 else if A="l" then LET M=m+1 else goto 600
620 IF COLOR(X,Y)="rgb(255, 192, 203)" then GOSUB 700
630 IF COLOR(M,N)="rgb(255, 192, 203)" then GOSUB 800
640 IF (M<0 AND N>10) or (N<0 AND M>10) or M>49 or  N>49 then GOTO 1000
650 IF (X<0 AND Y>10) or (Y<0 AND x>10)or X>49 or y>49 then GOTO 900
660 IF (N<0 AND M<10) or (N<10 AND M<0) then GOSUB 800
670 IF (X<0 AND Y<10) or (Y<0 AND X<10) THEN GOSUB 700
680 PLOT X,Y, "yellow"
690 PLOT M,N, "blue"
695 GOTO 600
700 REM ** Choca amarillo **
710 LET X = 0
715 LET Y = 0
720 PRINT C; " has chocado, vuelves a empezar"
730 FOR I=0 TO 50
740 FOR J = 0 TO 50
750 IF COLOR(I,J)="yellow" THEN PLOT I,J, "grey"
760 NEXT J
770 NEXT I
780 RETURN
800 REM ** Choca azul **
810 LET M = 0
815 LET N = 1
820 PRINT D; " has chocado, vuelves a empezar"
830 FOR I=0 TO 50
840 FOR J = 0 TO 50
850 IF COLOR(I,J)="blue" THEN PLOT I,J, "grey"
860 NEXT J
870 NEXT I
880 RETURN

900 REM ** Gana amarillo **
905 CLT
910 PRINT "***********************************"
920 PRINT "          "; C; " GANA!!!!!!! "
930 PRINT "***********************************"
940 END
1000 REM ** Gana azul **
1005 CLT
1010 PRINT "***********************************"
1020 PRINT "          "; D; " GANA!!!!!!!"
1030 PRINT "***********************************"




FUENTES: http://www.aprendeaprogramar.com/course/view.php?id=6

Hoja de cálculo, programación y videojuegos (III)

Enlace a "Adivina la serie" aquí