====== ETHERNET ====== {{:otros:Ethernet_p1.jpg?690|}} ===== Ficha ===== ^ Autor | Tim Barnes | ^ Computadora | Amstrad PCW 8256 / 8512 / 9512 | ^ Año | 1988 | ^ Género | Arcade | ^ Controles | Teclado | ^ Lenguajes | Inglés | ^ Estado | [[preservado|Preservado]] | ===== Capturas ===== {{:otros:Ethernet_screenshot01.png?220}} {{:otros:Ethernet_screenshot02.png?220}} {{:otros:Ethernet_screenshot03.png?220}} {{:otros:Ethernet_screenshot04.png?220}} ===== Descripción ===== El juego comienza en una cuadrícula de 12x11 y la idea es mantenerse con vida mientras somos rodeados con un creciente número de símbolos amenazadores incluyendo un cráneo. Podemos movernos en línea recta inclusive salirnos por el borde de la pantalla, apareciendo en el lado opuesto. Si no deseamos movernos basta con pulsar return. Los símbolos se mueven por toda la pantalla y tratarán de rodearnos haciendo que se acabe el juego cuando lo consigan. Podemos encontrarnos algunos tesoros por las pantallas como números o diamantes o matar a uno de nuestros asesinos. Nuestra misión será evitar que nos mate uno de los asesinos el cual puede matarnos en una casilla adyacente a la nuestra. Otra oportunidad que tenemos es empujar a uno de los esclavos. Un juego bastante compulsivo. ===== Listado ===== * **__Listado 1 - SETUP.BAS__** 10 MEMORY &HBFFE: FOR h=&HC070 TO &HC098:READ p:POKE h,p:NEXT 20 FOR c=160 TO 187:POKE &HC099,c 30 FOR r=1 TO 8:READ binary(r):POKE &HC099+r,(binary(r)):NEXT r 40 cl=&HC070:CALL cl:NEXT c 50 DATA 243,62,129,211,241,62,130,211,242,175,95,103,22,184,58,153,192,111,41,41 60 DATA 41,25,17,154,192,235,1,8,0,237,176,62,133,211,241,62,134,211,242,251,201 70 DATA 0,32,0,2,2,0,32,0,0,8,0,128,128,0,8,0 80 DATA 10,41,169,170,186,42,10,0,240,252,206,254,126,188,240,0 90 DATA 85,131,135,131,131,131,85,0,84,130,130,130,130,130,84,0 100 DATA 85,143,156,129,135,159,85,0,84,226,114,226,130,242,84,0 110 DATA 85,143,156,129,156,143,85,0,84,226,114,226,114,226,84,0 120 DATA 3,15,58,251,58,15,3,170,129,225,185,191,185,225,129,170 130 DATA 31,195,192,243,192,195,31,85,224,12,12,60,12,12,224,85 140 DATA 249,225,7,86,7,225,249,85,62,14,192,212,192,14,62,85 150 DATA 0,31,57,63,29,7,0,170,1,241,153,249,113,193,1,170 160 DATA 229,249,206,195,200,192,255,85,84,68,84,148,228,56,252,85 170 DATA 255,213,213,215,220,240,255,85,252,118,198,6,6,6,254,85 180 DATA 253,253,253,0,169,169,169,85,84,84,84,0,252,252,252,85 190 DATA 255,213,215,214,215,213,255,85,254,86,214,214,214,86,254,85 200 DATA 153,36,90,169,149,90,36,90,90,36,90,149,169,90,36,153 210 CHAIN "ethernet * **__Listado 2 - ETHERNET.BAS__** 10 DEF FNxy$(x,y)=CHR$(27)+"Y"+CHR$(41+y)+CHR$(60+x*2):WIDTH 255 20 n$=CHR$(0)+CHR$(5)+STRING$(3,2)+STRING$(2,3)+CHR$(4)+STRING$(3,6)+STRING$(3,7) 30 n$=n$+STRING$(3,9)+STRING$(3,10)+STRING$(3,11)+STRING$(3,12) 40 DIM m(12):m(6)=5:m(7)=5:m(9)=3:m(10)=3:m(11)=7:m(12)=7 50 DIM s(99,2):DIM b(13,13):DIM c$(12) 60 PRINT CHR$(27);"E";CHR$(27);"0";CHR$(27);"f":b$=CHR$(186)+CHR$(187) 70 bb$=STRING$(28,186):rv$=CHR$(27)+"p":nv$=CHR$(27)+"q" 80 FOR z=160 TO 184 STEP 2:c$((z-160)/2)=CHR$(z)+CHR$(z+1):NEXT z:GOSUB 90:GOTO 200 90 FOR x=1 TO 12:FOR y=1 TO 11:b(x,y)=0:PRINT FNxy$(x,y);c$(b(x,y)):NEXT y:NEXT x 100 PRINT FNxy$(0,0);bb$;FNxy$(0,12);bb$;FNxy$(0,14);bb$ 110 FOR z=0 TO 13:b(0,z)=99:b(13,z)=99:b(z,0)=99:b(z,12)=99 120 PRINT FNxy$(0,z);b$;FNxy$(13,z);b$:NEXT z:RETURN 130 x=INT(RND*12)+1:y=INT(RND*11)+1:IF b(x,y)<>0 THEN 130 ELSE RETURN 140 FOR i=0 TO add-1:IF z<>i AND s(i,1)=ia AND s(i,2)=ib THEN 160 150 NEXT i:RETURN 160 FOR s=i TO add-1:s(s,1)=s(s+1,1):s(s,2)=s(s+1,2):NEXT s:add=add-1:RETURN 170 PRINT FNxy$(5,13);:PRINT rv$;USING "########";sc;:PRINT nv$:RETURN 180 GOSUB 130:IF ABS(x-p)<2 AND ABS(y-q)<2 THEN 180 190 f=x:g=y:b(f,g)=8:PRINT FNxy$(f,g);c$(8):RETURN 200 m$=" * * Collect prizes "+c$(2)+c$(3)+c$(4)+" AND "+c$(5)+" " 210 m$=m$+ "Wipe out killers "+c$(10)+c$(9)+c$(6)+c$(7)+" * Avoid the skull "+c$(8)+" * " 220 m$=m$+"Push slaves "+c$(11)+c$(12)+" * ¯ENTER® to pass * * * ¯SPACE® to start " 230 r=r+7:k$=INKEY$:PRINT FNxy$(0,13);LEFT$(m$,28):FOR t=1 TO 70:NEXT 240 m$=RIGHT$(m$,LEN(m$)-1)+LEFT$(m$,1) 250 IF k$<>" " THEN 230 ELSE RANDOMIZE r:FOR z=0 TO 13:PRINT FNxy$(z,13);b$:NEXT z 260 sc=0:add=0:GOSUB 90:GOSUB 130:b(x,y)=1:p=x:q=y:PRINT FNxy$(x,y);c$(1):GOSUB 180 270 IF b(f,g)<>8 THEN sc=sc-5000*(b(f,g)>10):GOSUB 180:GOSUB 170 280 n=INT(RND*26)+1:GOSUB 130:b(x,y)=ASC(MID$(n$,n,1)) 290 PRINT FNxy$(x,y);c$(b(x,y)):IF RND>0.8 THEN 280 300 IF b(x,y)>5 AND b(x,y)<11 THEN s(add,1)=x:s(add,2)=y:add=add+1 310 k1$=INKEY$:IF k1$="" THEN 310 ELSE IF k1$=CHR$(13) THEN 400 ELSE k$=k1$:GOTO 330 320 k$=INKEY$:IF k$=CHR$(13) THEN 400 ELSE IF k$<>k1$ THEN 320 330 p1=p:q1=q:p=p+(k$=CHR$(1))-(k$=CHR$(6)):q=q+(k$=CHR$(31))-(k$=CHR$(30)) 340 IF p=0 THEN p=12 ELSE IF p=13 THEN p=1 ELSE IF q=0 THEN q=11 ELSE IF q=12 THEN q=1 350 PRINT FNxy$(p1,q1);c$(0);FNxy$(p,q);c$(1):cc=b(p,q) 360 IF cc>1 AND cc<6 THEN sc=sc+1000*(cc-1)-3500*(cc=5):GOSUB 170 370 IF cc>5 AND cc<11 THEN ia=p:ib=q:z=-99:GOSUB 140:sc=sc-250*(cc=9 OR cc=10)-400*(cc=6 OR cc=7):GOSUB 170 380 IF cc>10 THEN GOSUB 720:b(b1,q1)=0:b(p,q)=1:PRINT FNxy$(p,q);c$(1):IF cc>1 THEN 270 ELSE 400 390 b(p1,q1)=0:b(p,q)=1:PRINT FNxy$(p,q);c$(1):IF cc=0 THEN GOTO 320 400 IF RND>0.5 THEN GOSUB 450:GOSUB 460:GOTO 420 410 GOSUB 460:GOSUB 450 420 IF f1<>f OR g1<>g THEN 430 ELSE 500 430 IF f1<>f AND g1<>g THEN IF RND>0.5 THEN g1=g ELSE f1=f 440 GOTO 470 450 IF b(f,q)=0 THEN f1=f:g1=q:RETURN 460 IF b(p,g)=0 THEN f1=p:g1=g:RETURN 470 df=SGN(f1-f):dg=SGN(g1-g):b(f,g)=0:IF (df<>0 AND dg<>0) THEN IF RND>0.5 THEN df=0 ELSE dg=0 480 WHILE (f<>f1 OR g<>g1) AND b(f+df,g+dg)=0 490 PRINT FNxy$(f,g);c$(b(f,g)):f=f+df:g=g+dg:PRINT FNxy$(f,g);c$(8):WEND 500 b(f,g)=8:IF ABS(f-p)<2 AND ABS(g-q)<2 THEN 790 510 FOR z=0 TO add-1 520 a=s(z,1):b=s(z,2):c=b(a,b) 530 IF c=9 OR c=10 THEN GOSUB 570 540 IF c=6 OR c=7 THEN GOSUB 690 550 s(z,1)=a:s(z,2)=b:IF b(p,q)<>1 THEN 790 560 FOR t=1 TO 300:NEXT t:NEXT z:GOTO 270 570 IF RND>0.5 THEN da=1 ELSE da=-1 580 IF c=10 THEN db=da ELSE db=-da 590 cc=-99:FOR k=1 TO m(c):FOR t=1 TO time:NEXT t:PRINT FNxy$(p,q);c$(1) 600 b(a,b)=0:a1=a:b1=b 610 IF c<11 THEN 640 620 IF a+da<1 THEN a=13 ELSE IF a+da>12 THEN a=0 ELSE IF b+db<1 THEN b=12 ELSE IF b+db>11 THEN b=0 630 GOTO 600 640 IF b+db<1 OR b+db>11 THEN db=-db 650 IF a+da<1 OR a+da>12 THEN da=-da 660 a=a+da:b=b+db:IF b(a,b)<>0 THEN GOSUB 740 670 s(z,1)=a:s(z,2)=b:b(a,b)=c:PRINT FNxy$(a,b);c$(b(a,b));FNxy$(a1,b1);c$(0) 680 NEXT k:RETURN 690 IF RND>0.5 THEN x=-1 ELSE x=1 700 da=0:db=0:IF RND>0.5 THEN da=x ELSE db=x 710 GOTO 590 720 da=0:db=0:IF k$=CHR$(1) THEN da=-1 ELSE IF k$=CHR$(6) THEN da=1 ELSE IF k$=CHR$(30) THEN db=1 ELSE bd=-1 730 a=p:b=q:c=cc:z=99:PRINT FNxy$(p,q);c$(1):b(p,q)=1:b(p1,q1)=0:GOTO 590 740 cc=b(a,b):IF c<6 THEN RETURN 750 IF cc=1 THEN k=99:RETURN 760 IF c>10 THEN sc=sc-500*(cc=9 OR cc=10)-800*(cc=6 OR cc=7)-(1000*(cc-1)-3500*(cc=5))*(cc>1 AND cc<6):GOSUB 170 770 k=99:IF cc>5 AND cc<11 THEN ia=a:ib=b:GOSUB 140:RETURN 780 IF b(a,b)<>8 THEN b(a,b)=c:RETURN 790 PRINT FNxy$(0,14);rv$;" G A M E O V E R ";nv$; 800 PRINT FNxy$(5,12);rv$;USING "########";sc;:PRINT nv$:GOTO 200 ===== Controles ===== ↑ = DESPLAZAMIENTO ESPACIO = COMENZAR JUEGO RETURN = MOVER SIMBOLOS ===== 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 Ethernet 4.- Teclear run "Setup" y pulsar la tecla "ENTER" ===== Extras ===== * Listado del programa en revistas de gran tirada de la época {{:otros:Ethernet_programa_01.jpg?200}} {{:otros:Ethernet_programa_02.jpg?200}} ===== Descarga ===== * {{:otros:Ethernet (Basic).zip|Ethernet }}(juego en formato dsk, comprimido con zip)