Buenas...
Estaba intentando hacerme un jueguecillo chusto en BASIC para ver hasta dónde llegaba (en el BASIC, no en el juego), y me pasa esto:
- Este es el código que me da problema:
- Y el problema es que al moverse la serpiente si lo hago deprisa se acaba el programa sin más... sale el mensaje de "ready"... Dejo una tecla pulsada, se mueve unas 6-7 posiciones y se corta... mientras que si voy despacito por ejemplo moviendo ahora 3 casillas, ahora 4, luego 1, luego 9 etc (no dejando pulsado, sino levantando y soltando).... puedo llegar hasta un elemento que hay en pantalla, colisiono y entonces sí que se corta el programa (porque no hay más).
¿Por qué pasa esto? (¿Y cómo se arregla?)
Yo inicialmente quería poner "Si pulsas a la derecha, y no hay nada en el eje X en esa posición, avanzas"... pero al hacer eso, no valoraba si estaba en el mismo eje Y... es decir, en cualquier Y, para toda X en que estuviese el obstáculo, chocaba, aunque en esa Y (línea) no hubiera nada... y luego lo traté de arreglar poniendo "Si pulsas a la derecha, y no hay nada en el eje X, y no hay nada en el eje Y, avanzas"... pero no podía poner dos opciones AND (¿o sí se puede y no sé?), así que se me ocurrió poner lo de que se pusiera el puntero en la localización en la que quiere ir, y si la pantalla dice que ahí no hay nada que se ponga (pero entonces me ha pasado esto que comento de que si vas corriendo se acaba el programa pero si voy a cachitos sí que llego a la colisión).
Gracias
¿Por qué pasa esto? Comportamiento raro de un programa.
Re: ¿Por qué pasa esto? Comportamiento raro de un programa.
Un condicional admite varios and, eso sí, posiblemente tengas que priorizar con paréntesis.
Aunque lo que estás diciendo me suena más a or que a and.
Aunque lo que estás diciendo me suena más a or que a and.
Re: ¿Por qué pasa esto? Comportamiento raro de un programa.
Traté de ponerlos entre paréntesis pero no me salió...Un condicional admite varios and, eso sí, posiblemente tengas que priorizar con paréntesis.
Aunque lo que estás diciendo me suena más a or que a and.
¿Cómo se podría poner?
Yo puse esto: IF (INKEY(1)=0 OR INKEY(75)=0) AND xs+1<>xf AND ys<>yf THEN muevete a la derecha
Esos son los 2 AND que quería añadir al IF , si pongo sólo uno de los dos sí funciona pero aparece el problema que comentaba para ese caso (que sólo lee el primero de los AND). He tratado a ponerles paréntesis de diferentes formas pero no me funciona.
Gracias
(De todas formas ya es por curiosidad, porque me he dado cuenta que lo que quería hacer al colisionar con ese objeto no era esquivarlo, sino comerlo y hacer la serpiente más larga, pero si la hago más larga no puedo hacer luego el efecto de animación borrándola según se va moviendo ). Creo que mejor tendré que pensar en algo más simple
EDITO: he seguido escribiendo líneas y ahora sí funciona el código de la foto que subí y el programa no se corta... además se mueve mucho más rápido... Cosas rarunas...
Re: ¿Por qué pasa esto? Comportamiento raro de un programa.
Súbelo cuando lo tengas listo.
Yo me pasé buena parte de mi niñez intentando replicar juegos como este. Hace algunos años me puse de nuevo y me saqué algunas espinitas. Una de ellas con la serpiente, que resultó admitir soluciones mucho más simples que las que yo imaginaba. Me pasa con frecuencia.
Yo me pasé buena parte de mi niñez intentando replicar juegos como este. Hace algunos años me puse de nuevo y me saqué algunas espinitas. Una de ellas con la serpiente, que resultó admitir soluciones mucho más simples que las que yo imaginaba. Me pasa con frecuencia.
Saludos,
gg.
gg.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro
La Comunidad Española |