====== ODIOSUM ====== {{:otros:Odiosum_p1.jpg?690|}} ===== Ficha ===== ^ Autor | Richard Hopkins | ^ Computadora | Amstrad PCW 8256 / 8512 / 9512 | ^ Año | 1988 | ^ Género | Arcade | ^ Controles | Teclado | ^ Lenguajes | Inglés | ^ Estado | [[preservado|Preservado]] | ===== Capturas ===== {{:otros:Odiosum_screenshot01.png?220}} {{:otros:Odiosum_screenshot02.png?220}} {{:otros:Odiosum_screenshot03.png?220}} {{:otros:Odiosum_screenshot04.png?220}} ===== 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 {{:otros:Odiosum_programa_01.jpg?170}} {{:otros:Odiosum_programa_02.jpg?170}} ===== Descarga ===== * {{:otros:Odiosum (Basic).zip|Odiosum }}(juego en formato dsk, comprimido con zip) ===== Vídeos ===== {{ youtube>DQtTmYBwpyA?large }}