Karoshi MSX Community
06 de Julio de 2021, 07:07:52 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 [2]
  Imprimir  
Autor Tema: MSXdev'07 - Yahtzee (juego terminado!)  (Leído 8549 veces)
0 Usuarios y 1 Visitante están viendo este tema.
dvik
Karoshi Fan
**
Mensajes: 80


WWW Email
« Respuesta #15 : 16 de Mayo de 2007, 12:35:55 am »

Citar
Ehm... También he conseguido el source... por el mismo método con nlMSX.

How did you do this?
En línea
mesiasmsx
Karoshi Hero
*****
Mensajes: 557



WWW Email
« Respuesta #16 : 16 de Mayo de 2007, 05:59:48 pm »

Por que no hace nadie un parchis  Roll Eyes   ?
En línea
S0Y
Karoshi Lover
***
Mensajes: 148

Lo difícil, lo hago; lo imposible, lo intento.


WWW
« Respuesta #17 : 16 de Mayo de 2007, 07:54:53 pm »

Citar
How did you do this?

Digamos a que "fuerzo" un error en la rom que me permite listarlo... y por supuesto después grabarlo como un .bas. Si quieres más detalles, házmelo saber, aunque no sé si por aquí se puede explicar eso...  Wink Supongo que algunos lo considerarán una técnica de "hacking", aunque no es NADA del otro mundo, no lo sé...  Roll Eyes

Que me dice el moderador del foro? Lo explico por aquí o se lo hago saber al interesado por privado? Hay algún problema?

Saludos!
En línea

Lo difícil, lo hago; lo imposible, lo intento.
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #18 : 17 de Mayo de 2007, 05:55:46 am »

Pues yo creo que explicarlo lo puedes explicar, siempre y cuando no publiques el código del juego de nadie sin su permiso Wink
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
dvik
Karoshi Fan
**
Mensajes: 80


WWW Email
« Respuesta #19 : 17 de Mayo de 2007, 06:52:41 am »

Yes, describing the process is ok. Even creating tools to do it would be ok.
En línea
S0Y
Karoshi Lover
***
Mensajes: 148

Lo difícil, lo hago; lo imposible, lo intento.


WWW
« Respuesta #20 : 17 de Mayo de 2007, 09:17:10 am »

Citar
Pues yo creo que explicarlo lo puedes explicar, siempre y cuando no publiques el código del juego de nadie sin su permiso

Bueno... No veo yo la diferencia entre pasar el código a alguien y decirle a todo el mundo como hacerse con él, pero bueno, ya que se me ha dado permiso, os digo cómo hacerlo  Grin


- Cargo en nlMSX la rom.

- Me me voy a editar los detalles de la rom y la configuro de la siguiente manera:
  * Image Length -> 0x4000 (si es d 16 kb)
  * Start Address -> 0x8000

- Una vez se ha ejecutado la rom, vuelvo otra vez a editar los detalles de la misma:
  * Image Start -> 0x1

- Gracias al paso anterior, "produzco" un error típico del MSX-Basic de la rom del juego, y éste  se "rompe".

- Si hacemos un List ahora, sólo obtendremos basura, por lo que volvemos a editar los detalles de la rom:
  * Image Start -> 0x0

- Al volver al juego, ya podemos listar el código del juego con List (aunque no podréis pararlo hasta el final) y grabarlo a disco como un .bas con el comando Save.


En fin, como véis, MUY sencillote, nada del otro mundo. Uno, que le gusta mucho investigar, jeje...  Wink


Saludos!!
En línea

Lo difícil, lo hago; lo imposible, lo intento.
nerlaska
Karoshi Excellent Member
******
Mensajes: 1102


Programador


WWW Email
« Respuesta #21 : 17 de Mayo de 2007, 11:28:29 am »

Que rebuscao! jajajajaa .. pero que total!
En línea

MSX4EVER2GETHER
www.nerlaska.com
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #22 : 17 de Mayo de 2007, 11:30:18 am »

Hay un camino más directo: eliminar la cabecera de la ROM completa e incluir el byte de tipo BASIC. Con eso, puedes cargarlo directamente con LOAD y obtienes el programa en BASIC completo.

Eso sí, implica utilizar un debugger o alguna otra herramienta (asMSX: INCBIN "fichero" SKIP nn).
En línea
mars2000you
Karoshi Hero
*****
Mensajes: 672



WWW Email
« Respuesta #23 : 17 de Mayo de 2007, 01:24:00 pm »

I prefer pitpan's method ... WinHex is my friend !!!

Here's the BASIC code (thanks also to ASCII mode saving !)

