Herramientas de usuario

Herramientas del sitio


es:backgammon

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
es:backgammon [2016/05/15 13:10] – creado jevicaces:backgammon [2022/06/29 02:11] (actual) – [Extras] jevicac
Línea 1: Línea 1:
-====== Backgammon+====== BACKGAMMON ======
  
-===== Ficha =====+{{:otros:Backgammon_p1.jpg?690|}}
  
-^ Autor |        +===== Ficha ===== 
-Computadora | Amstrad PCW 8256 / 8512 / 9512 | +^ Autor | Ralf Thelen      
-^ Año |                               +Compatibilidad | Amstrad PCW 8256 / 8512 / 9512 | 
-^ Género | Juego de mesa                                |+^ Año | 1989                             
 +^ Género | Mesa                                |
 ^ Controles | Teclado                           | ^ Controles | Teclado                           |
-Lenguajes Español - Alemán                            |+Idioma | Alemán                    |
 ^ Estado | [[preservado|Preservado]] | ^ Estado | [[preservado|Preservado]] |
  
 ===== Capturas ===== ===== Capturas =====
  
-^^^ +{{:otros:Backgammon_screenshot_01.png?220}} {{:otros:Backgammon_screenshot_02.png?220}} {{:otros:Backgammon_screenshot_03.png?220}} {{:otros:Backgammon_screenshot_04.png?220}}
-{{ :juegos:capturas:Backgammon_screenshot_01.png?200 }} {{ :juegos:capturas:Backgammon_screenshot_03.png?200 }} +
-{{ :juegos:capturas:Backgammon_screenshot_02.png?200 }} {{ :juegos:capturas:Backgammon_screenshot_04.png?200 }} |+
  
 ===== Descripción ===== ===== Descripción =====
  
 +Backgammon es un juego de inteligencia y razonamiento de origen pasatiempo-culto británico. Esta versión de PCW se acompaña de unos buenos gráficos. Es un juego bipersonal, y en él, el ordenador realiza la función de oponente.
  
 +El manejo de las fichas es muy sencillo. Como siempre, salvo en el caso de que saquemos dobles, tiraremos dos veces, y tendremos que mover también dos veces, la primera con el valor de un dado y la segunda con el del otro. Para indicar el primer movimiento nos desplazaremos con las teclas de cursor seguidamente de la tecla ENTER donde se encuentre la ficha que queramos mover y, finalmente, el número de puntos que queremos avanzar, y que deberá pertenecer al valor que nos marque uno de los dos dados. En el caso que no podamos, o no deseemos mover, pulsaremos simplemente la tecla ENTER.
  
-===== Controles =====+La realización del programa es bastante buena y la estrategia de juego levantaría dolores de cabeza a los mejores aficionados a esta noble competición. Las instrucciones se hayan en la pantalla de presentación del mismo juego. 
 +===== Listado =====
  
-        ↑ = Arriba +  * **__Listado 1 - BGINIT.BAS__**
-        ← = Desplazarse a la izquierda +
-        → = Desplazarse a la derecha +
-        ↓ = Abajo +
-    ENTER = Seleccionar+
  
