Herramientas de usuario

Herramientas del sitio


es:safecrack

SAFECRACKER

Ficha

Autor Philips T Lawson
Computadora Amstrad PCW 8256 / 8512 / 9512
Año 1987
Género Puzle
Controles Teclado
Lenguajes Inglés
Estado Preservado

Capturas

Descripción

SAFECRACKER es una variación del clásico juego Mastermind en el que intentabas encontrar un patrón oculto de colores. Aquí, su objetivo es descubrir la combinación de la bóveda de Natlands que, como la mayoría de las cajas fuertes, normalmente solo le daría tres intentos para obtener el código correcto.

Afortunadamente, un empleado del banco (a quien usted está chantajeando) logró alterar la programación de la cerradura computarizada, por lo que ahora obtiene 20 intentos con un informe de progreso después de cada uno. Como ayuda adicional, su hombre interior también logró descubrir el formato del código, que brevemente es el siguiente:

El código tiene cinco segmentos, cada uno de los cuales consta de dos símbolos. El primer símbolo debe ser L o R y el segundo un número en el rango de 0 a 9. Por ejemplo, L1R3L6L2RO.

Se proporciona un informe de progreso en términos simples: blanco significa que un segmento se ha identificado correctamente; negro significa que un segmento contiene los símbolos que pertenecen a otro. Sin embargo, tenga cuidado, esto puede ser bastante engañoso en los niveles superiores, ya que el código puede contener varios segmentos con símbolos idénticos.

Hay tres niveles de dificultad que van desde el nivel 1 (el más fácil), sin símbolos duplicados en 20 movimientos, hasta el nivel 3, posibles símbolos duplicados también dentro de los 20 movimientos y un límite de tiempo de cinco minutos.

Cuando ejecute el programa, se le pedirá que ingrese un nivel. Luego, la pantalla mostrará la caja fuerte junto con un panel de combinación que refleja su entrada al mecanismo del tambor electrónico. Use el teclado para todas las entradas y para activar y desactivar el sonido, presione S. Si comete un error, use C para cancelarlo. Cuando haya decidido qué código ingresar y lo muestre en el panel, presione Enter o Return.

Solo queda desearle suerte y estar atento al guardia de seguridad.

Listado

  • Listado - SAFECRAC.BAS
