ErrorDeSintaxis

Pequeños fragmentos de código fuente en distintos lenguajes de programación, agrupados por categorías.

Puedes buscar entre los fuentes existentes, o aportar los tuyos.

Locomotive Basic: Mover un personaje esquivando obstáculos

Ejemplo de cómo mover un personaje esquivando obstáculos en consola, usando Locomotive Basic

Lenguaje: Locomotive Basic

Categoría: Minijuegos

Mover un personaje esquivando obstáculos
 
' Fuente procedente de ErrorDeSintaxis.es 
' Ejemplo de cómo mover un personaje esquivando 
'  obstáculos en consola, usando Locomotive 
'  Basic 
' Lenguaje: Locomotive Basic 
' Nivel: Básico 
' Disponible desde 07/08/2011 
' Aportado por Nacho 
' Autor original: Nacho Cabanes 
' Web original: http://www.nachocabanes.com/amstrad/curso/cpc_e02_01.php 

10 ' Ejemplo del tema 2
20 ' Preparo los caracteres
30 borde$=CHR$(206)
40 obstac$=CHR$(207)
50 izqda$=CHR$(242)
60 dcha$=CHR$(243)
70 arriba$=CHR$(240)
80 abajo$=CHR$(241)
90 perso1$=CHR$(248)
100 perso2$=CHR$(250)
110 explo$=CHR$(238)
120 ' Preparo los colores
130 INK 0, 0: ' Color 0: Negro
140 INK 1, 2: ' Color 1: Azul claro
150 INK 2, 11: ' Color 2: Azul cielo
160 INK 3, 20: ' Color 3: Cyan claro
170 PAPER 0: PEN 1: 'Azul cl sobre negro
180 BORDER 0
190 MODE 1
200 ' Dibujo linea superior e inf.
210 FOR i = 1 TO 40
220   LOCATE i,1: PRINT borde$;
230   LOCATE i,24: PRINT borde$;
240 NEXT i
250 ' Dibujo linea dcha e izqda
260 FOR i = 2 TO 23
270   LOCATE 1,i: PRINT borde$;
280   LOCATE 40,i: PRINT borde$;
290 NEXT i
300 ' Pongo unos cuantos obstaculos
310 PEN 2
320 LOCATE 10,10: PRINT obstac$
330 LOCATE 30,18: PRINT obstac$
340 PEN 3: PAPER 1
350 LOCATE 2,6: PRINT obstac$
360 LOCATE 10,8: PRINT obstac$
370 PEN 3: PAPER 2
380 LOCATE 15,12: PRINT obstac$
390 LOCATE 22,20: PRINT obstac$
400 PEN 3: PAPER 0
410 ' Parte repetitiva: personaje
420 ' Primero: valores iniciales
430 x = 10: y= 12
440 persona$=perso1$
450 LOCATE x,y: PRINT persona$
460 ' Ahora espero tecla
470 tecla$ = INKEY$: IF tecla$="" THEN GOTO 470
480 ' Borro personaje
490 LOCATE x,y: PRINT " "
500 ' Calculo nueva posicion
510 IF tecla$=izqda$ THEN x = x - 1
520 IF tecla$=dcha$ THEN x = x + 1
530 IF tecla$=arriba$ THEN y = y - 1
540 IF tecla$=abajo$ THEN y = y + 1
550 ' Compruebo si choca
560 LOCATE x,y
570 IF (COPYCHR$(#0) = obstac$) OR (COPYCHR$(#0) = borde$) THEN GOTO 630
580 ' Si no choca, alterno personaje
590 IF persona$=perso1$ THEN persona$=perso2$ ELSE persona$=perso1$
600 ' Y repito
610 GOTO 450
620 ' Si ha chocado, se acabo
630 PRINT explo$
640 END