Curso de Locomotive Basic

Programando el Amstrad en BASIC, C, etc.
Avatar de Usuario
nacho
Keeper of The Forum
Keeper of The Forum
Mensajes: 572
Registrado: Jue 06 Dic , 2007 2:58 pm

Curso de Locomotive Basic

Mensajepor nacho » Sab 08 Dic , 2007 12:25 am

En primer lugar, gracias por la bienvenida. :-)

Eso que comentabais en el hilo "Emulador para Linux" de tener los conocimientos un poco olvidados me recuerda...

La sección de tutoriales está un poco vacía. ¿Apetece un curso de Locomotive Basic para los recién llegados a la plataforma o los que casi no la recuerden?

Aprovechando el puente, me ha dado la locura y lo he empezado :wink:

Podeis echarle un primer vistazo en

http://www.nachocabanes.com/amstrad/curso

Supongo que no tendrá un gran seguimiento, porque es un tema muy minoritario, pero aun así... ¿quereis que ponga un enlace a este foro para quien quiera preguntar dudas, por si eso atrae caras nuevas?

Avatar de Usuario
MiguelSky
Lord of Short Time
Lord of Short Time
Mensajes: 6969
Registrado: Sab 08 Oct , 2005 2:02 am
Contactar:

Mensajepor MiguelSky » Sab 08 Dic , 2007 1:54 am

Ostras !!! Pero si eres Nacho Cabanes :) He sido asiduo visitante de la web que tenias en Lycos a oleadas. Ahora ya hace mucho de la última vez (estuve buscando algo de Java, creo recordar), pero al ver el enlace la he recordado enseguida.

Enhorabuena por la web !! Espero que este tuto de Basic mantenga el nivel de los otros :D

CPC User
Forero habitual
Forero habitual
Mensajes: 113
Registrado: Lun 28 May , 2007 4:32 pm
Ubicación: Madrid

Mensajepor CPC User » Sab 08 Dic , 2007 2:02 am

Buenas Nacho.

Pues ya tienes un seguidor del curso, aparte de que es el "mejor" basic de las maquinas de 8 bits, lo seguire por nostalgia, yo el primer curso de informatica lo hice en un 6128 en una academia, todavia conservo el cuaderno con los listados basic de los ejercicios que nos proponian.

Salu2

Avatar de Usuario
Artaburu
Trasteador
Trasteador
Mensajes: 8419
Registrado: Vie 07 Oct , 2005 6:18 pm
Ubicación: En tu pantalla

Mensajepor Artaburu » Sab 08 Dic , 2007 9:04 am

¡Genial! A mí me parece estupendo. He leído lo que tienes hasta ahora y es ameno, dale caña :D
Salu2,
Arta

Avatar de Usuario
nacho
Keeper of The Forum
Keeper of The Forum
Mensajes: 572
Registrado: Jue 06 Dic , 2007 2:58 pm

Mensajepor nacho » Sab 08 Dic , 2007 11:18 am

Sip, soy yo :wink:

Y yo también recibí mi primer curso de Basic con un CPC (un 464) :D

Visto que hay interés, le acabo de dar otro empujoncillo para hablar de variables, comentarios y de como guardar el trabajo en el PC para no perder el tiempo ;-)

Mañana hablo de IF y FOR y con eso liquidamos el Basic aplicable a casi cualquier ordenador, para empezar a partir de entonces a trabajar con cosas más exclusivas de los CPC.

Avatar de Usuario
nacho
Keeper of The Forum
Keeper of The Forum
Mensajes: 572
Registrado: Jue 06 Dic , 2007 2:58 pm

Mensajepor nacho » Dom 09 Dic , 2007 1:11 pm

Hecho. Apartado 1 completo.

Es un poco largo (casi 9 páginas impresas), pero a cambio contiene casi todo lo necesario para hacer cosas sencillitas en Basic, y que en su mayor parte son aplicables a cualquier otro microordenador clásico.

Se acaba el puente y volveré a tener menos tiempo libre, pero aun así me gustaría sacar al menos un apartado nuevo por semana. Quizá incluso el miércoles pueda preparar el apartado 2... en cualquier caso, avisaré aquí cuando esté listo.

Que la vuelta al trabajo os sea leve... ;-)

Avatar de Usuario
litos.net
Loading, Please Wait...
Loading, Please Wait...
Mensajes: 5959
Registrado: Mié 05 Oct , 2005 7:57 pm
Ubicación: Madrid
Contactar:

Mensajepor litos.net » Dom 09 Dic , 2007 8:44 pm

Hola Nacho, bienvenido. :D
Aquí tienes otro seguidor de tu curso. Me gustaría hacer algún tipo de enlace integrado en la web. ¿ Como te vendría bien ?
Si es CPC es en Color

Avatar de Usuario
nacho
Keeper of The Forum
Keeper of The Forum
Mensajes: 572
Registrado: Jue 06 Dic , 2007 2:58 pm

Mensajepor nacho » Mar 11 Dic , 2007 1:50 am

Bienvenido a esta locura ;-)

En cuanto al enlace, lo que tú veas. Supongo que pegaría en tutoriales, pero no puedo opinar mucho más allá. No sé si en "primeros pasos" o en "programación / basic".

Si quieres, pon un enlace a mi Web, o si lo prefieres contenido alojado directamente en vuestro servidor, lo puedo convertir a PDF cada cierto tiempo y enviártelo.

Por cierto, ya está disponible una primera entrega del tema 2, todavía incompleta, pero ya con una buena cantidad de información:

http://www.nachocabanes.com/amstrad/curso/cpc02.php

Avatar de Usuario
nacho
Keeper of The Forum
Keeper of The Forum
Mensajes: 572
Registrado: Jue 06 Dic , 2007 2:58 pm

Mensajepor nacho » Jue 13 Dic , 2007 12:19 am

Tema 2 completado. Para el domingo (quizá antes, pero lo tengo difícil) debería estar listo el tema 3.

Avatar de Usuario
nacho
Keeper of The Forum
Keeper of The Forum
Mensajes: 572
Registrado: Jue 06 Dic , 2007 2:58 pm

Mensajepor nacho » Vie 14 Dic , 2007 12:08 am

Me he quedado sin merendar en el trabajo para dar un empujoncillo al curso. A cambio, ya está publicada la mitad del tema 3.

Como podreis ver por las imágenes, yo sí he hecho mis deberes y tengo soluciones para los ejercicios propuestos ;-)
. Pero no pienso publicarlas todavía... :twisted:

Si alguien se anima a publicar alguna solución, me comprometo a revisarla y publicarla entonces. :P

Avatar de Usuario
DaDMaN
Keeper of The Forum
Keeper of The Forum
Mensajes: 796
Registrado: Jue 16 Mar , 2006 10:51 pm

Mensajepor DaDMaN » Vie 14 Dic , 2007 4:35 am

Para la solución del capítulo 2, me he programado esto:

Código: Seleccionar todo