-===== Programa =====+<file> 
 +10 ' Einschaltmeldung 
 +20 PRINT CHR$(27)+"E"+CHR$(27)+"H"+CHR$(27)+"f"+CHR$(27)+"0" 
 +30 PRINT TAB(30)"B i t t e.. e i n e n.. M o m e n t.. G e d u l d. !" 
 +40 MEMORY &HF4FF 
 +50 RESTORE 260 
 +60 Codestart=&HF500 
 +70 Tabstart=&HF515 
 +80 FOR i=0 TO 20 
 +90 READ x:POKE Codestart+i,
 +100 NEXT i 
 +110 RESTORE 380 
 +120 READ Zeichencode 
 +130 IF Zeichencode<0 OR Zeichencode>255 THEN 960 
 +140 FOR i=0 TO 7 
 +150 READ x:POKE Tabstart+i,
 +160 NEXT i 
 +170 Charstart=Zeichencode*8+&HB800+2^16 
 +180 Highaddr=INT(Charstart/256) 
 +190 Lowaddr=Charstart-Highaddr*256 
 +200 POKE &HF510,Lowaddr 
 +210 POKE &HF511,Highaddr 
 +220 CALL Codestart 
 +230 GOTO 120 
 +240 ' 
 +250 ' Maschinencode 
 +260 DATA &H01,&H09,&HF5 
 +270 DATA &HCD,&H5A,&HFC 
 +280 DATA &HE9,&H00 
 +290 DATA &HC9 
 +300 DATA &H21,&H15,&HF5 
 +310 DATA &H01,&H08,&H00 
 +320 DATA &H11,&H00,&H00 
 +330 DATA &HED,&HB0 
 +340 DATA &HC9 
 +350 ' 
 +360 ' Daten für Zeichen 
 +370 ' Ascii-code,8* Reihen-Bytes 
 +380 DATA 255,24,24,24,24,36,36,36,36 
 +390 DATA 254,66,66,66,66,129,129,129,129 
 +400 DATA 253,1,1,1,1,2,2,2,
 +410 DATA 252,128,128,128,128,64,64,64,64 
 +420 DATA 251,32,32,32,32,16,16,16,16 
 +430 DATA 250,4,4,4,4,8,8,8,
 +440 DATA 249,17,17,17,17,34,34,34,34 
 +450 DATA 248,136,136,136,136,68,68,68,68 
 +460 DATA 247,68,68,68,68,136,136,136,136 
 +470 DATA 246,34,34,34,34,17,17,17,17 
 +480 DATA 245,16,16,16,16,32,32,32,32 
 +490 DATA 244,8,8,8,8,4,4,4,
 +500 DATA 243,64,64,64,64,128,128,128,128 
 +510 DATA 242,2,2,2,2,1,1,1,
 +520 DATA 35,255,255,255,255,255,255,255,255 
 +530 DATA 241,24,24,24,24,60,60,60,60 
 +540 DATA 240,126,126,126,126,255,255,255,255 
 +550 DATA 239,17,17,17,17,35,35,35,35 
 +560 DATA 238,136,136,136,136,196,196,196,196 
 +570 DATA 237,71,71,71,71,143,143,143,143 
 +580 DATA 236,226,226,226,226,241,241,241,241 
 +590 DATA 235,31,31,31,31,63,63,63,63 
 +600 DATA 234,248,248,248,248,252,252,252,252 
 +610 DATA 233,127,127,127,127,255,255,255,255 
 +620 DATA 232,254,254,254,254,255,255,255,255 
 +630 DATA 231,129,129,129,129,66,66,66,66 
 +640 DATA 230,36,36,36,36,24,24,24,24 
 +650 DATA 229,255,255,255,255,127,127,127,127 
 +660 DATA 228,255,255,255,255,254,254,254,254 
 +670 DATA 227,63,63,63,63,31,31,31,31 
 +680 DATA 226,252,252,252,252,248,248,248,248 
 +690 DATA 225,143,143,143,143,71,71,71,71 
 +700 DATA 224,241,241,241,241,226,226,226,226 
 +710 DATA 223,35,35,35,35,17,17,17,17 
 +720 DATA 222,196,196,196,196,136,136,136,136 
 +730 DATA 221,255,255,255,255,126,126,126,126 
 +740 DATA 220,60,60,60,60,24,24,24,24 
 +750 DATA 219,170,85,170,85,170,85,170,85 
 +760 DATA 218,0,127,112,96,96,99,99,99 
 +770 DATA 217,0,255,0,0,0,255,0,
 +780 DATA 216,0,254,14,6,6,198,198,198 
 +790 DATA 215,99,99,99,96,96,112,127,
 +800 DATA 214,0,0,255,0,0,0,255,
 +810 DATA 213,198,198,198,6,6,14,254,
 +820 DATA 212,0,127,112,96,96,99,99,99 
 +830 DATA 211,0,255,0,0,0,255,255,255 
 +840 DATA 210,0,254,14,6,6,198,198,198 
 +850 DATA 209,99,99,99,96,96,112,127,
 +860 DATA 208,255,255,255,0,0,0,255,
 +870 DATA 207,198,198,198,6,6,14,254,
 +880 DATA 206,0,0,0,0,0,0,0,60 
 +890 DATA 205,60,0,0,0,0,0,0,
 +900 DATA 204,0,0,0,60,60,0,0,
 +910 DATA 203,0,24,24,24,24,126,60,24 
 +920 DATA 202,255,231,231,231,231,129,195,231 
 +930 DATA 201,231,195,129,231,231,231,231,255 
 +940 DATA -1 
 +950 ' 
 +960 cls$=CHR$(27)+"H"+CHR$(27)+"E":PRINT cls$ 
 +970 ' Spielanleitung 
 +980 PRINT".... B A C K G A M M O N"  
 +990 PRINT:PRINT "by. Ralf Thelen "  
 +1000 PRINT"... 3507  Wachtberg"   
 +1010 PRINT:PRINT:PRINT:PRINT"Brauchen Sie eine Spielanleitung ?" 
 +1020 PRINT:PRINT"..... ( J / n)" 
 +1030 a$=UPPER$(INKEY$):WHILE a$="":a$=UPPER$(INKEY$):WEND  
 +1040 IF a$="J" THEN 1070 
 +1050 IF a$="N" THEN 1620 
 +1060 GOTO 1030 
 +1070 PRINT cls$ 
 +1080 PRINT "Backgammon - Spielregeln" 
 +1090 PRINT:PRINT "Gespielt wird aud einem Brett mit 24 Feldern" 
 +1100 PRINT "Davon sind 12 oben und 12 unten angeordnet" 
 +1110 PRINT "Jeder Spieler hat 15 Steine" 
 +1120 PRINT "Durchnummeriert würde das Spielfeld etwa so aussehen :" 
 +1130 PRINT 
 +1140 PRINT ".... 12.. 11.. 10.. 09.. 08.. 07.. 06.. 05.. 04.. 03.. 02.. 01" 
 +1150 PRINT 
 +1160 PRINT ".... 13.. 14.. 15.. 16.. 17.. 18.. 19.. 20.. 21.. 22.. 23.. 24" 
 +1170 PRINT:PRINT" Der Computer zieht von. 1 nach 24" 
 +1180 PRINT "Sie ziehen von. 24 nach 1" 
 +1190 PRINT" Das erste Ziel ist seine Steine in die letzten 6 Felder zu bringen" 
 +1200 PRINT" Für SIE sind das die Felder. 1 bis 6" 
 +1210 PRINT" Für den COMPUTER die Felder 19 bis 24" 
 +1220 GOSUB 1580 
 +1230 PRINT cls$ 
 +1240 PRINT "Gespielt wird mit zwei würfeln" 
 +1250 PRINT "Der Computer stellt Sie am rechten Rand dar !" 
 +1260 PRINT "Sie Züge müßen entsprechend der Augenzahl ausgeführt werden!" 
 +1270 PRINT "Dabei kann man nur auf Felder setzen die entweder schon von eigenen Steinen" 
 +1280 PRINT "besetzt, frei oder von maximal einem gegnerischen Stein besetzt sind"  
 +1290 PRINT "Im letzten Fall wird der gegnerische Stein geschlagen, und muß beim nächsten" 
 +1300 PRINT "mal wieder eingesetzt werden" 
 +1310 PRINT "D.h. er wird entsprechend der Augenzahl wieder ins jeweilige Ausgagsfeld" 
 +1320 PRINT "gesetzt. (Für SIE Felder 19-24)" 
 +1330 PRINT "Sind die Felder schon besetzt, so kannder Zug nicht ausgeführt werden und" 
 +1340 PRINT "der Gegner ist an der Reihe !" 
 +1350 GOSUB 1580 
 +1360 PRINT "Werden zwei gleiche Zahlen gewürfelt (Pasch), so kann man die entsprechende" 
 +1370 PRINT "Zahl. vier. mal ziehen !" 
 +1380 PRINT:PRINT "Ist es einem Spieler gelungen alle 15 Steine in die letzten 6 Felder zu" 
 +1390 PRINT "bringen, so kann er mit dem rauswürfeln beginnen!" 
 +1400 PRINT "Dabei muß er die richtige Augenzahl werfen." 
 +1410 PRINT "Der Stein auf diesem Feld wird dann ausdem Spiel genommen." 
 +1420 PRINT "Sieger ist er als erster keine Steine mehr hat !" 
 +1430 GOSUB 1580 
 +1440 PRINT cls$ 
 +1450 PRINT " BEDIENUNG" 
 +1460 PRINT " Setzen sie mit Hilfe der Cursortasten den Pfeil unter den Stein den Sie." 
 +1470 PRINT " nehmen wollen." 
 +1480 PRINT " Druecken Sie RETURN. ---> Der Pfeil wird invertiert !" 
 +1490 PRINT " Setzen Sie den Pfeil unter das Feld auf welches der Stein gesetzt werden soll" 
 +1500 PRINT " Druecken Sie Return. ---> Der Zug wird ausgefuehrt" 
 +1510 PRINT " Koennen Sie einen Zug nicht ausfuehren so Druecken Sie. > n <" 
 +1520 PRINT " Die entsprechende Zahl wird dann geloescht !" 
 +1530 PRINT " Beim raus oder reinwuerfeln gehen sie auf das entsprechende Feld" 
 +1540 PRINT " und druecken zweimal RETURN." 
 +1550 PRINT:PRINT ".......... V i e l. S p a s s " 
 +1560 GOSUB 1580 
 +1570 GOTO 960 
 +1580 PRINT:PRINT"Weiter mit. > Space <. Taste !" 
 +1590 a$=INKEY$:WHILE a$<>" ":a$=INKEY$:WEND 
 +1600 PRINT cls$ 
 +1610 RETURN 
 +1620 RUN "backgam
  
