Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
 

Autor Hilo: Teletexto - The Videogame... ¡Hagámoslo entre todos! (Leído 13194 veces)

Zael

  • T-600
  • Mensajes: 5 138
  • El Caloret
Un seguundo, ¿Ninguna estartap de tecnologia' raro


¡Deka tío! ¡Ancient Bits es pura tecnología! ¡Y Sinclair Research también! Hasta las boinas de Periko me atrevería a decir que están a la vanguardia tecnológica...  ;)  :P


Bueno, voy a poner el código para ver si alguien ayuda con la parte que falta del mini-juego o sólo por si a alguien le pica la curiosidad esto del BASIC. Vuelvo a insistir en que estoy alucinado con esto de la programación. El llamar "lenguajes de programación" a estos códigos no es para nada exagerado, es que realmente son auténticos lenguajes con su sintaxis, gramática, etc.

Me resulta muy curioso ver cómo se puede lograr el mismo resultado de distintas formas, o cómo responde el ordenador de una manera u otra según escribas el código de un modo u otro.









El código principal para este "Catacroker - La Bolsa o la Vida" lo he sacado de un juego llamado "Catch" dentro de un programa llamado "Onliners" que es una recopilación de mini-juegos de una única línea de código. Todo esto viene en una carpeta de programas .BAS de ejemplo con el propio BASin...




El mini-juego, tal como viene, muestra una "U" debajo de la pantalla que tiene que coger una "o" que cae desde arriba de la pantalla. Tienes 3 vidas y al final te muestra el número de veces que has capturado la bolita.











Yo le agregué una gráfica bursátil hecha con PLOT y DRAW (mediante el genial programa ZX DRAW que te genera el código del gráfico) para remarcar el carácter bursátil del juego...





... ¡¡pero cuidado, el comando CLS que hay en medio del programa me borra la gráfica!! Pues nada, lo borramos y ya está... ¡¡ya está bien jodida la cosa!!




Gráfica bursátil añadida (línea 10) + CLS borrado = Programa "cagado"



Al parecer ese CLS estaba ahí para evitar la acumulación de PRINTS en pantalla tanto de las letras (que representan las acciones de cada empresa) que caen como de la letra "U" inferior que recoge las letras que caen. Si quitamos el CLS los PRINTS de esas letras se acumulan y dejan un rastro horrible tras de sí que lo hace injugable.









Esto seguramente habrá alguna manera más fácil de solucionarlo, pero yo lo que hice fue borrar el CLS, y para evitar "el rastro de letras" edité la línea del PRINT añadiendo que pinte un espacio vacío " " detrás de cada letra...


Código: [Seleccionar]
PRINT AT h,x;"F";AT 21,a;"U";AT h-1,x;" ";AT 21,a-1;" ";AT 21,a+1;" "



Así evitamos el "rastro de letras" y es totalmente jugable








Por último, edito un UDG para cambiar la "U" que recoge las acciones que caen por un pequeño y afable inversor que alza las manos ante el crack bursátil que se le avecina...








Como curiosidad comentar que al caer las letras "cortan" la gráfica. Esto puede evitarse metiendo el código de PLOT y DRAW antes del código "FOR h=0 TO 21" Si metes el código después de eso la gráfica no se corta pero el juego se relentiza enormemente. ¿Alguna explicación para esto, por favor?










Bueno, y ahora lo importante, las cosas que quedan por pulir...


THINGS TO DO...



1) He intentado de mil formas hacer que cada vez caiga una letra (acción) distinta según la empresa (A=Ancient Bits, F=FaseBonus, W=Worlds, etc.)

He probado cosas como poner LET a$= A,F,W... pero no se puede. Lo que sí se puede es asignar varios valores con el código de cada letra, poniendo LET a$= CHAR$ (65 or 66 or 67). Esto da como resultado un hermoso "?" cayendo.

También he probado a poner esto, que es el código que nos dio hikoki para generar pseudoaleatoriamente el 1X2 de la quiniela...


10 LET a$="AFW(el resto de las iniciales de las empresas)":
LET p=0:
LET a=15:
FOR F=0 TO 2:
LET x=INT (RND*22):
INK 2:
PLOT 32,120:
DRAW 21,26:
DRAW 35,-59:
DRAW 18,19:
DRAW 39,-50:
DRAW 19,15:
DRAW 56,-55:
DRAW 0,10:
DRAW -10,-10:
DRAW 10,0:
INK 0:
FOR h=0 TO 21:
PRINT AT h,x;a$(1+INT (RND*3));AT 21,a;"\a";AT h-1,x;" ";AT 21,a-1;" ";AT 21,a+1;" ":
LET a=a+(INKEY$="8")*(a<30)-(INKEY$="5")*(a>0):
NEXT h:
BEEP (x<>a),0:
LET p=p+(a=x): LET f=f-(a=x):
NEXT F:
PRINT AT 0,0;"         FINAL SCORE=";p


El resultado es que cae una "letra cambiante" que va cambiando durante su recorrido hasta el suelo...  :-\






Pues eso, hay que conseguir que cada vez caiga pseudoaleatoriamente una letra distinta (una letra para cada empresa) y que al final detecte cuántas letras ha recogido de cada tipo. ¿Fácil no? ¡Pues manos a la obra chavales!



¿Chavales?... ¡¿Chavales?!



última modificación: 08 Diciembre 2018, 01:56:04 por Zael





beaches

  • T-600
  • Mensajes: 2 801
Madre mía lo que has avanzado en 1 año.  Mi más sincera enhorabuena, lo tuyo es ganas de aprender y hacerlo público.  De verás que no dejas de sorprenderme en tu faceta de creador de videojuegos, en otras ponemos puntos suspensivos......

Future

  • T-500
  • Mensajes: 1 187
  • superviviente marciano
    • futublock
bien, a base de pseudocodigo (que no es mas que intentar explicar que hay que hacer) en vez de pintar la pantalla entera prueba a pintar la parte que se borra, ¿como? ni idea porque tienes que calcular la cosisión con el gráfico en el momento pertinente y si dices que se demora tela, igual se puede pintar cada X letras

Para contar letras, muy facil usando un contador, creas una variable que cada vez que pilles una letra le sume 1 y despues compruebe si lleva 5, cuando lleve 5 repintas pantalla y si se puede cambiar el gráfico, mejor


Zael

  • T-600
  • Mensajes: 5 138
  • El Caloret
bien, a base de pseudocodigo (que no es mas que intentar explicar que hay que hacer) en vez de pintar la pantalla entera prueba a pintar la parte que se borra, ¿como? ni idea porque tienes que calcular la cosisión con el gráfico en el momento pertinente y si dices que se demora tela, igual se puede pintar cada X letras

Para contar letras, muy facil usando un contador, creas una variable que cada vez que pilles una letra le sume 1 y despues compruebe si lleva 5, cuando lleve 5 repintas pantalla y si se puede cambiar el gráfico, mejor



Buenas Future, no entiendo bien la parte donde dices que "si lleva 5", ¿cinco qué?. En cualquier caso, como os digo es curioso, porque según en qué orden coloco la parte de la gráfica (el PLOT y DRAWS), puede pasar 3 cosas diferentes:

1) Que la línea no se corte en absoluto y la atraviesen limpiamente (pero se realentiza cosa mala)

2) Que la línea se corte y se quede cortada en cada trozo que cae la letra (con lo que si somos buenos y aguantamos un rato las letras acaban borrando la línea

3) Que la letra caiga, rompa la línea por ese trozo y luego vuelve a regenerarse "por arte de magia" (que es tal como lo he dejado por ahora).


Como digo, para un ignorante como yo no deja de asombrarme todo esto y para mi esto es un completo "ensayo y error"














Madre mía lo que has avanzado en 1 año.  Mi más sincera enhorabuena, lo tuyo es ganas de aprender y hacerlo público.  De verás que no dejas de sorprenderme en tu faceta de creador de videojuegos, en otras ponemos puntos suspensivos......


Gracias @Beaches. Más allá de las chorradas con las que acompaño todo esto, intento seguir las pautas que marqué en su momento.

Vindius fue un "juego" que realmente podía hacer CUALQUIERA, sin importar los conocimientos previos que pudiera tener. Eran apenas 3 comandos (PRINT, CLS, INPUT), era el NIVEL 0, por así decir. Este TXT va un paso más allá e intento hacer juegos simples como una patata pero que son juegos propiamente dichos (con sprites, elementos jugables, etc.).



Para mi me resulta realmente difícil todo esto porque nunca aprendí nada de programación, pero a la vez me resulta muy gratificante cuando consigo resolver un problema o hacer un programa íntegramente desde 0 como el de la F1. Para que te hagas una idea, la liberación de dopamina es similar a cuando consigo un morado en el Salón.


Pues lo dicho chicos, a ver si alguien se anima y logramos que cada vez que caiga una letra sea una letra distinta (A= Ancient Bits, O= Obleas P.Tinto, F= FaseBonus, etc.)

Saludos!





Future

  • T-500
  • Mensajes: 1 187
  • superviviente marciano
    • futublock


Zael

  • T-600
  • Mensajes: 5 138
  • El Caloret