10 ON BREAK GOSUB 360
20 MODE 1:BORDER 0:INK 0,0:INK 1,2:INK 2,20
30 'DIBUJADO MARCO Y OBSTACULOS
40 PEN 1
50 FOR x%=1 TO 40
60 LOCATE x%,1:PRINT CHR$(200)
70 LOCATE x%,25:PRINT CHR$(200);
80 NEXT
90 FOR y%=2 TO 24
100 LOCATE 1,y%:PRINT CHR$(200)
110 LOCATE 40,y%:PRINT CHR$(200)
120 NEXT
130 PEN 2
140 FOR n%=1 TO 6
150 IF n%=1 THEN p%=127
160 IF n%=2 THEN p%=202
170 IF n%=3 THEN p%=203
180 IF n%=4 THEN p%=206
190 IF n%=5 THEN p%=207
200 IF n%=6 THEN p%=143
210 x%=INT(RND(TIME)*38)+2
220 y%=INT(RND(TIME)*23)+2
230 LOCATE x%,y%:PRINT CHR$(p%)
240 NEXT
250 x%=20:y%=12:LOCATE x%,y%
260 IF ASC(COPYCHR$(#0))<>32 THEN x%=x%+1:y%=y%+1:LOCATE x%,y%:GOTO 260
270 xt%=x%:yt%=y%:p%=248:GOSUB 490
280 'BUCLE PRINCIPAL
290 IF INKEY(1)=0 THEN x%=x%+1:p%=251:GOSUB 370:GOSUB 490
300 IF INKEY(8)=0 THEN x%=x%-1:p%=250:GOSUB 370:GOSUB 490
310 IF INKEY(0)=0 THEN y%=y%-1:p%=249:GOSUB 370:GOSUB 490
320 IF INKEY(2)=0 THEN y%=y%+1:p%=249:GOSUB 370:GOSUB 490
330 IF p%<>248 THEN p%=248:FRAME:GOSUB 490
340 GOTO 290
350 p%=238:GOSUB 490:CLEAR INPUT:FOR n%=0 TO 2000:NEXT:CLS:PEN 1:GOTO 50
360 CLS:PEN 1:INK 1,24:END
370 'DETECTA COLISION
380 LOCATE x%,y%:IF ASC(COPYCHR$(#0))<>32 THEN GOTO 350
390 RETURN
400 'ACTUALIZA PERSONAJE
410 LOCATE xt%,yt%:PRINT CHR$(32)
420 LOCATE x%,y%:PRINT CHR$(p%)
430 xt%=x%:yt%=y%
440 RETURN
450 'x% e y% son las coordenadas del prota
460 'xt% e yt% son las coordenadas de borrado del fondo
470 'p% indica el "sprite" a utilizar en la animacion
En cuanto a la instrucción COPYCHR$ he notado algo curioso. Si usas el carácter 143 y haces la detección con COPYCHR$ y usas el mismo PEN, la detección es correcta, pero si el marco está en PEN 1 por ejemplo y tu estas trabajando en PEN 2 en ese momento, COPYCHR$ te devuelte un espacio en blanco (carácter 32). No ocurre con el resto de caracteres (por eso he usado un marco con el CHR$(200)).

Realmente curioso y no se el motivo.

Salu2.

Avatar de Usuario
nacho
Keeper of The Forum
Keeper of The Forum
Mensajes: 572
Registrado: Jue 06 Dic , 2007 2:58 pm

Mensajepor nacho » Vie 14 Dic , 2007 7:48 pm

Buena solución. :-)

Aun así, un poco avanzada para el nivel del curso (no hemos visto -todavia- variables enteras, ni RND para posicionar al azar, ni siquiera GOSUB), así que pondré la mía o simplificaré un poco la tuya ;-)

Y sí, lo del COPYCHR$ lo conocía. Ten en cuenta que el rectángulo relleno y el espacio en color invertido muestran la misma secuencia de pixels iluminados. Lo que no he probado nunca es hasta dónde "se equivoca": si es siempre, o por intensidad luminosa de la tinta, o cómo lo hace exactamente.

Pero por ejemplo, si escribes una A y dibujas una línea, no reconocerá correctamente la A, porque no memoriza los caracteres que hay en pantalla, sino que compara patrones de bits en pantalla con los del juego de caracteres (no es un "modo de texto puro" como los de los PC).

Avatar de Usuario
DaDMaN
Keeper of The Forum
Keeper of The Forum
Mensajes: 796
Registrado: Jue 16 Mar , 2006 10:51 pm

Mensajepor DaDMaN » Sab 15 Dic , 2007 1:23 pm

Y sí, lo del COPYCHR$ lo conocía. Ten en cuenta que el rectángulo relleno y el espacio en color invertido muestran la misma secuencia de pixels iluminados. Lo que no he probado nunca es hasta dónde "se equivoca": si es siempre, o por intensidad luminosa de la tinta, o cómo lo hace exactamente.

Pero por ejemplo, si escribes una A y dibujas una línea, no reconocerá correctamente la A, porque no memoriza los caracteres que hay en pantalla, sino que compara patrones de bits en pantalla con los del juego de caracteres (no es un "modo de texto puro" como los de los PC).
En este caso en concreto, dejando el marco con el rectángulo relleno y del mismo color (pen) que los obstáculos y personaje (y probando con varios colores), entonces si lo detecta como chr$(143).

Avatar de Usuario
nacho
Keeper of The Forum
Keeper of The Forum
Mensajes: 572
Registrado: Jue 06 Dic , 2007 2:58 pm

Mensajepor nacho » Dom 16 Dic , 2007 11:21 pm

En este caso en concreto, dejando el marco con el rectángulo relleno y del mismo color (pen) que los obstáculos y personaje (y probando con varios colores), entonces si lo detecta como chr$(143).
Esa es la idea. Si coincide el color del personaje y el del borde, debería colisionar correctamente. Si no, habría que usar otro carácter, como comentabas (o usar técnicas más sofisticadas, como guardar en memoria un "mapa" de posiciones válidas).

Avatar de Usuario
nacho
Keeper of The Forum
Keeper of The Forum
Mensajes: 572
Registrado: Jue 06 Dic , 2007 2:58 pm

Mensajepor nacho » Dom 16 Dic , 2007 11:22 pm

Ya está disponible todo el tema 3, incluyendo las funciones matemáticas y un ejemplo.


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro


La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) Selección de juegos de Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic