es:office_battleships
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
es:office_battleships [2022/06/30 00:17] – [Capturas] jevicac | es:office_battleships [2022/06/30 00:23] (actual) – [Descripción] jevicac | ||
---|---|---|---|
Línea 19: | Línea 19: | ||
===== Descripción ===== | ===== Descripción ===== | ||
+ | Son las cuatro y media de la tarde de un viernes en el corazón de un ajetreado centro de la ciudad. Usted, el jefe de una gran empresa comercial, tiende a aburrirse bastante simplemente sentado allí contando los clips de papel, por lo que su alegría es abrumadora cuando llega un mensaje a través de su máquina de télex. | ||
+ | |||
+ | El mensaje dice: | ||
+ | |||
+ | Estimado, | ||
+ | |||
+ | ¿Estarías interesado en un pequeño juego conmigo para pasar el rato? | ||
+ | ¿horas? Si es así, encienda su computadora e inicie sesión en el mainframe de su empresa: área de usuario 1K97. | ||
+ | |||
+ | Atentamente, | ||
+ | |||
+ | Después de haber seguido estas instrucciones, | ||
+ | |||
+ | Si es un acierto, se le pedirá que ingrese un valor correspondiente al acierto del mueble. Una vez hecho esto, o si su oponente falló, se le pide que ingrese una referencia de cuadrícula para intentar golpear el equipo de su adversario. La computadora central, que realiza un seguimiento del juego, le informará si se anotó un golpe. | ||
+ | |||
+ | El juego continúa hasta que una de las oficinas está completamente vacía y se anuncia el ganador. Sin embargo, tenga cuidado, el mainframe detendrá el juego si hace trampa. | ||
Línea 27: | Línea 43: | ||
< | < | ||
- | + | 10 REM Office Battleships | |
+ | 20 REM by John Filsak | ||
+ | 30 REM (c) Computing with the Amstrad | ||
+ | 40 REM ------------ PCW ------------- | ||
+ | 50 RANDOMIZE PEEK(64504!): | ||
+ | 60 uon$=e$+" | ||
+ | 70 cof$=e$+" | ||
+ | 80 DEF FNat$(x, | ||
+ | 90 DIM h(6), | ||
+ | 100 GOSUB 1740:PRINT cof$: | ||
+ | 110 PRINT cls$; | ||
+ | 120 GOSUB 1790:GOSUB 180:GOSUB 630 | ||
+ | 130 GOSUB 350:GOSUB 840:GOSUB 1860 | ||
+ | 140 PRINT FNat$(30, | ||
+ | 150 ans$=" | ||
+ | 160 WEND:PRINT cls$; | ||
+ | 170 REM Opponent' | ||
+ | 180 FOR a=6 TO 0 STEP-1: | ||
+ | 190 ON z GOSUB 210, | ||
+ | 200 REM Vertical | ||
+ | 210 x=(RND*10)-a: | ||
+ | 220 y=(RND*9): | ||
+ | 230 IF x+b>9 THEN 210 | ||
+ | 240 IF p0$(x+b, | ||
+ | 250 b=b+1:IF b<=a THEN 230 | ||
+ | 260 FOR c=0 TO a: | ||
+ | 270 REM Horizontal | ||
+ | 280 y=(RND*10)-a: | ||
+ | 290 x=(RND*9): | ||
+ | 300 IF y+b>9 THEN 280 | ||
+ | 310 IF p0$(x, | ||
+ | 320 b=b+1:IF b<=a THEN 300 | ||
+ | 330 FOR c=0 TO a: | ||
+ | 340 REM Players furniture | ||
+ | 350 PRINT FNat$(17, | ||
+ | 360 PRINT: | ||
+ | 370 PRINT: | ||
+ | 380 FOR a=6 TO 0 STEP-1: | ||
+ | 390 PRINT FNat$(17, | ||
+ | 400 FOR z=0 TO a:PRINT a$(a);: | ||
+ | 410 GOSUB 1830: | ||
+ | 420 PRINT" | ||
+ | 430 GOSUB 1830: | ||
+ | 440 IF a>0 THEN PRINT" | ||
+ | 450 IF k=1 THEN 520 | ||
+ | 460 REM Vertical | ||
+ | 470 b=0:IF x+a>9 THEN GOSUB 600:GOTO 390 | ||
+ | 480 IF p1$(x+b, | ||
+ | 490 b=b+1:IF b<=a THEN 480 | ||
+ | 500 FOR c=0 TO a: | ||
+ | 510 REM Horizontal | ||
+ | 520 b=0:IF y+a>9 THEN GOSUB 600:GOTO 390 | ||
+ | 530 IF p1$(x, | ||
+ | 540 b=b+1:IF b<=a THEN 530 | ||
+ | 550 FOR c=0 TO a: | ||
+ | 560 FOR p=0 TO 9:FOR q=0 TO 9 | ||
+ | 570 IF p1$(p, | ||
+ | 580 NEXT: | ||
+ | 590 d$=" | ||
+ | 600 GOSUB 1820:PRINT FNat$(17, | ||
+ | 610 GOSUB 1860: | ||
+ | 620 REM Draw grids | ||
+ | 630 PRINT FNat$(0, | ||
+ | 640 title$=" | ||
+ | 650 PRINT FNat$(0, | ||
+ | 660 PRINT FNat$(2, | ||
+ | 670 PRINT FNat$(8, | ||
+ | 680 FOR a=0 TO 9:PRINT FNat$(13-a, | ||
+ | 690 PRINT FNat$(13-a, | ||
+ | 700 PRINT FNat$(14, | ||
+ | 710 PRINT FNat$(14, | ||
+ | 720 FOR b=0 TO 9 | ||
+ | 730 PRINT FNat$(13-a, | ||
+ | 740 PRINT FNat$(13-a, | ||
+ | 750 PRINT FNat$(2, | ||
+ | 760 PRINT FNat$(8, | ||
+ | 770 d$=" | ||
+ | 780 FOR a=0 TO 9:FOR b=0 TO 9 | ||
+ | 790 IF p0$(a, | ||
+ | 800 NEXT: | ||
+ | 810 PRINT FNat$(x, | ||
+ | 820 FOR g=0 TO 6: | ||
+ | 830 PRINT FNat$(x+g+4, | ||
+ | 840 REM Your go or opponent' | ||
+ | 850 PRINT FNat$(16, | ||
+ | 860 PRINT" | ||
+ | 870 go=0: | ||
+ | 880 go=go+1:IF go/ | ||
+ | 890 WEND | ||
+ | 900 IF empty=1 THEN PRINT FNat$(17, | ||
+ | 910 IF empty1=1 THEN PRINT FNat$(17, | ||
+ | 920 PRINT: | ||
+ | 930 RETURN | ||
+ | 940 REM Your go | ||
+ | 950 PRINT: | ||
+ | 960 PRINT" | ||
+ | 970 PRINT" | ||
+ | 980 GOSUB 1820: | ||
+ | 990 IF p2$(x, | ||
+ | 1000 p2$(x, | ||
+ | 1010 IF p2$(x, | ||
+ | 1020 FOR z=6 TO 0 STEP-1 | ||
+ | 1030 IF p2$(x, | ||
+ | 1040 NEXT | ||
+ | 1050 IF hit$<>"" | ||
+ | 1060 FOR z=6 TO 0 STEP-1 | ||
+ | 1070 IF hit$=na$(z) AND h(z)=0 THEN PRINT CHR$(7): | ||
+ | 1080 NEXT | ||
+ | 1090 FOR i=0 TO 9:FOR j=0 TO 9 | ||
+ | 1100 IF empty$<>"" | ||
+ | 1110 NEXT:NEXT | ||
+ | 1120 IF empty$<>"" | ||
+ | 1130 FOR i=0 TO 9:FOR j=0 TO 9 | ||
+ | 1140 IF p2$(i, | ||
+ | 1150 NEXT:NEXT | ||
+ | 1160 IF h(6)=0 AND h(5)=0 AND h(4)=0 AND h(3)=0 AND h(2)=0 AND h(1)=0 AND h(0)=0 THEN GOSUB 1820: | ||
+ | 1170 GOSUB 1820:PRINT FNat$(17, | ||
+ | 1180 REM Opponent' | ||
+ | 1190 check=0: | ||
+ | 1200 IF check=1 THEN GOSUB 1620:GOTO 1220 | ||
+ | 1210 xx=INT(RND*10): | ||
+ | 1220 PRINT: | ||
+ | 1230 PRINT: | ||
+ | 1240 k=0: | ||
+ | 1250 IF p1$(xx, | ||
+ | 1260 IF p1$(xx, | ||
+ | 1270 k$=UPPER$(INKEY$): | ||
+ | 1280 IF k=2 THEN c$="": | ||
+ | 1290 IF k=1 THEN GOSUB 1380 | ||
+ | 1300 IF k=11 AND k1=7 THEN c$="": | ||
+ | 1310 IF k=11 THEN h1(k1)=h1(k1)-1 | ||
+ | 1320 IF k=12 THEN PRINT: | ||
+ | 1330 IF c$=" | ||
+ | 1340 IF h1(k1)=0 THEN GOSUB 1510 | ||
+ | 1350 IF c$="" | ||
+ | 1360 GOSUB 1820:IF empty1=0 THEN PRINT FNat$(17, | ||
+ | 1370 RETURN | ||
+ | 1380 c$=" | ||
+ | 1390 FOR g=0 TO 7:IF g=7 THEN n$=" | ||
+ | 1400 n$=UPPER$(LEFT$(n$, | ||
+ | 1410 PRINT TAB(4)g+1;" | ||
+ | 1420 PRINT "Type the number corresponding to the vessel I have hit. "; | ||
+ | 1430 ans$=" | ||
+ | 1440 IF k=8 THEN PRINT FNat$(17, | ||
+ | 1450 IF k<8 THEN IF h1(k1)=0 THEN PRINT CHRS(7)" | ||
+ | 1460 IF k<8 THEN PRINT FNat$(17, | ||
+ | 1470 ans$=" | ||
+ | 1480 FOR p=0 TO 9:FOR q=0 TO 9 | ||
+ | 1490 IF p3$(p, | ||
+ | 1500 NEXT: | ||
+ | 1510 PRINT FNat$(20, | ||
+ | 1520 down=0:FOR i=0 TO 9:FOR j=0 TO 9 | ||
+ | 1530 IF p1$(i, | ||
+ | 1540 NEXT:NEXT | ||
+ | 1550 PRINT FNat$(6+k1, | ||
+ | 1560 IF h1(0)=0 AND h1(1)=0 AND h1(2)=0 AND h1(3)=0 AND h1(4)=0 AND h1(5)=0 AND h1(6)=0 THEN GOSUB 1820: | ||
+ | 1570 RETURN | ||
+ | 1580 FOR i=0 TO 9:FOR j=0 TO 9 | ||
+ | 1590 IF p3$(i, | ||
+ | 1600 NEXT: | ||
+ | 1610 REM Calculate move after hit scored | ||
+ | 1620 IF down=1 THEN 1700 | ||
+ | 1630 IF j+1<10 THEN xx=i: | ||
+ | 1640 FOR t=2 TO 9:IF p3$(xx, | ||
+ | 1650 NEXT | ||
+ | 1660 IF j-1>=0 AND xx=i THEN yy=j-1:IF p3$(xx, | ||
+ | 1670 IF i+1<10 THEN yy=j: | ||
+ | 1680 FOR t=2 TO 9:IF p3$(xx, | ||
+ | 1690 NEXT | ||
+ | 1700 IF i-1>=0 THEN yy=j: | ||
+ | 1710 PRINT FNat$(9, | ||
+ | 1720 PRINT " You must have made a mistake. Please start again."; | ||
+ | 1730 REM Assorted subroutines | ||
+ | 1740 FOR a=0 TO 6:READ na$(a): | ||
+ | 1750 initial$=" | ||
+ | 1760 DATA hat stand, | ||
+ | 1770 DATA telex machine, | ||
+ | 1780 DATA photocopier, | ||
+ | 1790 FOR a=0 TO 6: | ||
+ | 1800 NEXT:FOR a=0 TO 9:FOR b=0 TO 9 | ||
+ | 1810 p0$(a, | ||
+ | 1820 PRINT FNat$(17, | ||
+ | 1830 ans$=" | ||
+ | 1840 k=0: | ||
+ | 1850 FOR temp=1 TO 800: | ||
+ | 1860 FOR temp=0 TO 2500: | ||
</ | </ | ||
Línea 33: | Línea 234: | ||
===== Controles ===== | ===== Controles ===== | ||
- | | + | |
- | S = SUR | + | |
- | E = ESTE | + | |
- | W = OESTE | + | |
- | L = OBSERVAR | + | |
- | I = INVENTARIO | + | |
- | TOMAR, SALTAR, GOLPEAR, DECIR... | + | |
===== Carga del programa ===== | ===== Carga del programa ===== | ||
Línea 52: | Línea 247: | ||
* Listado del programa en revista de gran tirada de la época | * Listado del programa en revista de gran tirada de la época | ||
- | {{: | + | {{: |
===== Descarga ===== | ===== Descarga ===== | ||
* {{: | * {{: |
es/office_battleships.1656537444.txt.gz · Última modificación: 2022/06/30 00:17 por jevicac