cinco era por poner un ejemplo, cada cinco letras


Ahhh vale, ya te entiendo. Que vaya contando letras que caen y cuando lleve "X" letras vuelva a imprimir el gráfico. Entiendo, pero no es necesario, porque como digo, según donde coloque el código de la gráfica (el PLOT y los DRAW) hace que la gráfica se corte y se regenere, se corte y se quede cortada, o no se corte pero vaya lentísima.

Mirad...







1) SE CORTA, PERO SE REGENERA CON CADA LETRA NUEVA QUE CAE




10 LET p=0:
LET a=15:
FOR F=0 TO 2:
LET x=INT (RND*22):
INK 2:
PLOT 32,120:
DRAW 21,26:
DRAW 35,-59:
DRAW 18,19:
DRAW 39,-50:
DRAW 19,15:
DRAW 56,-55:
DRAW 0,10:
DRAW -10,-10:
DRAW 10,0:
INK 0:

FOR h=0 TO 21:
PRINT AT h,x;"F";AT 21,a;"U";AT h-1,x;" ";AT 21,a-1;" ";AT 21,a+1;" ":
LET a=a+(INKEY$="8")*(a<30)-(INKEY$="5")*(a>0):
NEXT h:
BEEP (x<>a),0:
LET p=p+(a=x): LET f=f-(a=x):
NEXT F:
PRINT AT 0,0;"         FINAL SCORE=";p














2) SE CORTA Y SE SIGUE CORTANDO HASTA QUE DESAPARECE



Hacer desaparecer la raya puede ser un objetivo interesante si no consigo hacer mi idea inicial...  :rolleyes:



10 INK 2:
PLOT 32,120:
DRAW 21,26:
DRAW 35,-59:
DRAW 18,19:
DRAW 39,-50:
DRAW 19,15:
DRAW 56,-55:
DRAW 0,10:
DRAW -10,-10:
DRAW 10,0:
INK 0:

LET p=0:
LET a=15:
FOR F=0 TO 2:
LET x=INT (RND*22):
FOR h=0 TO 21:
PRINT AT h,x;"F";AT 21,a;"U";AT h-1,x;" ";AT 21,a-1;" ";AT 21,a+1;" ":
LET a=a+(INKEY$="8")*(a<30)-(INKEY$="5")*(a>0):
NEXT h:
BEEP (x<>a),0:
LET p=p+(a=x): LET f=f-(a=x):
NEXT F:
PRINT AT 0,0;"         FINAL SCORE=";p




















3) NO SE CORTA LA RAYA PERO VA MÁS LENTO QUE EL CABALLO DEL MALO



