Karoshi MSX Community

MSX Actualidad => General => Mensaje iniciado por: Jon_Cortazar en 15 de Mayo de 2007, 07:56:38 pm



Título: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Jon_Cortazar en 15 de Mayo de 2007, 07:56:38 pm
 :D :D :D :D :D :D :D :D :D :D :D

Otro juego terminado presentado al concurso!. Mr. dvik, presentando un juego que hizo en 1986!. Está listo para descargar en la web del concurso  ;)

http://msxdev.msxblue.com


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Pypo en 15 de Mayo de 2007, 08:19:06 pm
:D :D :D :D :D :D :D :D :D :D :D

Otro juego terminado presentado al concurso!. Mr. dvik, presentando un juego que hizo en 1986!. Está listo para descargar en la web del concurso  ;)

http://msxdev.msxblue.com

Ueeee! Mas juegos! ;D


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: pitpan en 15 de Mayo de 2007, 08:21:59 pm
Pues no he probado el juego aún, pero o me equivoco mucho o el YAHTZEE es el mismo juego que el GNIFFEL que presentó Dioniso en la edición de 2004 de MSXdev.

Ahora lo pruebo, a ver qué tal está esta versión (aunque no soy muy fan de los juegos de dados para ordenador, los juegos de dados son para los bares, kinito fever!).


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Dioniso en 15 de Mayo de 2007, 09:02:41 pm
Pues no he probado el juego aún, pero o me equivoco mucho o el YAHTZEE es el mismo juego que el GNIFFEL que presentó Dioniso en la edición de 2004 de MSXdev.

Pues sí ... es el mismo juego ... Por cierto, hay algo de BASIC en este programa?

Enhorabuena a DVIK.


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Konamito en 15 de Mayo de 2007, 09:03:30 pm
Buenísima noticia.

Recuerdo que había un juego de mesa con el mismo nombre :D


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: dvik en 15 de Mayo de 2007, 09:08:26 pm
Yes its 100% MSX Basic using screen 1. I did a lookup in the generation msx database and found only one Yahtzee game but I totally forgot about your version Dioniso.


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Dioniso en 15 de Mayo de 2007, 09:13:43 pm
It's OK. Why not.

It's strange; there are not many dice games for MSX and now ... two which are the very same  :D

Anyway, as I said in Spanish: Congratulations.


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: S0Y en 15 de Mayo de 2007, 09:20:54 pm
Pues sí, es Basic, aunque la verdad está muy bien conseguido.  :)

Ehm... También he conseguido el source... por el mismo método con nlMSX. Lo digo por si a alguien le interesa ver rutinillas y tal, en Basic se pueden conseguir cosas muy muy decentes... Ya colgaré en mi web algunos .dsk de juegos solamente hechos en Basic MSX-1, la mayoría japoneses, para que veáis la de cositas tan buenas que se pueden hacer.

Congratulations, dvik!

Saludos!


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Jos'b en 15 de Mayo de 2007, 09:27:12 pm
Felicidades al creador, otra ROM para la saca, y este año palizón del BASIC al ASM 2-0.

       


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: dvik en 15 de Mayo de 2007, 11:15:03 pm
So here is the quiz of the day: From what game (made before 1986 obviously) is the 'digital' font inspired?


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Dioniso en 15 de Mayo de 2007, 11:20:38 pm
Alien 8?


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Konamito en 15 de Mayo de 2007, 11:28:28 pm
Lo he probado y me ha encantado. Llamadme raro pero es que a mí los juegos de dados me gustan mucho.

La verdad es que en MSX no se prodiga demasiado este tipo de juego pero se agradece cuando aparece uno.

Enhorabuena al creador.

En Konamito.com (http://www.konamito.com/modules/news/article.php?storyid=267) he publicado lo siguiente con respecto al juego:

He jugado unas cuantas partidas y de verdad me ha enganchado. Los gráficos son sencillos y cumplen a la perfección su cometido, que no es más que mostrar la información en pantalla. Los efectos de sonido son pocos pero cada evento en el juego tiene el suyo. Quizá se podría haber cambiado el sonido del BEEP por algún otro más elaborado. El teclado responde correctamente a las pulsaciones lo que mejora la jugabilidad.

No hay más vuelta de hoja: Si te gustan los juegos de dados te gustará Yahtzee, si no, no le encontrarás la gracia y te resultará hasta aburrido. Lo mejor de todo es poder jugar hasta un máximo de tres jugadores, lo que aumenta la adicción. Aquí se podría decir eso de: "Mejor acompañado que solo"


Por cierto que me ha dado problemas el juego al introducir el nombre de los jugadores. No se ven los caracteres  ??? ¿Os ha pasado también a vosotros?


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: dvik en 15 de Mayo de 2007, 11:33:17 pm
Alien 8 was made in 1987 so that's not the right answer. Looks very similar though.


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Dioniso en 15 de Mayo de 2007, 11:54:21 pm
Alien 8 was made in 1987 so that's not the right answer. Looks very similar though.

I think that the cassette version was in 1985 (Ultimate - Paly The Game) and the cartridge in 1986 (Jaleco) - though in Generation-MSX (http://www.generation-msx.nl/msxdb/softwareinfo/901) there's a screenshot of the cartridge version (later published than the cassette version) with the year 1986 but they say it was published in 1987.

Anyways ...


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Dioniso en 16 de Mayo de 2007, 12:06:21 am
"Paly The Game" ... I'm a bit tired, sorry: Play The Game. The Speecy version is from 1984.


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: dvik en 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?


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: mesiasmsx en 16 de Mayo de 2007, 05:59:48 pm
Por que no hace nadie un parchis  ::)   ?


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: S0Y en 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...  ;) Supongo que algunos lo considerarán una técnica de "hacking", aunque no es NADA del otro mundo, no lo sé...  ::)

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!


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: Jon_Cortazar en 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 ;)


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: dvik en 17 de Mayo de 2007, 06:52:41 am
Yes, describing the process is ok. Even creating tools to do it would be ok.


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: S0Y en 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  ;D


- 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...  ;)


Saludos!!


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: nerlaska en 17 de Mayo de 2007, 11:28:29 am
Que rebuscao! jajajajaa .. pero que total!


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: pitpan en 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).


Título: Re: MSXdev'07 - Yahtzee (juego terminado!)
Publicado por: mars2000you en 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.    "