-{{:otros:Backgammon_programa_01.jpg?200|}} +</file> 
-{{:otros:Backgammon_programa_02.jpg?200|}} + 
-{{:otros:Backgammon_programa_03.jpg?200|}} +  * **__Listado 2 - BACKGAM.BAS__** 
-{{:otros:Backgammon_programa_04.jpg?200|}} + 
-{{:otros:Backgammon_programa_05.jpg?200|}} +<file> 
-{{:otros:Backgammon_programa_06.jpg?200|}} +10 DEFINT a-z 
-{{:otros:Backgammon_programa_07.jpg?200|}}+20 OPTION BASE 1 
 +30 DIM zahl(4):DIM flagz(4):DIM flag(4):DIM bew(24):DIM walt(24):DIM wneu(24):DIM swalt(24):DIM swneu(24) 
 +40 DEF FNloc$(u,v)=CHR$(27)+"Y"+CHR$(32+u)+CHR$(32+v) 
 +50 DEF FNr2$=CHR$(27)+"C"+CHR$(27)+"C" 
 +60 DEF FNraussw$(raussw)=CHR$(27)+"X"+CHR$(31+2*raussw)+CHR$(119)+CHR$(35)+CHR$(34) 
 +70 DEF FNrausw$(rausw)=CHR$(27)+"X"+CHR$(63-2*rausw)+CHR$(119)+CHR$(35)+CHR$(34) 
 +80 DEF FNmat$(i,k,po)=CHR$(27)+"X"+CHR$(32+2*k+(po*(30-4*k)))+CHR$(117-7*i+(po*(-91+7*(i+(i-12)))))+CHR$(34)+CHR$(39) 
 +90 zaehl=10:weg=1:zu=0:mal=0:posi=4:po=0:rausw=0:raussw=0 
 +100 zahl1$=CHR$(27)+"X"+CHR$(44)+CHR$(119)+CHR$(34)+CHR$(34) 
 +110 zahl2$=CHR$(27)+"X"+CHR$(50)+CHR$(119)+CHR$(35)+CHR$(34) 
 +120 meld1$=CHR$(27)+"X"+CHR$(63)+CHR$(32)+CHR$(32)+CHR$(120) 
 +130 meld2$=CHR$(27)+"X"+CHR$(32)+CHR$(32)+CHR$(32)+CHR$(120) 
 +140 cls$=CHR$(27)+"E"+CHR$(27)+"H" 
 +150 PRINT cls$+CHR$(27)+"o"+CHR$(27)+"f" 
 +160 ' 
 +170 ' Umrabdung zeichnen 
 +180 PRINT STRING$(86,CHR$(219)) 
 +190 FOR i=1 TO 28:PRINT CHR$(219);STRING$(84," ");CHR$(219):NEXT i 
 +200 PRINT STRING$(86,CHR$(219)) 
 +210 ' 
 +220 ' Felder zeichnen (unten) 
 +230 FOR i=1 TO 12 STEP 2 
 +240 PRINT CHR$(27)+"X"+CHR$(50)+CHR$(33+(i-1)*7)+CHR$(43)+CHR$(39); 
 +250 GOSUB 770:GOSUB 810:GOSUB 840:GOSUB 870:GOSUB 900:GOSUB 930 
 +260 PRINT CHR$(27)+"X"+CHR$(50)+CHR$(33+(i)*7)+CHR$(43)+CHR$(39); 
 +270 GOSUB 970:GOSUB 1010:GOSUB 1040:GOSUB 1070:GOSUB 1100:GOSUB 1130 
 +280 NEXT i 
 +290 ' Felder zeichnen (oben) 
 +300 FOR i=13 TO 24 STEP 2 
 +310 PRINT CHR$(27)+"X"+CHR$(34)+CHR$(33+(i-13)*7)+CHR$(43)+CHR$(39); 
 +320 GOSUB 1370:GOSUB 1410:GOSUB 1440:GOSUB 1470:GOSUB 1500:GOSUB 1530 
 +330 PRINT CHR$(27)+"X"+CHR$(34)+CHR$(33+(i-12)*7)+CHR$(43)+CHR$(39); 
 +340 GOSUB 1170:GOSUB 1210:GOSUB 1240:GOSUB 1270:GOSUB 1300:GOSUB 1330 
 +350 NEXT i 
 +360 ' 
 +370 ' Grundposition festlegen ! 
 +380 wneu(24)=2:wneu(13)=5:wneu(8)=3:wneu(6)=5:GOSUB 2020 
 +390 swneu(1)=2:swneu(12)=5:swneu(17)=3:swneu(19)=5:GOSUB 2230 
 +400 ' 
 +410 ' Zug Spieler ausführen 
 +420 GOTO 440 
 +430 PRINT meld1$:PRINT:PRINT meld2$:PRINT:GOSUB 1570:GOSUB 3650 
 +440 PRINT meld2$;:PRINT:PRINT meld1$;:PRINT 
 +450 PRINT TAB(25)"... w ü r f e l n.. m i t.. T a s t e... > w <"; 
 +460 pos$=UPPER$(INKEY$):IF pos$="" GOTO 460 
 +470 IF pos$="W" THEN GOSUB 1570 ELSE GOTO 460 
 +480 IF po=1 THEN 610 
 +490 PRINT meld1$;:PRINT:po=0 
 +500 IF zu=0 THEN PRINT FNloc$(32,posi);"^"; ELSE PRINT FNloc$(32,posi);CHR$(201); 
 +510 pos$=UPPER$(INKEY$):IF pos$="" GOTO 510 
 +520 IF pos$=CHR$(6) THEN posi=posi+7 
 +530 IF pos$=CHR$(1) THEN posi=posi-7 
 +540 IF pos$=CHR$(31) THEN 610  
 +550 IF pos$=CHR$(13) THEN 2540 
 +560 IF pos$="N" THEN 3210 
 +570 IF posi<4 THEN posi=4:GOTO 610 
 +580 IF posi>81 THEN posi=81 
 +590 PRINT 
 +600 GOTO 500 
 +610 PRINT 
 +620 PRINT meld2$;:po=1 
 +630 IF zu=0 THEN PRINT FNloc$(1,posi);CHR$(203); ELSE PRINT FNloc$(1,posi);CHR$(202); 
 +640 pos$=UPPER$(INKEY$):IF pos$="" GOTO 640 
 +650 IF pos$=CHR$(6) THEN posi=posi+7 
 +660 IF pos$=CHR$(1) THEN posi=posi-7 
 +670 IF pos$=CHR$(30) THEN PRINT:GOTO 490 
 +680 IF pos$=CHR$(13) THEN 2540 
 +690 IF pos$="N" THEN 3210 
 +700 IF posi<4 THEN posi=4:PRINT:GOTO 490 
 +710 IF posi>81 THEN posi=81 
 +720 PRINT 
 +730 GOTO 630 
 +740 ' 
 +750 ' U N T E R P R O G R A M M E 
 +760 ' 
 +770 ' Schwarzes Feld ohne Steine zeichnen (v.unten) 
 +780 PRINT "   "+CHR$(255)"   " 
 +790 PRINT"   "+CHR$(254)"   " 
 +800 RETURN 
 +810 PRINT "  "+CHR$(253)+CHR$(255)+CHR$(252)" 
 +820 PRINT "  "+CHR$(250)+CHR$(254)+CHR$(251)" 
 +830 RETURN 
 +840 PRINT"  "+CHR$(249)+" "+CHR$(248)" 
 +850 PRINT"  "+CHR$(247)+" "+CHR$(246)" 
 +860 RETURN 
 +870 PRINT " "+CHR$(253)+CHR$(245)+" " +CHR$(244)+CHR$(252)"
 +880 PRINT " "+CHR$(250)+CHR$(243)+" "+CHR$(242)+CHR$(251)"
 +890 RETURN 
 +900 PRINT" "+CHR$(249)+"   "+CHR$(248)"
 +910 PRINT" "+CHR$(247)+"   "+CHR$(246)"
 +920 RETURN 
 +930 PRINT CHR$(253)+CHR$(245)+"   "+CHR$(244)+CHR$(252) 
 +940 PRINT CHR$(250)+CHR$(243)+"   "+CHR$(242)+CHR$(251); 
 +950 RETURN 
 +960 ' 
 +970 ' weißes Feld ohne Steine zeichnen (v.unten) 
 +980 PRINT "   "+CHR$(255)"   " 
 +990 PRINT"   "+CHR$(254)"   " 
 +1000 RETURN 
 +1010 PRINT "  "+CHR$(253)+CHR$(241)+CHR$(252)" 
 +1020 PRINT "  "+CHR$(250)+CHR$(240)+CHR$(251)" 
 +1030 RETURN 
 +1040 PRINT "  "+CHR$(239)+"#"+CHR$(238)" 
 +1050 PRINT "  "+CHR$(237)+"#"+CHR$(236)" 
 +1060 RETURN 
 +1070 PRINT " "+CHR$(253)+CHR$(235)+"#"+CHR$(234)+CHR$(252)"
 +1080 PRINT" "+CHR$(250)+CHR$(233)+"#"+CHR$(232)+CHR$(251)"
 +1090 RETURN 
 +1100 PRINT" "+CHR$(239)+"###"+CHR$(238)"
 +1110 PRINT" "+CHR$(237)+"###"+CHR$(236)"
 +1120 RETURN 
 +1130 PRINT CHR$(253)+CHR$(235)+"###"+CHR$(234)+CHR$(252) 
 +1140 PRINT CHR$(250)+CHR$(233)+"###"+CHR$(232)+CHR$(251); 
 +1150 RETURN 
 +1160 ' 
 +1170 ' Schwarzes Feld ohne Steine zeichnen (v.oben) 
 +1180 PRINT CHR$(244)+CHR$(252)+"   "+CHR$(253)+CHR$(245) 
 +1190 PRINT CHR$(242)+CHR$(251)+"   "+CHR$(250)+CHR$(243) 
 +1200 RETURN 
 +1210 PRINT " "+CHR$(248)+"   "+CHR$(249)+"
 +1220 PRINT " "+CHR$(246)+"   "+CHR$(247)+"
 +1230 RETURN 
 +1240 PRINT " "+CHR$(244)+CHR$(252)+" "+CHR$(253)+CHR$(245)+"
 +1250 PRINT " "+CHR$(242)+CHR$(251)+" "+CHR$(250)+CHR$(243)+"
 +1260 RETURN 
 +1270 PRINT "  "+CHR$(248)+" "+CHR$(249)+" 
 +1280 PRINT "  "+CHR$(246)+" "+CHR$(247)+" 
 +1290 RETURN 
 +1300 PRINT "  "+CHR$(244)+CHR$(231)+CHR$(245)+" 
 +1310 PRINT "  "+CHR$(242)+CHR$(230)+CHR$(243)+" 
 +1320 RETURN 
 +1330 PRINT "   "+CHR$(231)+"   " 
 +1340 PRINT "   "+CHR$(230)+"   "; 
 +1350 RETURN 
 +1360 ' 
 +1370 ' Weißes Feld ohne Steine zeichnen (v.oben) 
 +1380 PRINT CHR$(244)+CHR$(229)+"###"+CHR$(228)+CHR$(245) 
 +1390 PRINT CHR$(242)+CHR$(227)+"###"+CHR$(226)+CHR$(243) 
 +1400 RETURN 
 +1410 PRINT " "+CHR$(225)+"###"+CHR$(224)"
 +1420 PRINT " "+CHR$(223)+"###"+CHR$(222)"
 +1430 RETURN 
 +1440 PRINT " "+CHR$(244)+CHR$(229)+"#"+CHR$(228)+CHR$(245)+"
 +1450 PRINT " "+CHR$(242)+CHR$(227)+"#"+CHR$(226)+CHR$(243)+"
 +1460 RETURN 
 +1470 PRINT "  "+CHR$(225)+"#"+CHR$(224)" 
 +1480 PRINT "  "+CHR$(223)+"#"+CHR$(222)" 
 +1490 RETURN 
 +1500 PRINT "  "+CHR$(244)+CHR$(221)+CHR$(245)" 
 +1510 PRINT "  "+CHR$(242)+CHR$(220)+CHR$(243)" 
 +1520 RETURN 
 +1530 PRINT"   "+CHR$(231)"   " 
 +1540 PRINT "   "+CHR$(230)"   "; 
 +1550 RETURN 
 +1560 ' 
 +1570 ' Würfeln und Würfel darstellen 
 +1580 zaehl=zaehl+1 
 +1590 PRINT CHR$(7);:PRINT 
 +1600 IF zaehl<=10 THEN 1630 ELSE zaehl=0 
 +1610 zufall=VAL(HEX$(PEEK(&HFBF8))) 
 +1620 RANDOMIZE zufall 
 +1630 zahl(1)=INT(6*RND)+1 
 +1640 zahl(2)=INT(6*RND)+1 
 +1650 IF zahl(1)=zahl(2) THEN pasch=4 ELSE pasch=2 
 +1660 IF pasch=4 THEN zahl(3)=zahl(1):zahl(4)=zahl(1) 
 +1670 PRINT zahl1$; 
 +1680 ON zahl(1) GOSUB 1720,1750,1780,1810,1840,1870 
 +1690 PRINT zahl2$; 
 +1700 ON zahl(2) GOSUB 1720,1750,1780,1810,1840,1870 
 +1710 RETURN 
 +1720 PRINT " "+CHR$(206)+" "; 
 +1730 PRINT " "+CHR$(205)+" "; 
 +1740 RETURN 
 +1750 PRINT CHR$(204)+"  "; 
 +1760 PRINT "  "+CHR$(204); 
 +1770 RETURN 
 +1780 PRINT CHR$(204)+CHR$(206)+" "; 
 +1790 PRINT " "+CHR$(205)+CHR$(204); 
 +1800 RETURN 
 +1810 PRINT CHR$(204)+" "+CHR$(204); 
 +1820 PRINT CHR$(204)+" "+CHR$(204); 
 +1830 RETURN 
 +1840 PRINT CHR$(204)+CHR$(206)+CHR$(204); 
 +1850 PRINT CHR$(204)+CHR$(205)+CHR$(204); 
 +1860 RETURN 
 +1870 PRINT CHR$(204)+CHR$(204)+CHR$(204); 
 +1880 PRINT CHR$(204)+CHR$(204)+CHR$(204); 
 +1890 RETURN 
 +1900 ' 
 +1910 ' Stein ( sw ) zeichnen 
 +1920 PRINT FNr2$+CHR$(218)+CHR$(217)+CHR$(216) 
 +1930 PRINT FNr2$+CHR$(215)+CHR$(214)+CHR$(213) 
 +1940 RETURN 
 +1950 ' 
 +1960 ' Stein ( w ) zeichnen 
 +1970 PRINT FNr2$+CHR$(212)+CHR$(211)+CHR$(210) 
 +1980 PRINT FNr2$+CHR$(209)+CHR$(208)+CHR$(207) 
 +1990 RETURN 
 +2000 PRINT CHR$(27)+"X"+CHR$(32)+CHR$(32)+CHR$(63)+CHR$(121):PRINT CHR$(27)+"E"+CHR$(27)+"H":PRINT CHR$(27)+"e":STOP 
 +2010 ' 
 +2020 ' Neue Position zeichnen für Spieler 
 +2030 FOR i=24 TO 1 STEP -1 
 +2040 IF i>12 THEN poruf=1 ELSE poruf=0 
 +2050 erg=wneu(i)-walt(i) 
 +2060 IF erg=0 THEN 2170 
 +2070 IF erg<0 THEN 2120 
 +2080 FOR k=walt(i)+1 TO wneu(i) 
 +2090 PRINT FNmat$(i,k,poruf);:GOSUB 1960 
 +2100 NEXT k 
 +2110 GOTO 2170 
 +2120 PRINT FNmat$(i,walt(i),poruf); 
 +2130 IF i/2<>INT(i/2) AND i<13 THEN ON walt(i) GOSUB 1180,1210,1240,1270,1300:GOTO 2170 
 +2140 IF i/2<>INT(i/2) AND i>12 THEN ON walt(i) GOSUB 930,900,870,840,810:GOTO 2170 
 +2150 IF i<13 THEN ON walt(i) GOSUB 1380,1410,1440,1470,1500:GOTO 2170 
 +2160 ON walt(i) GOSUB 1130,1100,1070,1040,1010 
 +2170 NEXT i 
 +2180 FOR i=1 TO 24 
 +2190 walt(i)=wneu(i) 
 +2200 NEXT i 
 +2210 RETURN 
 +2220 ' 
 +2230 PRINT CHR$(7);:' SNeue Position zeichnen für Computer 
 +2240 FOR i=1 TO 24 
 +2250 IF i>12 THEN poruf=1 ELSE poruf=0 
 +2260 erg=swneu(i)-swalt(i) 
 +2270 IF erg=0 THEN 2390 
 +2280 IF erg<0 THEN 2330 
 +2290 FOR k=swalt(i)+1 TO swneu(i) 
 +2300 PRINT FNmat$(i,k,poruf);:GOSUB 1910 
 +2310 NEXT k 
 +2320 GOTO 2390 
 +2330 PRINT FNmat$(i,swalt(i),poruf); 
 +2340 PRINT FNmat$(i,swalt(i),poruf); 
 +2350 IF i/2<>INT(i/2) AND i<13 THEN ON swalt(i) GOSUB 1180,1210,1240,1270,1300:GOTO 2390 
 +2360 IF i/2<>INT(i/2) AND i>12 THEN ON swalt(i) GOSUB 930,900,870,840,810 :GOTO 2390 
 +2370 IF i<13 THEN ON swalt(i) GOSUB 1380,1410,1440,1470,1500:GOTO 2390 
 +2380 ON swalt(i) GOSUB 1130,1100,1070,1040,1010 
 +2390 NEXT i 
 +2400 FOR i=1 TO 24 
 +2410 swalt(i)=swneu(i) 
 +2420 NEXT i 
 +2430 ' 
 +2440 ' Weißer Stein raus eintragen 
 +2450 FOR i=1 TO 24 
 +2460 IF swneu(i)>0 AND wneu(i)=1 THEN 2490 
 +2470 NEXT i 
 +2480 RETURN 
 +2490 wraus=wraus+1 
 +2500 PRINT FNrausw$(wraus);:PRINT CHR$(212)+CHR$(211)+CHR$(210);:PRINT CHR$(209)+CHR$(208)+CHR$(207); 
 +2510 walt(i)=walt(i)-1 : wneu(i)=wneu(i)-1 
 +2520 RETURN 
 +2530 ' 
 +2540 ' Zug Spieler eintragen 
 +2550 IF weg=1 GOTO 2600 
 +2560 IF po=1 GOTO 2580 
 +2570 nzpos=(posi+3)/7+12:wneu(nzpos)=wneu(nzpos)+1:GOTO 2630 
 +2580 nzpos=13-((posi+3)/7):wneu(nzpos)=wneu(nzpos)+1 
 +2590 GOTO 2630 
 +2600 IF po=1 GOTO 2620 
 +2610 nwpos=(posi+3)/7+12:wneu(nwpos)=wneu(nwpos)-1:GOTO 2630 
 +2620 nwpos=13-((posi+3)/7):wneu(nwpos)=wneu(nwpos)-1 
 +2630 SWAP zu,weg 
 +2640 mal=mal+1:IF mal=2*pasch THEN mal=0 
 +2650 IF zu=0 THEN GOTO 2710 
 +2660 IF zu=0 THEN GOSUB 2020:GOSUB 3450 
 +2670 IF mal=0 THEN 430 
 +2680 IF po=0 GOTO 490 
 +2690 GOTO 620 
 +2700 ' 
 +2710 ' Zug auf Gültigkeit prüfen 
 +2720 endph=0 
 +2730 FOR i=24 TO 7 STEP -1 
 +2740 endph=endph+walt(i) 
 +2750 NEXT i 
 +2760 IF wraus>0 THEN 3550 
 +2770 IF nwpos-nzpos<0 THEN 2930 
 +2780 IF nwpos-nzpos=0 AND endph=0 THEN 3040 
 +2790 IF nwpos-nzpos=0 THEN 2950 
 +2800 FOR i=1 TO 24 
 +2810 IF wneu(i)<0 AND swneu(i)>0 THEN 2940 
 +2820 IF wneu(i)<0 THEN 2900 
 +2830 IF wneu(i)>5 THEN 2910 
 +2840 IF wneu(i)>0 AND swneu(i)>1 THEN 2920 
 +2850 NEXT i 
 +2860 FOR i=1 TO pasch 
 +2870 IF nwpos-nzpos=zahl(i) THEN zahl(i)=0:GOTO 2660 
 +2880 NEXT i 
 +2890 GOTO 2950 
 +2900 PRINT:PRINT "Es liegt kein Stein mehr auf dem Ausgangsfeld !";:GOTO 2960 
 +2910 PRINT:PRINT "Nicht mehr als 5 Steine auf ein Feld legen !";:GOTO 2960 
 +2920 PRINT:PRINT "Das istm e i n. Feld !";:GOTO 2960 
 +2930 PRINT:PRINT "Nicht Rückwärts ziehen !";:GOTO 2960 
 +2940 PRINT:PRINT "Das istm e i n. Stein";:GOTO 2960 
 +2950 PRINT:PRINT "Falsche Augenzahl !";:GOTO 2960 
 +2960 wneu(nzpos)=wneu(nzpos)-1 
 +2970 wneu(nwpos)=wneu(nwpos)+1 
 +2980 FOR i=1 TO 2000 
 +2990 NEXT i 
 +3000 PRINT:mal=mal-2 
 +3010 IF po=0 GOTO 490 
 +3020 GOTO 620 
 +3030 ' 
 +3040 ' Endphase für Spieler 
 +3050 FOR i=1 TO pasch 
 +3060 IF nwpos=zahl(i) THEN zahl(i)=0 : wneu(nwpos)=wneu(nwpos)-1 : GOTO 3090 
 +3070 NEXT i 
 +3080 PRINT:PRINT "Falsche Augenzahl !";:GOTO 2980 
 +3090 sieg=0 
 +3100 FOR i=1 TO 6 : sieg=sieg+wneu(i) : NEXT i 
 +3110 IF sieg<>0 THEN 2660 
 +3120 PRINT meld1$;:PRINT:PRINT meld2$;:PRINT" SIEhaben. g e w o n n e n. !!!"; 
 +3130 PRINT "... Noch ein Speil.. (J/N) ?";:INPUT ent$ 
 +3140 ent$=UPPER$(ent$):IF ent$="J" THEN 10 
 +3150 PRINT CHR$(27)+"X"+CHR$(32)+CHR$(32)+CHR$(62)+CHR$(121) 
 +3160 PRINT CHR$(27)+"e" 
 +3170 PRINT CHR$(27)+"E"+CHR$(27)+"H" 
 +3180 PRINT "Auf Wiedersehen "; 
 +3190 STOP 
 +3200 ' 
 +3210 ' Zahl nicht setzbar 
 +3220 FOR i=1 TO pasch 
 +3230 IF zahl(i)<>0 THEN zahlx=zahl(i):GOTO 3250 
 +3240 NEXT i 
 +3250 FOR i=24 TO 1 STEP -1 
 +3260 IF wraus>0 AND swneu(25-zahlx)<2 THEN 3340 
 +3270 IF wraus>0 THEN  3320 
 +3280 IF endph=0 AND i-zahlx=0 AND wneu(zahlx) >0 THEN 3340 
 +3290 IF i-zahlx=0 THEN 3380 
 +3300 IF wneu(i)=0 THEN 3320 
 +3310 IF wneu(i-zahlx)<5 AND swneu(i-zahlx) <2 THEN 3340 
 +3320 NEXT i 
 +3330 GOTO 3380 
 +3340 PRINT:PRINT "Die Zahl kann gesetzt werden !"; 
 +3350 FOR i=1 TO 2000:NEXT i 
 +3360 IF po=0 THEN 490 
 +3370 GOTO 610 
 +3380 FOR i=1 TO 4 
 +3390 IF zahl(i)<>0 THEN zahl(i)=0 : GOTO 3410 
 +3400 NEXT i 
 +3410 PRINT CHR$(7);CHR$(7);:mal=mal+2:IF mal=2*pasch THEN mal=0:GOTO 430 
 +3420 IF po=0 THEN 490 
 +3430 GOTO 620 
 +3440 ' 
 +3450 ' Schwarzer Stein raus eintragen 
 +3460 FOR i=1 TO 24 
 +3470 IF swneu(i)=1 AND wneu(i)>0 THEN 3500 
 +3480 NEXT i 
 +3490 RETURN 
 +3500 swraus=swraus+1 
 +3510 PRINT FNraussw$(swraus);:PRINT CHR$(218)+CHR$(217)+CHR$(216);:PRINT CHR$(215)+CHR$(214)+CHR$(213); 
 +3520 swalt(i)=swalt(i)-1:swneu(i)=swneu(i)-1 
 +3530 RETURN 
 +3540 ' 
 +3550 ' weißen Stein erst einsetzen ! 
 +3560 IF nwpos-nzpos<>0 THEN 3600 
 +3570 FOR i=1 TO pasch 
 +3580 IF nwpos=25-zahl(i) AND swneu(nwpos)<2 THEN zahl(i)=0 : GOTO 3610 
 +3590 NEXT i 
 +3600 PRINT:PRINT"Erst Stein wieder einsetzen !";:GOTO 2960 
 +3610 wneu(nwpos)=wneu(nwpos)+1:PRINT FNrausw$(wraus);:PRINT "   ";:PRINT "   "; 
 +3620 wraus=wraus-1 
 +3630 GOTO 2660 
 +3640 ' 
 +3650 bewalt=-10000:bewmal=0:flaglz=25:fla2z=25:.. Zug Computer. ------------- 
 +3660 FOR i=1 TO 24:bew(i)=swalt(i):NEXT i 
 +3670 coendph=0 
 +3680 FOR i=1 TO 18 
 +3690 coendph=coenph+swalt(i) 
 +3700 NEXT i 
 +3710 IF swraus>0 THEN 3950 
 +3720 IF coendph=0 THEN 4250 
 +3730 IF pasch=4 THEN 4370 
 +3740 IF zahl(1)=0 AND zahl(2)=0 THEN RETURN 
 +3750 IF zahl(1)=0 OR zahl(2)=0 THEN 4670 
 +3760 FOR i=1 TO 24-zahl(1) 
 +3770 IF bew(i)=0 OR bew(i+zahl(1))=5 OR wneu(i+zahl(1))>1 THEN 3870 
 +3780 bew(i)=bew(i)-1 : bew(i+zahl(1))=bew(i+zahl(1))+1 
 +3790 FOR j=1 TO 24-zahl(2) 
 +3800 IF bew(j)=0 OR bew(j+zahl(2))=5 OR wneu(j+zahl(2))>1 THEN 3840 
 +3810 bew(j)=bew(j)-1 : bew(j+zahl(2))=bew(j+zahl(2))+1 
 +3820 GOSUB 4110 
 +3830 bew(j)=bew(j)+1:bew(j+zahl(2))=bew(j+zahl(2))-1 
 +3840 NEXT j 
 +3850 IF flag2z=25 THEN GOSUB 4110 
 +3860 bew(i)=bew(i)+1 : bew(i+zahl(1))=bew(i+zahl(1))-1 
 +3870 NEXT i 
 +3880 bewmal=bewmal+1 
 +3890 IF bewmal=2 THEN 3910 
 +3900 SWAP zahl(1),zahl(2) : GOTO 3750 
 +3910 IF flag1z<25 THEN swneu(flag1w)=swneu(flag1w)-1:swneu(flag1z)=swneu(flag1z)+1:GOSUB 2230 
 +3920 IF flag2z<25 THEN swneu(flag2w)=swneu(flag2w)-1:swneu(flag2z)=swneu(flag2z)+1:GOSUB 2230 
 +3930 RETURN 
 +3940 ' 
 +3950 ' sw-Steine wieder einsetzen 
 +3960 FOR i=1 TO 6 
 +3970 FOR j=1 TO pasch 
 +3980 IF wneu(i)=1 AND zahl(j)=i THEN zahl(j)=0:GOTO 4070 
 +3990 NEXT j 
 +4000 NEXT i 
 +4010 FOR i=1 TO 6 
 +4020 FOR j=1 TO pasch 
 +4030 IF swneu(i)<5 AND wneu(i)=0 AND zahl(j)=i THEN zahl(j)=0:GOTO 4070 
 +4040 NEXT j 
 +4050 NEXT i 
 +4060 PRINT CHR$(7)+CHR$(7);:RETURN 
 +4070 PRINT FNraussw$(swraus);:PRINT"   ";:PRINT"   "; 
 +4080 swneu(i)=swneu(i)+1 : bew(i)=bew(i)+1 : GOSUB 2230 : swraus=swraus-1 
 +4090 GOTO 3710 
 +4100 ' 
 +4110 'CBewertung 
 +4120 bewneu=0 
 +4130 FOR q=1 TO 24 
 +4140 IF bew(q)=1 THEN bewneu=bewneu-10 
 +4150 NEXT q 
 +4160 IF i+zahl(1)>24 THEN 4180 
 +4170 IF wneu(i+zahl(1))=1 THEN bewneu=bewneu+9 
 +4180 IF j+zahl(2)>24 THEN 4200 
 +4190 IF wneu(j+zahl(2))=1 THEN bewneu=bewneu+9 
 +4200 IF bewneu<=bewalt THEN RETURN 
 +4210 flag1w=i : flag1z=i+zahl(1) 
 +4220 flag2w=j : flag2z=j+zahl(2) 
 +4230 bewalt=bewneu 
 +4240 RETURN 
 +4250 ' 
 +4260 ' Endphase für Computer 
 +4270 FOR a=19 TO 24 
 +4280 FOR b=1 TO pasch 
 +4290 IF swalt(a)>0 AND zahl(b)=25-a THEN zahl(b)=0:swneu(a)=swneu(a)-1:bew(a)=bew(a)-1 : GOSUB 2230 
 +4300 NEXT b 
 +4310 NEXT a 
 +4320 cosieg=0 
 +4330 FOR i=19 TO 24: cosieg=cosieg+swalt(i) : NEXT i 
 +4340 IF cosieg<>0 THEN 3730 
 +4350 PRINT meld1$;:PRINT:PRINT meld2$;:PRINT " ICH.. habe. g e w o n n e n !!!"; 
 +4360 GOTO 3130 
 +4370 ' p a s c h -- 
 +4380 FOR q=1 TO 4 : flag(q)=0 : NEXT q 
 +4390 ma=MAX(zahl(1),zahl(2),zahl(3),zahl(4)) 
 +4400 IF ma=0 THEN RETURN 
 +4410 anzahl=(zahl(1)+zahl(2)+zahl(3)+zahl(4))/ma 
 +4420 IF anzahl=1 THEN 4670 
 +4430 IF anzahl=2 THEN zahl(1)=ma : zahl(2)=ma : GOTO 3760 
 +4440 FOR xyz=0 TO 23 
 +4450 FOR i=1 TO 24:bew(i)=swalt(i):NEXT i 
 +4460 FOR i=1 TO anzahl 
 +4470 FOR j=1 TO 24-(ma+xyz) 
 +4480 IF bew(j)=0 OR bew(j+ma)=5 OR wneu(j+ma)>1 THEN 4500 
 +4490 bew(j)=bew(j)-1 : bew(j+ma)=bew(j+ma)+1 : flag(i)=j : GOTO 4510 
 +4500 NEXT j 
 +4510 NEXT i 
 +4520 bewneu=0 
 +4530 FOR q=1 TO 24 
 +4540 IF bew(q)=1 THEN bewneu=bewneu-10 
 +4550 IF bew(q)>0 AND wneu(q)=1 THEN bewneu=bewneu+9 
 +4560 NEXT q 
 +4570 IF bewneu<=bewalt THEN 4620 
 +4580 bewalt=bewneu 
 +4590 FOR q=1 TO anzahl 
 +4600 flagz(q)=flag(q) 
 +4610 NEXT q 
 +4620 NEXT xyz 
 +4630 FOR q=1 TO anzahl 
 +4640 IF flag(q)<>0 THEN swneu(flagz(q))=swneu(flagz(q))-1 : swneu(flagz(q)+ma)=swneu(flagz(q)+ma)+1:GOSUB 2230 
 +4650 NEXT q 
 +4660 RETURN 
 +4670 ' Einen Zug ausführen 
 +4680 zahl(1)=MAX(zahl(1),zahl(2)) 
 +4690 IF pasch=4 THEN zahl(1)=ma 
 +4700 FOR i=1 TO 24-zahl(1) 
 +4710 IF bew(i)=0 OR bew(i+zahl(1))=5 OR wneu(i+zahl(1))>1 THEN 4750 
 +4720 bew(i)=bew(i)-1 : bew(i+zahl(1))=bew(i+zahl(1))+1 
 +4730 GOSUB 4110 
 +4740 bew(i)=bew(i)+1 : bew(i+zahl(1))=bew(i+zahl(1))-1 
 +4750 NEXT i 
 +4760 IF flag1z<25 THEN swneu(flag1w)=swneu(flag1w)-1:swneu(flag1z)=swneu(flag1z)+1:GOSUB 2230 
 +4770 RETURN 
 + 
 +</file> 
 + 
 +===== Controles ===== 
 + 
 +        ↑ = ARRIBA 
 +        ↓ = ABAJO 
 +        → = DERECHA 
 +        ← = IZQUIERDA 
 +    ENTER = SELECCIONAR
  
 ===== Carga del programa ===== ===== Carga del programa =====