Las letras atraviesan la gráfica con un "color clash" incluído... pero va muy lento.  :(



10 LET p=0:
LET a=15:
FOR F=0 TO 2:
LET x=INT (RND*22):
FOR h=0 TO 21:
INK 2:
PLOT 32,120:
DRAW 21,26:
DRAW 35,-59:
DRAW 18,19:
DRAW 39,-50:
DRAW 19,15:
DRAW 56,-55:
DRAW 0,10:
DRAW -10,-10:
DRAW 10,0:
INK 0:

PRINT AT h,x;"F";AT 21,a;"U";AT h-1,x;" ";AT 21,a-1;" ";AT 21,a+1;" ":
LET a=a+(INKEY$="8")*(a<30)-(INKEY$="5")*(a>0):
NEXT h:
BEEP (x<>a),0:
LET p=p+(a=x): LET f=f-(a=x):
NEXT F:
PRINT AT 0,0;"         FINAL SCORE=";p









Para los profanos como yo, esto es casi magia. Con el mismo código pero sólo cambiando de orden el gráfico de la flecha observamos cambios de velocidad, alteraciones de la gráfica, alteraciones del espacio-tiempo... Todo esto es muy confuso, sólo sé una persona que puede arrojarnos algo de luz al respecto...  :rolleyes:  :rolleyes:








Zael

  • T-600
  • Mensajes: 5 138
  • El Caloret

Bueno chicos, hikoki me ha explicado en Speccy.org por qué ocurren esas diferencias según dónde metas el código de la gráfica (PLOT y DRAWS). Al parecer los comandos FOR crean un bucle asociado al PRINT, de forma que el PRINT se repite realmente 21 veces (la altura de la pantalla) haciendo que "caiga" la letra.

Si metía el código de la gráfica (PLOT y DRAWS) al principio del programa, al quedar fuera del bucle formado por los comandos FOR y PRINT, la gráfica se dibujaba SÓLO al principio y UNA ÚNICA vez y por eso las letras la iban degradando (que es lo que me pasó en el mini-juego de Tenis, que según van jugando se borran las líneas).

Si metía el código de la gráfica (PLOT y DRAWS) entre el primer y segundo FOR, las letras borran la gráfica pero se regeneran porque cada vez vuelve el bucle al primer FOR y por tanto vuelve a redibujar la gráfica.

Si metía el código de la gráfica (PLOT y DRAWS) después de los dos FOR, la gráfica no se corta porque... ¡¡se está re-dibujando cada vez que actúa el PRINT!! ¡¡Por eso iba tan lento en ese caso!!


¡Qué maravilla esto del BASIC! ¡Estos lenguajes de programación modernos no dejan de sorprenderme!















Y ya de paso nos ha solucionado la "papeleta" de hacer que cada vez caiga una letra diferente...

Código: [Seleccionar]
10 LET a$="ABCDEFGHIJ": LET p=0: LET a=15: FOR F=0 TO 10: LET b$=a$(INT (1+RND*LEN (a$))): LET x=INT (RND*22): INK 2: PLOT 32,120: DRAW 21,26: DRAW 35,-59: DRAW 18,19: DRAW 39,-50: DRAW 19,15: DRAW 56,-55: DRAW 0,10: DRAW -10,-10: DRAW 10,0: INK 0: FOR h=0 TO 21: PRINT AT h-1,x;" " AND (ATTR (h,x)<>56): LET h=h+(5 AND ATTR (h,x)<>56): PRINT AT h,x;b$;AT 21,a;"\a";AT h-1,x;" ";AT 21,a-1;" ";AT 21,a+1;" ": LET a=a+(INKEY$="8")*(a<30)-(INKEY$="5")*(a>0): NEXT h: BEEP (x<>a),0: BEEP (.03 AND x=a),45: LET p=p+(a=x): NEXT F: PRINT AT 0,0;"         FINAL SCORE=";p


A veces pienso que este hikoki es un "ángel de la guarda del BASIC" que me ha sido enviado para completar este interminable TXT - The Videogame...  :rolleyes:





Future

  • T-500
  • Mensajes: 1 187
  • superviviente marciano
    • futublock
que va ver que ir dando carpetazo, ¿no?
hagamos una cajita guapa y eso, ¿no?
y la vendemos a comisión, ¿no?
tu sabe, 99,99 pa mi + tu sueldo y un mojon pa ti ¿no?
es lo suyo ¿no?
¿no?


Zael

  • T-600
  • Mensajes: 5 138
  • El Caloret
que va ver que ir dando carpetazo, ¿no?
hagamos una cajita guapa y eso, ¿no?
y la vendemos a comisión, ¿no?
tu sabe, 99,99 pa mi + tu sueldo y un mojon pa ti ¿no?
es lo suyo ¿no?
¿no?



Je, je, buenas Future. Te juro que el otro día pensando en el juego me acordé de ti. Pensé: "Joer, vino Future con una idea sencilla y cojonuda. Le cojo el nombre y me pongo a hacer un juego que no sólo no tiene nada que ver sino que encima se me está haciendo una montaña y parece La Historia Interminable..."

Tal vez si lo pongo como propósito para 2019... Mmmm... podría funcionar, lo estoy viendo... "Hola Zael, para este año me he apuntado al gimnasio y voy a dejar de fumar, ¿y tú?" "¿Yo? Acabar el TXT y dejar las drogas, claro está..."









CURIOSIDADES DEL TELETEXTO

BOLSA & POESÍA



Bueno, sea como sea, quería comentaros que aquí estamos que si "Ji, ji, ji con el juego de la Bolsa", que si "Ja, ja, ja, Obleas P.Tinto lanza una OPA contra FaseBonus", que si esto que si lo otro, y mientras tanto las Bolsas mundiales se han desplomado esta semana y resulta que una nueva crisis esté llamando a nuestras puertas...









Dios quiera que sea una falsa alarma, y que las únicas crisis financieras ocurran en el juego bursátil de TXT - The Videogame. Y si no es así, no nos quedará más que ponerle "buena cara al mal tiempo", como hizo el redactor de noticias económicas del Teletexto TVE el 12 de Marzo de 2014...






Madre mía... ¡¡me temo que más de un Zael suelto anda por ahí!!  ;)  :P  ;D





beaches

  • T-600
  • Mensajes: 2 801
Zael a este paso van a quitar el teletexto como con las cabinas de teléfono. Mira igual un mini juego de las cabinas...

Zael

  • T-600
  • Mensajes: 5 138
  • El Caloret