Código:
10 GOSUB5000
500 CLS
510 FORF=8204TO8207!:VPOKEF,161:VPOKEF-4,33:NEXTF:PUTSPRITE1,(0,0),0,0:PUTSPRITE0,(0,0),0,1
520 FORF=8208TO8209:VPOKEF,209:VPOKEF+2,97:VPOKEF+4,65:NEXTF:G$=CHR$(32)
530 LOCATE4,3:PRINTSTRING$(25,123)
540 LOCATE4,4:PRINT"yahtzee{{yahtzee{{yahtzee"
550 LOCATE5,6:PRINTT$(1);G$;T$(2);G$;T$(2);G$;T$(3);G$;T$(3);G$;T$(3)
560 LOCATE5,7:PRINTT$(5);G$;T$(4);G$;T$(5);G$;T$(4);G$;T$(5);G$;T$(6)
570 LOCATE5,8:PRINTT$(7);G$;T$(8);G$;T$(8);G$;T$(9);G$;T$(9);G$;T$(9)
580 LOCATE4,9:PRINTSTRING$(25,123)
585 VPOKE8198,161:VPOKE8199,161
590 LOCATE4,10:PRINT"copyright{1986{daniel{vik"
598 IFPLAY(1)<>0THEN599
599 LOCATE3,18:PRINT"PRESS SPACE TO START A GAME"
600 LOCATE3,20:PRINT"  OR ESC FOR INSTRUCTIONS"
601 IFINKEY$<>""THEN601
602 PLAY"T150S0M6000O3L4CCCCO2A-A-A-A-FFFFGGGG","T150S0O2L4CCCCO1A-A-A-A-FFFFGGG","T150V13O5L8CO4GB-O5L2E-R8L8E-DE-L2CR8O4L8A-GA-L4F.O5CL1D"
603 A$=INKEY$:IFA$=CHR$(32)ORA$=CHR$(27)THEN610ELSEIFPLAY(2)THEN603
604 PLAY"T150S0M6000O2L4A-A-A-A-O3CCCCO2B-B-B-B-O3E-E-DD","T150S0O1L4A-A-A-A-O2CCCCO1B-B-B-B-O2E-E-D","T150V13L8O5E-DE-L2CR8L8E-DE-L2CR8L8DCDL2O4B-R8L4O5GFE-D"
605 A$=INKEY$:IFA$=CHR$(32)ORA$=CHR$(27)THEN610ELSEIFPLAY(2)THEN605
606 PLAY"T150S0M6000O3L4CCO2B-B-A-A-GGA-A-B-B-O3M10000L1C","T150S0O2L4CCO1B-B-A-A-GGA-A-B-B-O2L1C","T150V13L4O5E-DCO4B-O5CE-DO4B-O5CE-DO4B-O5S0L1C"
607 A$=INKEY$:IFA$=CHR$(32)ORA$=CHR$(27)THEN610ELSEIFPLAY(0)THEN607
608 GOTO602
610 BEEP:IFA$=CHR$(27)THENGOSUB7000
614 PLAY"T150S0M3000L16O3DGBO4DGBO5DGBO6DL1M10000B","T150S0R8R16O3L16DGBO4DGEO5DL1G","T150S0R8L16O3DO4DGEO5L1D"
616 FORF=1TO100:NEXT
620 VPOKE8223,18:VPOKE8198,161:VPOKE8199,161:FORF=8200TO8203:VPOKEF,65:NEXTF
630 CLS:LOCATE4,3:PRINTSTRING$(24,123)
640 LOCATE4,4:PRINT"how{many{players{{{max{3"
650 A$=INPUT$(1)
660 IFA$<"0"ORA$>"3"THEN650
670 SP=VAL(A$)
680 LOCATE29,4:PRINTCHR$(ASC(A$)+81)
681 BEEP:IFSP=1THENPLAY"S0M6000L4O3GO4L2M10000G","S0L2O4R8F","S0L2O4R8D"
682 IFSP=2THENPLAY"S0M6000L4O3GO4L2M10000G","S0L2O4R8E","S0L2O4R8C"
683 IFSP=3THENPLAY"S0M6000L4O3GO4L2M10000G","S0L2O4R8D","S0L2O3R8B"
690 B=0:POKE64683!,1:FORF=1TOSP
700 LOCATE4,4+2*F:PRINT"{{{{{{"
710 LOCATE4,5+2*F:PRINT"name{";RIGHT$(STR$(F),1)
720 A=0:NM$(F)=STRING$(8,32)
730 A=A+1:LOCATE10+A,5+2*F:A$=INPUT$(1):IFB=0THENBEEP:B=1
740 IFA$=CHR$(8)ORA$=CHR$(29)THENA=A-1:IFA<0THENA=0
750 IFA$=CHR$(13)THEN820
760 IFA$=CHR$(32)THEN780
770 IFA$<CHR$(65)ORA$>CHR$(93)THENA=A-1:GOTO730
780 MID$(NM$(F),A,1)=A$
790 LOCATE11,5+2*F:PRINTNM$(F)
800 IFA=8THENA=A-1
805 PLAY"S0M1000L32O2G"
810 GOTO730
820 NEXTF
830 CLS:FORF=8200TO8203:VPOKEF,161:VPOKEF+4,28:NEXTF:FORF=8198TO8199:VPOKEF,28:VPOKEF+10,65:NEXTF:VPOKE8223,81
840 PRINT"{{{{{{{{|{{{|{{{|{{{}"
850 PRINT"aces{{{{|{{{|{{{|{{{}"
860 PRINT"twos{{{{|{{{|{{{|{{{}"
870 PRINT"threes{{|{{{|{{{|{{{}"
880 PRINT"fours{{{|{{{|{{{|{{{}"
890 PRINT"fives{{{|{{{|{{{|{{{}"
900 PRINT"sixes{{{|{{{|{{{|{{{}"
910 PRINT"{{{{{{{{{{{{{{{{{{{{}"
920 PRINT"total{{{|{{{|{{{|{{{}"
930 PRINT"bonus{{{|{{{|{{{|{{{}"
940 PRINT"{{{{{{{{{{{{{{{{{{{{}"
970 PRINT"3{a{kind|{{{|{{{|{{{}"
980 PRINT"4{a{kind|{{{|{{{|{{{}"
990 PRINT"full{hse|{{{|{{{|{{{}"
991 PRINT"small{st|{{{|{{{|{{{}"
992 PRINT"large{st|{{{|{{{|{{{}"
993 PRINT"chance{{|{{{|{{{|{{{}"
994 PRINT"yahtzee{|{{{|{{{|{{{}"
995 PRINT"{{{{{{{{{{{{{{{{{{{{}"
996 PRINT"bonus{{{|{{{|{{{|{{{}"
997 PRINT"                     "
998 PRINT"total{{{|{{{|{{{|{{{}"
1000 FORF=1TOSP:LOCATE5+4*F,0:PRINTRIGHT$(STR$(F),1);"up":NEXTF
1500 ' B™RJA SPELA
1505 ONKEYGOSUB,,,,,,,,,1600:KEY(10)ON
1510 E=166:R=10:PUTSPRITE1,(E+1,R+1),4,0:PUTSPRITE0,(E,R),1,1:FORF=1TO15:FORG=1TOSP:O(F,G)=-1:O(15,G)=0:NEXTG,F:FORF=1TOSP:O(16,F)=0:X(F)=0:NEXTF
1520 FORUQS=1TO13:FORD=1TOSP:LOCATE22,0:PRINT"{";RIGHT$(STR$(D),1);"up{":LOCATE22,1:PRINTNM$(D)
1525 FORF=1TO5:W(F)=0:NEXTF:FORF=3TO22:LOCATE22,F:PRINTSTRING$(8,32):NEXT
1530 T=5:FORP=1TO3:Y=T
1535 BEEP:PLAY"S0M3000L2O4G","S0L2O4B-","S0L2O5C"
1540 GOSUB2000
1545 IFINKEY$<>""THEN1545
1550 GOSUB2100
1580 NEXTP
1590 NEXTD,UQS
1600 KEY(10)OFF:BEEP:FORF=0TO22:LOCATE21,F:PRINTSTRING$(9,32):NEXT
1610 IFSP=1THEN1700
1620 IFSP=2THEN1660
1630 FORF=1TO3:FORG=1TO2:IFQ(G)<Q(G+1)THENR=Q(G):R$=NM$(G):Q(G)=Q(G+1):NM$(G)=NM$(G+1):Q(G+1)=R:NM$(G+1)=R$
1640 NEXTG,F
1650 GOTO1700
1660 IFQ(1)>Q(2)THEN1700
1670 R=Q(1):R$=NM$(1):Q(1)=Q(2):NM$(1)=NM$(2):Q(2)=R:NM$(2)=R$
1700 ' GAME OVER
1710 FORF=1TOSP
1720 LOCATE21,3*F-3:PRINTCHR$(ASC(RIGHT$(STR$(F),1))+81);" ";NM$(F)
1730 T$="":FORG=2TOLEN(STR$(Q(F))):T$=T$+CHR$(ASC(MID$(STR$(Q(F)),G,1))+81):NEXT
1740 LOCATE23,3*F-2:PRINTT$:NEXTF
1741 PLAY"S0M5000T150O5L16EO4GO5CO4EGCEO3GO4CO3EGCEGO4CO3GO4CECEGEGO5CO4GO5CECO4GEGO5CO4EM10000L1C"
1743 IFPLAY(1)<>0THEN1743
1750 LOCATE3,22:PRINT"PRESS SPACE TO CONTINUE..."
1760 AA$="O4L1CO3A-B-G"
1770 B$="V12L8O5E-O4GO5CO4GO5E-O4GO5CO4GO5E-O4A-O5CO4A-O5E-O4A-O5CO4A-O5DO4FB-FO5DO4FB-FO5DO4GB-GO5DO4B-O5DG"
1780 C$="V13L4O4CCCDE-E-E-GFFFDGGG"
1790 D$="V11L1O5CO4A-B-L2GL4G"
1795 E$="V1L1O5CO4A-B-L2GL4G"
1797 PLAY"S14M500T150","T150","T150"
1800 PLAYAA$,E$,E$
1805 A$=INKEY$:IFA$=CHR$(32)ORA$=CHR$(27)THEN1900ELSEIFPLAY(3)THEN1805
1810 PLAYAA$,B$,E$
1815 A$=INKEY$:IFA$=CHR$(32)ORA$=CHR$(27)THEN1900ELSEIFPLAY(3)THEN1815
1820 PLAYAA$,B$,D$
1825 A$=INKEY$:IFA$=CHR$(32)ORA$=CHR$(27)THEN1900ELSEIFPLAY(3)THEN1825
1830 PLAYAA$,B$,C$
1835 A$=INKEY$:IFA$=CHR$(32)ORA$=CHR$(27)THEN1900ELSEIFPLAY(3)THEN1835
1840 PLAYAA$,C$,D$
1845 A$=INKEY$:IFA$=CHR$(32)ORA$=CHR$(27)THEN1900ELSEIFPLAY(3)THEN1845
1850 PLAYAA$,B$,C$
1855 A$=INKEY$:IFA$=CHR$(32)ORA$=CHR$(27)THEN1900ELSEIFPLAY(0)THEN1855
1860 GOTO 1800
1900 BEEP
1910 GOTO 500
2000 ' KASTA TŽRNING
2010 FORF=1TOT
2015 IFF<>1THEN2025
2020 IFINKEY$=""THEN2020
2022 IFF=1THENBEEP
2025 SOUND8,16:SOUND13,8:SOUND1,1:SOUND12,2:SOUND0,0
2027 FORED=0TO8
2030 A=INT(RND(-TIME)*6)+1
2040 ONAGOSUB4500,4550,4600,4650,4700,4750
2050 NEXTED
2055 SOUND8,0
2060 V(F)=A:NEXTF
2070 RETURN
2100 ' FLYTTA PIL
2110 A=STICK(0):IFA>0THEN2150
2120 A$=INKEY$
2130 IFA$=CHR$(13)THEN2200
2140 IFA$=CHR$(32)THEN2400ELSE2110
2150 IFA=2ORA=3ORA=4THENE=E+4:IFE>234THENE=234
2160 IFA=6ORA=7ORA=8THENE=E-4:IFE<10THENE=10
2170 IFA=8ORA=1ORA=2THENR=R-4:IFR<8THENR=8
2180 IFA=4ORA=5ORA=6THENR=R+4:IFR>180THENR=180
2190 PUTSPRITE1,(E+1,R+1),4,0:PUTSPRITE0,(E,R),1,1:GOTO2110
2200 'RETURN
2210 B=INT(E/8):C=INT(R/8)
2220 IFP=3ANDB>21THEN2110
2230 IFB<21THEN2500
2240 IFB>21ANDB<25THEN2700
2250 IFB>25THEN2900
2260 GOTO2110
2400 ' SPACE
2410 IFP=3THEN2110
2420 T=5:FORF=5TO1STEP-1:IFW(F)>0THENW(T)=W(F):V(T)=W(F):T=T-1
2430 NEXT:FORF=TTO1STEP-1:W(F)=0:NEXT
2440 FORF=3TO22:LOCATE22,F:PRINTSTRING$(8,32):NEXTF
2450 FORA=5TOT+1STEP-1:ONW(A)GOSUB4000,4050,4100,4150,4200,4250:NEXT
2460 RETURN
2500 ' SŽTTA POŽNG
2510 B=INT(R/8):IFB<1ORB>6ANDB<11ORB>19THEN2110
2515 IFB>10THENB=B-4
2520 IFO(B,D)>-1THEN2110
2530 IFB<7THEN2560
2540 ONB-6GOSUB3200,3300,3600,3400,3500,3700,3800
2550 GOTO2600
2560 O(B,D)=0:FORF=1TO5:IFV(F)=BTHENO(B,D)=O(B,D)+B:NEXTELSENEXT
2565 GOSUB 3960
2570 H$=RIGHT$(STR$(O(B,D)),LEN(STR$(O(B,D)))-1):K=LEN(H$):LOCATE8+D*4-K,B:PRINTH$
2580 X(D)=0:FORF=1TO6:IFO(F,D)=-1THENNEXTELSEX(D)=X(D)+O(F,D):NEXT
2585 H$=RIGHT$(STR$(X(D)),LEN(STR$(X(D)))-1):K=LEN(H$):LOCATE8+D*4-K,8:PRINTH$
2590 IFX(D)>62THENO(16,D)=35:LOCATE6+D*4,9:PRINT"35"
2595 GOTO 2605
2600 H$=RIGHT$(STR$(O(B,D)),LEN(STR$(O(B,D)))-1):K=LEN(H$):LOCATE8+D*4-K,B+4:PRINTH$
2605 Q(D)=0:FORF=7TO16:IFO(F,D)=-1THENNEXTELSEQ(D)=Q(D)+O(F,D):NEXT
2610 Q(D)=Q(D)+X(D)
2620 H$=RIGHT$(STR$(Q(D)),LEN(STR$(Q(D)))-1):K=LEN(H$):LOCATE8+D*4-K,21:PRINTH$
2621 IFO(15,D)=0THEN2625
2622 H$=RIGHT$(STR$(O(15,D)),LEN(STR$(O(15,D)))-1):K=LEN(H$):LOCATE8+D*4-K,15+4:PRINTH$
2625 IFO(B,D)=0THENPLAY"S0M4000L4O2C"ELSEPLAY"S0M4000L4O4C"
2626 FORF=1TO50:NEXT
2630 RETURN1590
2700 ' FLYTTA TŽRNING
2710 A=0:FORF=1TOT:IFC>F*4-2ANDC<F*4+2THENA=F:NEXTELSENEXT
2720 IFA=0THEN2110
2730 IFW(A)=0THENY=Y-1:BEEP:PLAY"T150S0M1000O4L32CO5C"
2740 W(A)=V(A):GOSUB4800
2750 ONW(A)GOSUB4000,4050,4100,4150,4200,4250
2760 IFY=0THEN2900
2770 GOTO2110
2900 ' FLTTA TILLBAKA
2905 FORF=1TO5:IFW(F)>0THENBEEP:PLAY"T150S0M6000O3L8CCL4M8000C","T150S0O3L8CE-L4E-","T150S0O3L8CCL4B-"ELSENEXT:GOTO2110
2910 FORF=3TO22:LOCATE26,F:PRINT"   ":NEXT
2920 FORF=1TO5:ONV(F)GOSUB4500,4550,4600,4650,4700,4750:NEXT
2930 T=5:Y=5:FORF=1TO5:W(F)=0:NEXT
2940 GOTO2110
3000 'ETT PAR
3010 FORF=6TO1STEP-1:S=0:FORG=1TO5:IFV(G)=FTHENS=S+1
3020 NEXTG:IFS>1THENGOTO3040
3030 NEXTF:O(B,D)=0:RETURN
3040 O(B,D)=2*F:RETURN
3050 M=F:NEXTF:O(B,D)=0:RETURN
3060 O(B,D)=2*F+2*M:RETURN
3100 'TV PAR
3110 N=0:FORF=6TO1STEP-1:S=0:FORG=1TO5:IFV(G)=FTHENS=S+1
3120 NEXTG:IFS>1THENGOTO3140
3130 NEXTF:O(B,D)=0:RETURN
3140 N=N+1:IFN=2THEN3160
3150 M=F:NEXTF:O(B,D)=0:RETURN
3160 O(B,D)=2*F+2*M:RETURN
3200 ' TRETAL
3210 FORF=6TO1STEP-1:S=0:FORG=1TO5:IFV(G)=FTHENS=S+1
3220 NEXTG:IFS>2THENGOTO3240
3230 NEXTF:O(B,D)=0:RETURN
3240 GOTO 3700
3300 ' FYRTAL
3310 FORF=6TO1STEP-1:S=0:FORG=1TO5:IFV(G)=FTHENS=S+1
3320 NEXTG:IFS>3THENGOTO3340
3330 NEXTF:O(B,D)=0:RETURN
3340 GOTO 3700
3400 'LITEN STRIGHT
3405 BV=30:GOSUB3900:IFO(B,D)>0THENRETURN
3410 S=0:FORF=1TO4:FORG=1TO5:IFV(G)=FTHENS=S+1ELSENEXTG
3420 NEXTF:IFS=4THENO(B,D)=BV:RETURN
3430 S=0:FORF=2TO5:FORG=1TO5:IFV(G)=FTHENS=S+1ELSENEXTG
3440 NEXTF:IFS=4THENO(B,D)=BV:RETURN
3450 S=0:FORF=3TO6:FORG=1TO5:IFV(G)=FTHENS=S+1ELSENEXTG
3460 NEXTF:IFS=4THENO(B,D)=BV:RETURN
3470 O(B,D)=0:RETURN
3500 'STOR STRIGHT
3505 BV=40:GOSUB3900:IFO(B,D)>0THENRETURN
3510 S=0:FORF=1TO5:FORG=1TO5:IFV(G)=FTHENS=S+1ELSENEXTG
3520 NEXTF:IFS=5THENO(B,D)=BV:RETURN
3530 S=0:FORF=2TO6:FORG=1TO5:IFV(G)=FTHENS=S+1ELSENEXTG
3540 NEXTF:IFS=5THENO(B,D)=BV:RETURN
3550 O(B,D)=0:RETURN
3600 ' KK
3605 BV=25:GOSUB3900:IFO(B,D)>0THENRETURN
3610 FORF=6TO1STEP-1:S=0:FORG=1TO5:IFV(G)=FTHENS=S+1
3620 NEXTG:IFS=3THENM=F:GOTO3640
3630 NEXTF:O(B,D)=0:RETURN
3640 FORF=6TO1STEP-1:S=0:FORG=1TO5:IFV(G)=FTHENS=S+1
3650 NEXTG:IFS=2THEN3670
3660 NEXTF:O(B,D)=0:RETURN
3670 O(B,D)=BV:RETURN
3700 ' CHANS
3710 O(B,D)=0:FORF=1TO5:O(B,D)=O(B,D)+V(F):NEXT
3720 GOSUB 3960
3730 RETURN
3800 ' YATZY
3810 S=0:FORF=1TO5:IFV(F)=V(1)THENS=S+1
3820 NEXTF:IFS=5THENO(B,D)=50:GOTO3840
3830 O(B,D)=0:RETURN
3840 PLAY"T150S0M6000O4L8CCL4CEGO5L2M10000C","S0O3T150L8GGL4CCEL2C","S0T150L8O4CCL4CO3GO4EL2G"
3850 IFPLAY(0)<>0THEN3850ELSERETURN
3900 ' CHECK WILDCARD YATZY
3910 IFO(13,D)<=0THENRETURN
3920 S=0:FORF=1TO5:IFV(F)=V(1)THENS=S+1
3930 NEXTF:IFS<5THENRETURN
3940 IFO(V(1),D)<0THENRETURN
3950 O(15,D)=O(15,D)+100:O(B,D)=BV:RETURN
3960 ' CHECK BONUS YATZY
3965 IFO(13,D)<=0THENRETURN
3970 S=0:FORF=1TO5:IFV(F)=V(1)THENS=S+1
3980 NEXTF:IFS<5THENRETURN
3990 O(15,D)=O(15,D)+100:RETURN
4000 ' TŽRNING 1
4010 LOCATE26,A*4-1:PRINTP$(1)
4020 LOCATE26,A*4:PRINTP$(5)
4030 LOCATE26,A*4+1:PRINTP$(7)
4040 RETURN
4050 ' TŽRNING 2
4060 LOCATE26,A*4-1:PRINTP$(2)
4070 LOCATE26,A*4:PRINTP$(4)
4080 LOCATE26,A*4+1:PRINTP$(8)
4090 RETURN
4100 ' TŽRNING 3
4110 LOCATE26,A*4-1:PRINTP$(2)
4120 LOCATE26,A*4:PRINTP$(5)
4130 LOCATE26,A*4+1:PRINTP$(8)
4140 RETURN
4150 ' TŽRNING 4
4160 LOCATE26,A*4-1:PRINTP$(3)
4170 LOCATE26,A*4:PRINTP$(4)
4180 LOCATE26,A*4+1:PRINTP$(9)
4190 RETURN
4200 ' TŽRNING 5
4210 LOCATE26,A*4-1:PRINTP$(3)
4220 LOCATE26,A*4:PRINTP$(5)
4230 LOCATE26,A*4+1:PRINTP$(9)
4240 RETURN
4250 ' TŽRNING 6
4260 LOCATE26,A*4-1:PRINTP$(3)
4270 LOCATE26,A*4:PRINTP$(6)
4280 LOCATE26,A*4+1:PRINTP$(9)
4290 RETURN
4500 ' TŽRNING 1
4510 LOCATE22,F*4-1:PRINTT$(1)
4520 LOCATE22,F*4:PRINTT$(5)
4530 LOCATE22,F*4+1:PRINTT$(7)
4540 RETURN
4550 ' TŽRNING 2
4560 LOCATE22,F*4-1:PRINTT$(2)
4570 LOCATE22,F*4:PRINTT$(4)
4580 LOCATE22,F*4+1:PRINTT$(8)
4590 RETURN
4600 ' TŽRNING 3
4610 LOCATE22,F*4-1:PRINTT$(2)
4620 LOCATE22,F*4:PRINTT$(5)
4630 LOCATE22,F*4+1:PRINTT$(8)
4640 RETURN
4650 ' TŽRNING 4
4660 LOCATE22,F*4-1:PRINTT$(3)
4670 LOCATE22,F*4:PRINTT$(4)
4680 LOCATE22,F*4+1:PRINTT$(9)
4690 RETURN
4700 ' TŽRNING 5
4710 LOCATE22,F*4-1:PRINTT$(3)
4720 LOCATE22,F*4:PRINTT$(5)
4730 LOCATE22,F*4+1:PRINTT$(9)
4740 RETURN
4750 ' TŽRNING 6
4760 LOCATE22,F*4-1:PRINTT$(3)
4770 LOCATE22,F*4:PRINTT$(6)
4780 LOCATE22,F*4+1:PRINTT$(9)
4790 RETURN
4800 ' TOM
4810 LOCATE22,A*4-1:PRINT"   "
4820 LOCATE22,A*4:PRINT"   "
4830 LOCATE22,A*4+1:PRINT"   "
4840 RETURN
4990 END
5000 ' R E A D   D A T A
5010 SCREEN 1,2,0,2,0:WIDTH32:COLOR5,1,1:KEYOFF:DIMO(16,3):T=RND(-TIME)
5011 PLAY"S0M4000T150L8O4GF#M10000L1GR4M3000L16O3DGBO4DGBO5DGBO6DL1M10000B","T150S0R4R8L8O3GL2O4D.R4R8R16O3L16DGBO4DGEO5DL1G","T150S0R2R8L8O3DL2GR4R4R8L16O3DO4DGEO5L1D"
5020 FORF=65TO93:FORG=0TO7:READA:VPOKEF*8+G,A:NEXTG,F
5030 LOCATE11,11:PRINT"PLEASE WAIT"
5040 LOCATE1,20:PRINT"THE GAME STARTS IN A MOMENT..."
5042 PLAY"S13M10000O2L1G","S13O3L1D","S13O3L1G"
5043 PLAY"S0M4000L8O3GO4GO3GO4GO3GO4GO3GO4GM10000L1G","S0L8O4R8FR8FR8ER8EL1D","S0L8O4R8DR8DR8CR8CO3L1B"
5044 PLAY"S0M6000L2O4BM10000L2G.","S0L2O4GL2D.","S0L2O3BL2G."
5050 FORF=97TO125:FORG=0TO7:READA:VPOKEF*8+G,A/2:NEXTG,F
5060 FORF=48TO57:FORG=0TO7:READA:VPOKEF*8+G,A/2:NEXTG,F
5070 FORF=129TO138:FORG=0TO7:READA:VPOKEF*8+G,A:NEXTG,F
5080 FORF=145TO154:FORG=0TO7:READA:VPOKEF*8+G,A:VPOKE(F+16)*8+G,A:NEXTG,F
5090 FORF=1TO9:FORG=1TO3:READA:T$(F)=T$(F)+CHR$(144+A):P$(F)=P$(F)+CHR$(160+A):NEXTG,F
5100 FORG=0TO63:READA:VPOKE14336+G,A:NEXTG
5999 RETURN
6000 '     D A T A
6010 DATA 0,224,144,144,248,152,152,152,0,240,144,144,248,200,200,248,0,248,128,128,192,192,192,248,0,248,136,136,200,200,200,248
6020 DATA 0,248,128,128,240,192,192,248,0,248,128,128,240,192,192,192,0,248,128,128,184,152,152,248,0,136,136,136,248,200,200,200
6030 DATA 0,32,32,32,48,48,48,48,0,8,8,8,24,24,24,248,0,144,144,144,248,200,200,200,0,128,128,128,192,192,192,248
6040 DATA 0,252,148,148,212,212,212,212,0,248,136,136,200,200,200,200,0,248,136,136,152,152,152,248,0,248,136,136,136,248,192,192
6050 DATA 0,248,136,136,152,184,152,248,0,240,144,144,248,200,200,200,0,248,192,192,248,24,24,248,0,248,32,32,48,48,48,48
6060 DATA 0,136,136,136,200,200,200,248,0,152,152,152,216,80,80,112,0,148,148,148,212,212,212,252,0,136,136,136,112,200,200,200
6070 DATA 0,132,132,132,252,48,48,48,0,248,8,16,32,64,192,248,96,0,240,144,144,248,152,152,144,0,240,144,144,248,152,152,136,0,248,136,136,152,152,248
6110 DATA 0,60,102,102,126,102,0,511,0,124,102,124,102,124,0,511,0,62,96,96,96,62,0,511,0,124,102,102,102,124,0,511
6120 DATA 0,126,96,120,96,126,0,511,0,126,96,120,96,96,0,511,0,62,96,110,102,60,0,511,0,102,102,126,102,102,0,511
6130 DATA 0,60,24,24,24,60,0,511,0,126,6,6,102,60,0,511,0,102,102,124,102,102,0,511,0,96,96,96,96,126,0,511
6140 DATA 0,198,238,214,214,198,0,511,0,198,230,214,206,198,0,511,0,60,102,102,102,60,0,511,0,124,102,102,124,96,0,511
6150 DATA 0,60,102,102,100,58,0,511,0,124,102,124,102,102,0,511,0,62,96,60,6,124,0,511,0,126,24,24,24,24,0,511
6160 DATA 0,102,102,102,102,60,0,511,0,102,102,102,60,24,0,511,0,90,90,90,90,36,0,511,0,102,102,60,102,102,0,511
6170 DATA 0,102,102,60,24,24,0,511,0,126,12,24,48,126,0,511,0,0,0,0,0,0,0,511,16,16,16,16,16,16,16,511,63,63,63,63,63,63,63,511
6210 DATA 0,60,102,102,102,60,0,511,0,24,56,24,24,24,0,511,0,60,6,60,96,126,0,511,0,124,6,30,6,124,0,511,0,102,102,126,6,6,0,511
6220 DATA 0,126,96,124,6,124,0,511,0,62,96,124,102,124,0,511,0,126,6,30,12,12,0,511,0,60,102,60,102,60,0,511,0,62,102,62,6,6,0,511
6230 DATA 0,248,136,136,200,200,200,248,0,16,16,16,48,48,48,48,0,248,8,8,248,192,192,248,0,240,16,16,120,24,24,248,0,136,136,136,248,24,24,24
6240 DATA 0,248,128,128,248,24,24,248,0,248,192,192,248,200,200,248,0,248,8,8,56,24,24,24,0,120,72,72,252,196,196,252,0,248,136,136,248,24,24,24
6299 ' TŽRNING
6300 DATA 63,127,255,255,255,255,255,255,252,254,255,255,255,255,255,255,255,255,255,255,255,255,254,252,255,255,255,255,255,255,127,63
6310 DATA 63,67,129,129,129,129,195,255,252,194,129,129,129,129,195,255,255,195,129,129,129,129,194,252,255,195,129,129,129,129,67,63
6320 DATA 255,255,255,255,255,255,255,255,255,195,129,129,129,129,195,255
6400 ' TŽRNINGSDATA
6410 DATA 1,9,2,5,9,2,5,9,6,9,9,9,9,10,9,10,9,10,4,9,3,4,9,7,8,9,7
6500 ' SPRITE DATA
6510 DATA 252,248,240,248,220,142,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
6520 DATA 255,129,130,132,130,145,168,196,130,1,0,0,0,0,0,0,0,0,0,0,0,0,128,64,128,0,0,0,0,0,0,0
7000 ' INSTRUKTIONER
7010 CLS:FORF=8200TO8203:VPOKEF,97:NEXT
7015 SOUND8,16:SOUND13,8:SOUND1,5:SOUND0,50:SOUND11,50:SOUND12,2
7020 RESTORE8000:FORG=0TO19
7030 READA$:FORH=1TOLEN(A$):LOCATEH+3,G:PRINTMID$(A$,H,1)
7040 FORF=1TO3:NEXTF,H,G
7041 BEEP:LOCATE4,21
7042 PRINT"{{{{{{{{{{{{{{{{{{{{{{{{{"
7043 LOCATE4,22
7044 PRINT"{press{space{to{continue{"
7050 IFINKEY$<>CHR$(32)THEN7050
7060 RETURN500
7999 ' INSTRUKTIONS DATA
8000 DATA" I N S T R U C T I O N S "
8010 DATA" "
8020 DATA"WHEN ITS YOUR TURN  PRESS"
8030 DATA"ANY KEY TO ROLL THE DICE."
8040 DATA"THEN YOU  NEED TO  DECIDE"
8050 DATA"WHAT DICE TO SAVE.   MOVE"
8060 DATA"THE ARROW TO THE DICE AND"
8070 DATA"PRESS ENTER TO SAVE IT.  "
8080 DATA"WHEN YOU ARE READY  PRESS"
8090 DATA"SPACE TO THROW  THE  DICE"
8100 DATA"AGAIN.                   "
8110 DATA"                         "
8120 DATA"AFTER  THROWING  THE DICE"
8130 DATA"THREE TIMES  YOU MOVE THE"
8140 DATA"ARROW TO  THE  SCOREBOARD"
8150 DATA"AND  PRESS  ENTER IN  THE"
8160 DATA"SECTION YOU CHOOSE TO PUT"
8170 DATA"THE RESULT OF THE DICE   "
8180 DATA"                         "
8190 DATA"F‚  CANCELS THE GAME.    "
« Última modificación: 17 de Mayo de 2007, 01:26:47 pm por mars2000you » En línea

Benoît
blueMSX co-developer and MSX blue webmaster
blueMSX - MSX blue - MSX Eggerland
Páginas: 1 [2]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!