10 REM         Safecracker
20 REM     By Philip T Lawson
30 REM (c) Computing With The Amstrad 
40 REM ------------ PCW ------------- 
50 DEF FNat$(x,y,a$)=CHR$(27)+"Y"+CHR$(32+y)+CHR$(32+x)+a$
60 DEFINT a-z:cl$=CHR$(27)+"E"+CHR$(27)+"H"
70 WHILE lev<1 OR lev>3:PRINT cl$
80 PRINT"Enter level.   1 - Easy"
90 PRINT,"2 - Difficult"
100 PRINT,"3 - Time limit";
110 INPUT lev
120 RANDOMIZE PEEK(64504!)
130 WEND:PRINT cl$;CHR$(27)+"f"
140 DIM x(12),y(12),a$(12),at$(20),w(20),b(20)
150 RESTORE 170:FOR a=0 TO 12:READ x(a),y(a),a$(a):NEXT
160 FOR a=0 TO 12:GOSUB 710:NEXT:GOSUB 740
170 DATA 75,20,0,71,17,1,75,17,2,79 
180 DATA 17,3,71,14,4,75,14,5,79,14 
190 DATA 6,71,11,7,75,11,8,79,11,9 
200 DATA 71,20,L,79,20,R,79,23,C
210 PRINT CHR$(27)+"p"
220 PRINT FNat$(40,5,CHR$(134)+STRING$(20,CHR$(138))+CHR$(140))
230 PRINT FNat$(40,20,CHR$(131)+STRING$(20,CHR$(138))+CHR$(137))
240 FOR a=6 TO 19:PRINT FNat$(40,a,CHR$(133)):PRINT FNat$(61,a,CHR$(133)):NEXT 
250 FOR a=6 TO 19:PRINT FNat$(41,a,STRING$(20," ")):NEXT
260 PRINT FNat$(48,10,"T H E"):PRINT FNat$(47,13,"S A F E")
270 c$="":FOR a=1 TO 5:t=INT(RND*100):IF t<50 THEN c$=c$+"R" ELSE c$=c$+"L"
280 c$=c$+RIGHT$(STR$(INT(RND*10)),1):IF a=1 OR lev>1 THEN 310
290 temp=0:FOR b=1 TO a-1:IF MID$(c$,(b*2)-1,2)=RIGHT$(c$,2) THEN temp=1
300 NEXT:IF temp=1 THEN a=a-1:c$=MID$(c$,1,a*2)
310 NEXT:PRINT CHR$(27)+"q"
320 PRINT FNat$(1,1,"Try   Code    White  Black")
330 try=1:POKE 64504!,0:POKE 64503!,0
340 REM ********************************************************
350 win=0:lose=0:WHILE win=0 AND lose=0 
360 i$="":WHILE i$="" AND i$<>CHR$(13):i$=INKEY$:WEND:i$=UPPER$(i$)
370 IF i$="S" THEN IF sou=1 THEN sou=0 ELSE sou=1
380 IF i$=CHR$(13) THEN GOSUB 840:GOTO 480
390 IF i$=" " OR ASC(i$)=7 OR i$<"0" THEN 360
400 IF i$>"9" AND i$<>"L" AND i$<>"R" AND i$<>"C" THEN 360
410 IF lev=3 AND PEEK(64503!)>4 THEN lose=1
420 a=VAL(i$):IF i$="L" THEN a=10 ELSE IF i$="R" THEN a=11 ELSE IF i$="C" THEN a=12
430 IF a<>12 AND LEN(yc$)=10 THEN 480 
440 PRINT CHR$(27)+"p":GOSUB 710
450 IF sou=0 THEN PRINT CHR$(7)
460 PRINT CHR$(27)+"q":GOSUB 710
470 IF i$="C" THEN GOSUB 680 ELSE GOSUB 660
480 WEND
490 IF lose THEN 560
500 GOSUB 630
510 PRINT FNat$(42,7,"The safe contains")
520 PRINT FNat$(43,10,"piles of lovely") 
530 PRINT FNat$(47,13,"M O N E Y")
540 PRINT FNat$(20,24,"Press spacebar to play again")
550 WHILE INKEY$<>"":WEND:RUN
560 GOSUB 630
570 IF lose=2 THEN 600
580 PRINT FNat$(47,12,"T I M E")
590 PRINT FNat$(49,14,"U P"):GOTO 540 
600 PRINT FNat$(47,7,"H A R D")
610 PRINT FNat$(47,10,"L U C K")
620 GOTO 540
630 FOR a=14 TO 1 STEP-1:FOR b=1 TO 100:NEXT
640 PRINT FNat$(41,a+5,STRING$(20," ")):NEXT
650 RETURN
660 IF LEN(yc$)=10 THEN RETURN
670 yc$=yc$+i$:PRINT FNat$(82-LEN(yc$),8,yc$):RETURN
680 IF yc$="" THEN RETURN
690 PRINT FNat$(82-LEN(yc$),8," ");:yc$=LEFT$(yc$,LEN(yc$)-1)
700 PRINT FNat$(82-LEN(yc$),8,yc$):RETURN
710 PRINT FNat$(x(a),y(a),CHR$(134)+CHR$(138)+CHR$(140))
720 PRINT FNat$(x(a),y(a)+1,CHR$(133)+a$(a)+CHR$(133))
730 PRINT FNat$(x(a),y(a)+2,CHR$(131)+CHR$(138)+CHR$(137)):RETURN
740 PRINT FNat$(71,23,CHR$(134)+STRING$(5,CHR$(138))+CHR$(140))
750 PRINT FNat$(71,24,CHR$(133)+"ENTER"+CHR$(133))
760 PRINT FNat$(71,25,CHR$(131)+STRING$(5,CHR$(138))+CHR$(137))
770 PRINT FNat$(70,7,CHR$(134)+STRING$(11,CHR$(138))+CHR$(140))
780 PRINT FNat$(70,8,CHR$(133)+"           "+CHR$(133))
790 PRINT FNat$(70,9,CHR$(131)+STRING$(11,CHR$(138))+CHR$(137))
800 PRINT FNat$(68,5,CHR$(150)+STRING$(15,CHR$(154))+CHR$(156))
810 PRINT FNat$(68,27,CHR$(147)+STRING$(15,CHR$(154))+CHR$(153))
820 FOR a=6 TO 26:PRINT FNat$(68,a,CHR$(149)):PRINT FNat$(84,a,CHR$(149)):NEXT 
830 RETURN
840 IF LEN(yc$)=10 THEN 870
850 PRINT FNat$(72,8,"  ERROR  "):yc$=""
860 FOR i=1 TO 300:NEXT:PRINT FNat$(74,8,"     "):RETURN
870 temp=0:FOR a=1 TO 5:t$=MID$(yc$,a*2-1,2)
880 IF LEFT$(t$,1)<>"L" AND LEFT$(t$,1)<>"R" THEN temp=1
890 IF RIGHT$(t$,1)>"9" THEN temp=1 
900 NEXT:IF temp=1 THEN 850
910 IF yc$=c$ THEN win=1
920 at$(try)=yc$
930 wh=0:FOR a=1 TO 5
940 IF MID$(c$,a*2-1,2)=MID$(yc$,a*2-1,2) THEN wh=wh+1:MID$(yc$,a*2-1,2)=" "
950 NEXT:bl=0:FOR a=1 TO 5:FOR b=1 TO 5 
960 IF MID$(c$,a*2-1,2)=MID$(yc$,b*2-1,2) THEN bl=bl+1
970 NEXT:NEXT:w(try)=wh:b(try)=bl
980 PRINT FNat$(0,try+2,STR$(try)+") "+at$(try)+"  ");
990 PRINT wh;"   ";bl
1000 try=try+1:IF try>20 THEN lose=2 
1010 yc$="":PRINT FNat$(72,8,"         "):RETURN
1020 END
1030 FOR a=128 TO 160:PRINT CHR$(a),a:NEXT
1040 a$="":WHILE a$="":a$=INKEY$:WEND:PRINT ASC(a$):GOTO 1040

Controles

             L = IZQUIERDA
             R = DERECHA
             C = BORRAR
             S = SONIDO ON/OFF
  ENTER/RETURN = ACEPTAR
      

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 Safecracker
4.- Teclear run "SAFECRAC" y pulsar la tecla "ENTER"

Extras

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

safecrack_01.jpg safecrack_02.jpg

Descarga

  • Safecracker(juego en formato dsk, comprimido con zip)
es/safecrack.txt · Última modificación: 2022/06/29 00:45 por jevicac