Chicos, esto no tiene que ver con el juego de TXT pero lo pongo aquí por soltarlo en algún sitio. Hace un rato me ha pasado una cosa rarísima. Estaba buscando en Youtube unas canciones de Buddy Holly y (sin venir a cuento) me aparece en la columna de recomendados un directo de Arnau Jess hablando ni más ni menos que de...


CONCURSO JUEGOS BASIC BYTEMANIACOS 2007





La cosa es que yo (antes de volverme subnormal y escribir compulsivamente en foros) participé en aquel concurso con 2007 - A ZX Spectrum Oddysey...







Lo más rayante es que llevo un tiempo pensando en hacer un remake de ese juego, con fuentes personalizadas, acentos, rebajar la carga de texto, etc. Lo cierto es que he llegado justo cuando acababan el directo, pero me ha volado la cabeza tanta coincidencia y estoy deseando acabar mi web para poder seguir programando el TXT y ese remake del 2007 Spectrum Oddyssey.

Me ha sorprendido que alguien recuerde y dedique su tiempo  comentar juegos homebrew de hace 12 años y me ha provocado mucha nostalgia ver comentados esos juegos que programábamos en 2007, parece que sea otra vida incluso. En fin, cosas raras... echadles un vistazo...





Deka Black

  • T-600
  • Mensajes: 9 041
cosas veredes. mi buen escudero zael. es de esas cosas que te alegarn la noche sin saber la razon
A straight line may be the shortest distance between two points, but it is by no means the most interesting. - (Third Doctor in The Time Warrior)

nacho

  • T-7T
  • Mensajes: 425
ademas es el primero que comenta, debe ser un puntazo si, enhorabuena tio

jmpuk

  • T-7T
  • Mensajes: 386

Chicos, esto no tiene que ver con el juego de TXT pero lo pongo aquí por soltarlo en algún sitio. Hace un rato me ha pasado una cosa rarísima. Estaba buscando en Youtube unas canciones de Buddy Holly y (sin venir a cuento) me aparece en la columna de recomendados un directo de Arnau Jess hablando ni más ni menos que de...


CONCURSO JUEGOS BASIC BYTEMANIACOS 2007





La cosa es que yo (antes de volverme subnormal y escribir compulsivamente en foros) participé en aquel concurso con 2007 - A ZX Spectrum Oddysey...







Lo más rayante es que llevo un tiempo pensando en hacer un remake de ese juego, con fuentes personalizadas, acentos, rebajar la carga de texto, etc. Lo cierto es que he llegado justo cuando acababan el directo, pero me ha volado la cabeza tanta coincidencia y estoy deseando acabar mi web para poder seguir programando el TXT y ese remake del 2007 Spectrum Oddyssey.

Me ha sorprendido que alguien recuerde y dedique su tiempo  comentar juegos homebrew de hace 12 años y me ha provocado mucha nostalgia ver comentados esos juegos que programábamos en 2007, parece que sea otra vida incluso. En fin, cosas raras... echadles un vistazo...
osti tu que pasada!!!! no he terminado el video pq me han entrado muchmhas ganas de jugarlo... mola mazo el argumento... donde se puede conseguir?


Enviado desde mi SM-G950F mediante Tapatalk


Zael

  • T-600
  • Mensajes: 5 138
  • El Caloret
osti tu que pasada!!!! no he terminado el video pq me han entrado muchmhas ganas de jugarlo... mola mazo el argumento... donde se puede conseguir?


Enviado desde mi SM-G950F mediante Tapatalk


La antigua web Ancient Bits aún sigue operativa gracias al hosting desinteresado del gran Radastan (Bytemaniacos)...








El juego es un juego tipo Quiz homenaje al 25 Aniversario del ZX Spectrum (1982-2007), haciendo preguntas sobre el ordenador y sus juegos a lo largo de sus 25 años de historia. Son 40 preguntas, algunas tipo texto y otras que aparecen gráficos o melodías de juegos que hay que identificar.

Si logras ir avanzando vas destruyendo los ZX Spectrums que amenazan la integridad de la inteligencia artifical que rige sabiamente el Universo, ni más ni menos que el gran... ¡SOID! (si lo lees al revés... Oh Dios mío, no es posible...).

¿Qué pasará si finalmente un ZX Spectrum sobrevive y se enfrenta al mismísimo SOID? Oh my god... no, un momento... en serio... ¡no me acuerdo cómo acaba!  ;D  ;D  ;D






La verdad es que viendo el vídeo tengo claro que hay que recortarle mucho texto a ese juego. Hay gente que a la tercera parrafada podría asustarse y echarse atrás. Y hay que ponerle unas fuentes futuristas y acentos y "ñ" y justificar un poco el texto para que todo quede más... simétrico.