Herramientas de usuario

Herramientas del sitio


es:odiosum

¡Esta es una revisión vieja del documento!


ODIOSUM

Ficha

Autor Richard Hopkins
Computadora Amstrad PCW 8256 / 8512 / 9512
Año 1987
Género Arcade
Controles Teclado
Lenguajes Inglés
Estado Preservado

Capturas

Descripción

Es un juego de laberintos largo y bastante complicado. Un pequeño juego que tiene los mejores gráficos en Mallard Basic.

La idea del juego no es del todo buena, existen varios juegos de tipo de laberinto que implican a un pequeño personaje que sube la pantalla, saltando por encima de objetos que nos matan al tocarlos.

La fuerza del juego reside en sus gráficos que son sorprendentemente buenos. Esto se logra mediante la redefinición de una serie de caracteres que se combinan para formar el hombre y el laberinto. El autor en vez de redefinir el conjunto de caracteres ha redefinido varios de los símbolos vagos que sólo descubrimos presionando “ALT” en lugar de “SHIFT” por accidente. Es recomendable reiniciar el equipo tras jugar al juego para reiniciar el juego de caracteres.

El programa viene en dos partes. La primera redefine los caracteres que se requieren y luego llama al programa principal.

Nuestra misión es llegar al final de cada pantalla, saltando los obstáculos, cogiendo el ascensor que nos lleva a las plantas sucesivas y a los peligros que nos acechan. Tendremos que recoger la llave en el nivel medio y luego llegar a la puerta en el nivel superior. Tendremos que evitar al pájaro que nos matará para poder conseguir acceder a la puerta. Un juego bastante entretenido aunque algo difícil que nos hará pasar horas delante de la pantalla.

Listado

  • Listado - ODIOSUM.BAS
5 '********** ODIOSUM.BAS ***************
10 REM
20 REM Programma van Richard Hopkins uit 8000 PLUS
30 REM Juni 1988, pags. 62 + 63
40 REM Bewerking voor JOYCE Nieuws: Rolf van de Kamer
50 GOSUB 720
60 e$=CHR$(27):rv$=e$+"p":nv$=e$+"q":cl$=e$+"E"+e$+"H":on$=e$+"e":of$=e$+"f"
70 me$="*** O D I O S U M *** [q]=Left [e]=Right [p]=Jump [SPACE]=START [z]=END"
80 DEF FNat$(x,y)=CHR$(27)+"Y"+CHR$(31+x)+CHR$(31+y):PRINT of$:GOTO 670
90 x%=20:y%=24:a$=CHR$(160)+CHR$(161):b$=CHR$(162)+CHR$(163):e%=37:ed%=1:e1%=49:ed1%=-1
100 e2%=41:ed2%=1:k%=0
110 PRINT FNat$(x%,y%);"  ";FNat$(x%+1,y%);"  ":in$=INKEY$:IF in$="" THEN GOTO 170
120 IF IN$="q" THEN a$=CHR$(166)+CHR$(167):y%=y%+(y%>31)
130 IF y%/2=INT(y%/2) THEN b$=CHR$(170)+CHR$(171) ELSE b$=CHR$(168)+CHR$(169)
140 IF in$="e" THEN a$=CHR$(160)+CHR$(161):y%=y%-(y%<57)
150 IF y%/2=INT(y%/2) THEN b$=CHR$(164)+CHR$(165) ELSE b$=CHR$(162)+CHR$(163)
151 IF in$="z" THEN GOTO 700
160 IF in$="p" THEN GOTO 210
170 PRINT FNat$(x%,y%);a$;FNat$(x%+1,y%);b$:GOSUB 330
180 IF (y%=56 AND x%=20) OR (y%=56 AND x%=14 AND k%=1) THEN GOSUB 440
190 IF y%>42 AND y%<46 AND x%<15 THEN GOTO 290
200 IF x%=8 AND y%=31 THEN GOTO 650 ELSE GOTO 110
210 IF a$=CHR$(160)+CHR$(161) THEN j%=1 ELSE j%=-1
220 FOR z=-1 TO 1 STEP 0.5:PRINT FNat$(x%,y%);"  ";FNat$(x%+1,y%);"  "
230 x%=x%+(z*2):IF y%>31 AND y%<57 THEN y%=y%+j%
240 IF j%=-1 THEN b$=CHR$(168)+CHR$(169):IF y%/2=INT(y%/2) THEN b$=CHR$(170)+CHR$(171)
250 IF j%=1 THEN b$=CHR$(162)+CHR$(163):IF y%/2=INT(y%/2) THEN b$=CHR$(164)+CHR$(165)
260 PRINT FNat$(x%,y%);a$;FNat$(x%+1,y%);b$
270 IF l%=0 AND x%=11 AND (y%>33 AND y%<37) THEN GOSUB 310
280 GOSUB 330:NEXT:GOTO 170
290 PRINT FNat$(x%,y%);"  ";FNat$(x%+1,y%);"  "
300 x%=x%+1:PRINT FNat$(x%,y%);a$;FNat$(x%+1,y%);b$:GOSUB 330:GOTO 290
310 PRINT FNat$(11,35);"  ";FNat$(x%,y%);a$;CHR$(7):k%=1:FOR n=0 TO 255:OUT 246,n:NEXT
320 RETURN
330 GOSUB 490:PRINT FNat$(15,e%);"  ":e%=e%+ed%:PRINT FNat$(15,e%);CHR$(176);CHR$(177)
340 PRINT FNat$(9,e1%);"  ":e1%=e1%+ed1%:PRINT FNat$(9,e1%);CHR$(176);CHR$(177)
350 IF e%=31 OR e%=40 THEN ed%=-ed%
360 IF e1%=48 OR e1%=53 THEN ed1%=-ed1%
370 PRINT FNat$(5,e2%);"    ":e2%=e2%+ed2%
380 IF ed2%=1 AND e2%/2=INT(e2%/2) THEN PRINT FNat$(5,e2%);CHR$(184);CHR$(185);CHR$(186);CHR$(187)
390 IF ed2%=1 AND e2%/2<>INT(e2%/2) THEN PRINT FNat$(5,e2%);CHR$(184);CHR$(190);CHR$(191);CHR$(187)
400 IF ed2%=-1 AND e2%/2=INT(e2%/2) THEN PRINT FNat$(5,e2%);CHR$(180);CHR$(181);CHR$(182);CHR$(183)
410 IF ed2%=-1 AND e2%/2<>INT(e2%/2) THEN PRINT FNat$(5,e2%);CHR$(180);CHR$(188);CHR$(189);CHR$(183)
420 IF e2%=41 OR e2%=47 THEN ed2%=-ed2%
430 GOSUB 490:RETURN
440 PRINT FNat$(x%,y%);"  ";FNat$(x%+1,y%);"  ";FNat$(x%+2,y%-1);" ";STRING$(2,178);" "
450 x%=x%-1:PRINT FNat$(x%,y%);a$;FNat$(x%+1,y%);b$;FNat$(x%+2,y%-1);STRING$(4,179)
460 GOSUB 330:IF x%=14 OR x%=8 THEN RETURN ELSE GOTO 440
470 FOR n=0 TO 91:OUT 245,n:NEXT n
480 me$="Dead ! More luck next time! +++ ":GOTO 670
490 IF (x%=14 AND ABS(e%-y%)<2) OR (x%=8 AND ABS(e1%-y%)<2) THEN GOTO 470
500 IF (x%=5 AND y%-e2%>-2 AND y%-e2%<4) OR (x%=20 AND y%>42 AND y%<46) THEN GOTO 470
510 RETURN
520 PRINT cl$:OUT 248,8
530 FOR n=1 TO 25:PRINT FNat$(n,29);CHR$(173);CHR$(173);FNat$(n,59);CHR$(173);CHR$(173)
540 NEXT
550 PRINT FNat$(22,20);STRING$(11,179);rv$;STRING$(24,179);nv$;STRING$(4,179)
560 FOR n=23 TO 25:PRINT FNat$(n,31);rv$;STRING$(28,179);nv$:NEXT
570 PRINT FNat$(27,29);rv$;"   o   d   i   o   s   u   m    ";nv$
580 FOR n=17 TO 21:PRINT FNat$(n,29);"  ":NEXT
590 PRINT FNat$(8,29);CHR$(178);"  ";FNat$(9,29);CHR$(178);" "
600 PRINT FNat$(16,31);STRING$(24,172);FNat$(10,31);STRING$(24,172)
610 PRINT FNat$(16,43);SPACE$(4);FNat$(10,43);SPACE$(4);FNat$(10,20);STRING$(11,179)
620 PRINT FNat$(11,35);CHR$(174);CHR$(175);FNat$(21,44);CHR$(176);CHR$(177)
630 OUT 248,7:RETURN
640 FOR n%=0 TO 91:OUT 245,n%:NEXT
650 FOR N=-255 TO 255:OUT 246,ABS(n):OUT 245,ABS(n):NEXT:OUT 245,91:PRINT CHR$(7)
660 me$="+++ Congratulations - you finished Odiosum "
670 GOSUB 520
680 PRINT FNat$(28,29);rv$;LEFT$(me$,32);nv$:me$=RIGHT$(me$,LEN(me$)-1)+LEFT$(me$,1)
690 IF INKEY$<>" " THEN GOTO 680 ELSE GOTO 90
700 PRINT CHR$(27)+"E"+CHR$(27)+"H":CLEAR:END
710 REM ***** Grafische Loaders *****
720 MEMORY &HBFFE:FOR hex=&HC070 TO &HC098:READ pk:POKE hex,pk:NEXT hex
730 DATA 243,62,129,211,241,62,130,211,242,175,95,103,22,184,58,153,192,111,41,41
740 DATA 41,25,17,154,192,235,1,8,0,237,176,62,133,211,241,62,134,211,242,251,201
750 FOR char=160 TO 191:POKE &HC099,char
760 FOR row=1 TO 8:READ binary(row):POKE &HC099+row,(binary(row)):NEXT row
770 cl=&HC070:CALL cl:NEXT char
780 DATA 0,63,63,60,63,63,15,15,0,192,240,192,240,192,0,192
790 DATA 63,255,255,15,63,255,252,255,240,240,60,204,240,60,252,63
800 DATA 63,255,255,63,63,63,63,63,240,240,240,240,192,0,0,192
810 DATA 0,3,15,3,15,3,0,3,0,252,252,60,252,252,240,240
820 DATA 15,15,60,51,15,60,63,252,252,255,255,240,252,255,63,255
830 DATA 15,15,15,15,3,0,0,3,252,255,255,252,252,252,252,252
840 DATA 255,85,170,85,255,0,0,0,85,170,85,170,85,170,85,170
850 DATA 0,0,0,51,204,51,12,0,12,51,192,48,0,0,0,0
860 DATA 15,60,240,240,240,255,63,15,240,252,255,255,63,255,252,240
870 DATA 20,28,20,28,20,28,20,28,186,202,202,189,123,119,205,74
880 DATA 0,0,0,0,63,207,63,0,3,12,51,15,60,243,63,15,48,192,0,63,207,63,255,252,0,0,48,192,240,192,0,0
890 DATA 0,0,12,3,15,3,0,0,12,3,0,252,243,252,255,63,192,48,204,240,60,207,252,240,0,0,0,0,252,243,252,0
900 DATA 0,0,0,15,60,243,63,15,0,0,0,255,207,63,255,252
910 DATA 0,0,0,255,243,252,255,63,0,0,0,240,60,207,252,240
920 RETURN
930 REM Einde van de listing

Controles

      Q = IZQUIERDA
      E = DERECHA
      P = SALTO
  SPACE = COMENZAR JUEGO

Carga del programa

1.- Introducir el disco CP/M por la cara 2
2.- Escribir BASIC y esperar a que cargue
3.- Retirar el disco CP/M e introducir el disco que contiene el juego Odiosum
4.- Teclear run "Odiosum" y pulsar la tecla "ENTER"

Extras

  • Listado del programa en revistas de gran tirada de la época

odiosum_programa_01.jpg odiosum_programa_02.jpg

Descarga

  • Odiosum (juego en formato dsk, comprimido con zip)

Enlaces

es/odiosum.1483962383.txt.gz · Última modificación: 2017/01/09 14:46 por jevicac