Línea 43: Línea 688:
   1.- Introducir el disco CP/M por la cara 2   1.- Introducir el disco CP/M por la cara 2
   2.- Escribir BASIC y esperar a que cargue   2.- Escribir BASIC y esperar a que cargue
-  3.- Retirar el disco CP/M e introducir el disco que contiene Backgammon +  3.- Retirar el disco CP/M e introducir el disco que contiene el juego Backgammon 
-  4.- Teclear run "BGINIT" y pulsar la tecla "ENTER"+  4.- Teclear run "Bginit" y pulsar la tecla "ENTER" 
 + 
 +===== Extras ===== 
 + 
 +  * Listado del programa en una revista de gran tirada de la época 
 + 
 +{{:otros:Backgammon_programa_01.jpg?120}} {{:otros:Backgammon_programa_02.jpg?120}} {{:otros:Backgammon_programa_03.jpg?120}} {{:otros:Backgammon_programa_04.jpg?120}} 
 +{{:otros:Backgammon_programa_05.jpg?120}} {{:otros:Backgammon_programa_06.jpg?120}} 
 +{{:otros:Backgammon_programa_07.jpg?120}}
  
 ===== Descarga ===== ===== Descarga =====
  
 +  * {{:otros:Backgammon (de) (Basic).zip|Backgammon en Alemán }}(juego en formato dsk, comprimido con zip)
 +  * {{:otros:Backgammon (sp) (Basic).zip|Backgammon en Español }}(juego en formato dsk, comprimido con zip)
 ===== Enlaces ===== ===== Enlaces =====
es/backgammon.1463307002.txt.gz · Última modificación: 2016/05/15 11:10 (editor externo)