Herramientas de usuario

Herramientas del sitio


es:dominoes

DOMINOES

Ficha

Autor Pete Gerrard
Computadora Amstrad PCW 8256 / 8512 / 9512
Año 1988
Género Tablero
Controles Teclado
Lenguajes Inglés
Estado Preservado

Capturas

Descripción

El dominó es un juego de mesa en el que se juega con unas fichas rectangulares numeradas, generalmente blancas por la cara y negras por el envés. El juego consta de 28 piezas siendo la ficha más grande el doble seis.

El juego se practica generalmente entre 4 jugadores en solitario. Se puede jugar de 2 a 12 personas dividiendo las fichas para ello. En este juego jugaremos nosotros contra la máquina.

El objetivo del juego es deshacerse de todas las fichas y en caso contrario gana el que más puntuación haya conseguido. Las fichas dobles son las únicas que se colocan de forma transversal.

Listado

  • Listado - DOMINOES.BAS
10 DIM mine$(14),your$(14):a=PEEK(64504!):RANDOMIZE (a):PRINT CHR$(27)+"e"
20 rev$=CHR$(27)+CHR$(112):rof$=CHR$(27)+CHR$(113)
30 PRINT CHR$(27)+CHR$(48):cls$=CHR$(27)+"E"+CHR$(27)+"H":PRINT cls$TAB(39)rev$"* DOMINOES *"rof$:PRINT:PRINT"Traditional dominoes - just match the ends up, and I go first ..."
40 a$(1)=CHR$(150):a$(2)=CHR$(153):a$(3)=CHR$(156):a$(4)=CHR$(147):a$(5)=CHR$(149):a$(6)=CHR$(154):a$(7)=CHR$(151):a$(8)=CHR$(157):a$(9)=CHR$(155):a$(10)=CHR$(158)
50 DIM d$(7,3):FOR i=1 TO 7:FOR j=1 TO 3:READ d$(i,j):NEXT j,i
60 dom$="00010203040506111213141516222324252633343536444546555666"
70 ERASE mine$,your$:DIM mine$(14),your$(14)
80 m=0:y=0:FOR i=1 TO 24:IF i/2=INT(i/2) THEN m=m+1:a=INT(RND(1)*(29-i)+1)*2-1:mine$(m)=MID$(dom$,a,2):a$=LEFT$(mine$(m),1):b$=RIGHT$(mine$(m),1):IF VAL(a$)<VAL(b$) THEN z$=b$:b$=a$:a$=z$:mine$(m)=a$+b$:GOTO 100:ELSE 100
90 y=y+1:a=INT(RND(1)*(29-i)+1)*2-1:your$(y)=MID$(dom$,a,2)
100 dom$=LEFT$(dom$,a-1)+MID$(dom$,a+2):NEXT i
110 PRINT cls$;"Your Dominoes ...":dom$=""
120 FOR i=1 TO 14:FOR j=1 TO 13:a=VAL(mine$(j)):b=VAL(mine$(j+1)):IF a<b THEN a$=mine$(j+1):mine$(j+1)=mine$(j):mine$(j)=a$
130 NEXT j,i
140 FOR i=1 TO 12:l$=LEFT$(your$(i),1):l=VAL(l$):r$=RIGHT$(your$(i),1):r=VAL(r$):x=(i-1)*6:y=2:GOSUB 450
150 PRINT a$(1);a$(6);a$(6);a$(6);a$(3):y=y+1:GOSUB 450:GOSUB 460:NEXT:GOTO 370
160 turn=0:x=0:y=12:GOSUB 450:PRINT "Use the cursor keys to move/ENTER to select/Q if you can't go":x=2:y=1:GOSUB 450
170 test=0:FOR i=1 TO 14:IF mine$(i)="" THEN test=test+1
180 NEXT:IF test=14 THEN x=0:y=0:GOSUB 450:PRINT"I win - no more dominoes left!":computer=computer+1:GOTO 540
190 a$=INKEY$:IF a$="" THEN 190
200 IF a$=CHR$(1) AND x>2 THEN x=x-6:GOSUB 450:GOTO 190
210 IF a$=CHR$(6) AND x<80 THEN x=x+6:GOSUB 450:GOTO 190
220 IF a$="q" THEN cg=cg+1:GOTO 380:ELSE IF a$<>CHR$(13) THEN 190
230 pick=(x-2)/6+1:IF your$(pick)="" THEN 190
240 l=VAL(LEFT$(your$(pick),1)):r=VAL(RIGHT$(your$(pick),1)):IF go=0 THEN 260
250 c1=VAL(LEFT$(dom$,1)):c2=VAL(RIGHT$(dom$,1)):IF l=c1 OR l=c2 OR r=c1 OR r=c2 THEN 260 ELSE 190
260 a=x:b=y:IF go=0 THEN 310
270 x=0:y=13:GOSUB 450:PRINT "Which side, left or right (L or R) ? "
280 a$=INKEY$:IF a$<>"l" AND a$<>"r" THEN 280
290 IF a$="l" AND l=c1 OR r=c1 THEN 300 ELSE IF a$="r" AND l=c2 OR r=C2 THEN 300 ELSE 280
300 cg=0:l$=MID$(STR$(l),2):r$=MID$(STR$(r),2):IF a$="l" AND l=c1 THEN dom$=r$+l$+dom$:ELSE IF a$="r" AND l=c2 THEN dom$=dom$+l$+r$ ELSE IF a$="l" AND r=c1 THEN dom$=l$+r$+dom$ ELSE IF a$="r" AND r=c2 THEN dom$=dom$+r$+l$:ELSE 280
310 nd=nd+1:FOR y=12 TO 14:x=0:GOSUB 450:PRINT SPACE$(65):NEXT:your$(pick)="":x=a-2:y=b:FOR i=1 TO 9:y=y+1:GOSUB 450:PRINT SPACE$(5):NEXT
320 x=0:y=18:FOR i=1 TO 6:y=y+1:GOSUB 450:PRINT SPACE$(90):NEXT:x=1:y=20
330 FOR i=1 TO LEN(dom$) STEP 2:a$=MID$(dom$,i,1):b$=MID$(dom$,i+1,1)
340 IF a$=b$ THEN x=x+1:y=21:GOSUB 450:PRINT a$(6):x=x-1:y=y+1:GOSUB 450:PRINT a$(5);a$;a$(5):x=x+1:y=y+1:GOSUB 450:PRINT a$(6):x=x-1:y=y+1:GOSUB 450:PRINT a$(5);b$;a$(5):x=x+1:y=y+1:GOSUB 450:PRINT a$(6):x=x+2:GOTO 360
350 y=22:GOSUB 450:PRINT a$(6);a$(10);a$(6):y=y+1:GOSUB 450:PRINT a$;a$(5);b$:y=y+1:GOSUB 450:PRINT a$(6);a$(9);a$(6):x=x+3
360 NEXT:IF turn=0 THEN 380 ELSE 160
370 REM
380 turn=1:a=0:IF go=0 THEN go=1:dom$=LEFT$(mine$(1),1)+RIGHT$(mine$(1),1):mine$(1)="":GOTO 320
390 test=0:FOR i=1 TO 14:IF your$(i)="" THEN test=test+1
400 NEXT:IF test=14 THEN x=0:y=0:GOSUB 450:PRINT "You win - no more dominoes left!":human=human+1:GOTO 540
410 a=a+1:IF a=15 THEN x=0:y=13:GOSUB 450:PRINT "I can't go ...";SPACE$(60):FOR i=1 TO 2000:NEXT:cg=cg+1:IF cg>1 THEN 500 ELSE 160
420 l$=LEFT$(mine$(a),1):r$=RIGHT$(mine$(a),1):c$=LEFT$(dom$,1):d$=RIGHT$(dom$,1):IF l$=c$ OR l$=d$ OR r$=c$ OR r$=d$ THEN 430 ELSE 410
430 nd=nd+1:cg=0:mine$(a)="":IF l$=c$ THEN dom$=r$+l$+dom$ ELSE IF l$=d$ THEN dom$=dom$+l$+r$ ELSE IF r$=c$ THEN dom$=l$+r$+dom$ ELSE dom$=dom$+r$+l$
440 GOTO 320
450 ok=FRE(""):PRINT CHR$(27)+"Y"+CHR$(32+y)+CHR$(32+x);:RETURN
460 PRINT a$(5);d$(l+1,1);a$(5):y=y+1:GOSUB 450:PRINT a$(5);d$(l+1,2);a$(5)
470 y=y+1:GOSUB 450:PRINT a$(5);d$(l+1,3);a$(5):y=y+1:GOSUB 450:PRINT a$(7);a$(6);a$(6);a$(6);a$(8)
480 y=y+1:GOSUB 450:PRINT a$(5);d$(r+1,1);a$(5):y=y+1:GOSUB 450:PRINT a$(5);d$(r+1,2);a$(5)
490 y=y+1:GOSUB 450:PRINT a$(5);d$(r+1,3);a$(5):y=y+1:GOSUB 450:PRINT a$(4);a$(6);a$(6);a$(6);a$(2):RETURN
500 x=0:y=0:GOSUB 450:PRINT "End of game - neither of us can go.":yo=0:mi=0
510 FOR i=1 TO 14:yo=yo+VAL(LEFT$(your$(i),1))+VAL(RIGHT$(your$(i),1)):mi=mi+VAL(LEFT$(mine$(i),1))+VAL(RIGHT$(mine$(i),1)):NEXT
520 FOR i=1 TO 2000:NEXT:x=0:y=0:GOSUB 450:PRINT SPACE$(75):GOSUB 450
530 IF yo>mi THEN PRINT "You lose by"yo"to"mi:computer=computer+1:ELSE IF mi>yo THEN PRINT"I lose by"mi"to"yo:human=human+1:ELSE PRINT "A tie at"yo"points each!"
540 nd=0:cg=0:turn=0:go=0:FOR i=1 TO 3000:NEXT:GOSUB 450:PRINT SPACE$(75):GOSUB 450:PRINT"Overall score now you"human"me"computer"-another game (Y or N) ?":
550 a$=INKEY$:IF a$="y" THEN 60 ELSE IF a$="n" THEN PRINT cls$;"Bye for now":END:ELSE 550
560 DATA "   ","   ","   ","   "," ¼ ","   ","¼  ","   ","  ¼","¼  "," ¼ ","  ¼"
570 DATA "¼ ¼","   ","¼ ¼","¼ ¼"," ¼ ","¼ ¼","¼ ¼","¼ ¼","¼ ¼"

Controles

      ← = Desplazarse a la izquierda
      → = Desplazarse a la derecha
      L = Colocar ficha a la izquierda
      R = Colocar ficha a la derecha
      Q = Abandonar partida
  ENTER = Seleccionar

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

Extras

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

dominoes_programa_01.jpg dominoes_programa_02.jpg dominoes_programa_03.jpg dominoes_programa_04.jpg

Descarga

  • Dominoes (juego en formato dsk, comprimido con zip)
es/dominoes.txt · Última modificación: 2022/06/30 10:51 por jevicac