Muchas gracias Daniel
Ya le adapté tu colaboración que agradezco mucho, ya la compu canta los números que van saliendo
Pero ahora sólo falta poder pausar el juego si yo toco una tecla (cuando van saliendo los números aleatoriamente), porque como dije antes, si alguien dice BINGO ! a los 58 números jugados, yo debo pausar el juego para proceder a la revisión y luego terminar el Bingo si fue correcto o continuar si no hubo Bingo.
Sólo eso nos faltaría y quedaría cool el programita para todos nosotros.
Ojalá alguien se anime a colaborar y nos eche una manito (ver líneas 67 al 72)
Nuevamente gracias Daniel !
Code: Select all
*******************************************
* PROGRAMADO EN HMG 3.0.46 EL 09/01/2024 *
* PROGRAMADO PARA BINGO DE 75 BOLAS *
* PARA JUGAR ENTRE AMIGOS O FAMILIA *
*******************************************
#include "HMG.CH"
* SCREEN 1360x768
FUNCTION MAIN()
PUBLIC n,L,C,M4
Public oVoz := CreateObject("SAPI.SpVoice")
DEFINE WINDOW PRINCE AT 0,0 WIDTH 0 HEIGHT 0 BACKCOLOR {0,125,250} NOCAPTION MAIN
@ 000,000 LABEL L0 VALUE "JUGANDO BINGO EN CASA" WIDTH 1200 HEIGHT 99 FONT "ALGERIAN" SIZE 72 BOLD UNDER ITALIC FONTCOLOR WHITE TRANSP
@ 725,1180 BUTTON BUTTON_1 CAPTION "S T A R T" WIDTH 75 HEIGHT 30 ONCLICK BUSCANUME()
@ 725,1260 BUTTON BUTTON_2 CAPTION "E X I T" WIDTH 75 HEIGHT 30 ONCLICK SALIR()
ON KEY ESCAPE ACTION SALIR()
END WINDOW
PRINCE.MAXIMIZE
PRINCE.ACTIVATE
RETURN
*-----------------
FUNCTION BUSCANUME
LOCAL NNUM
MSGINFO ("ATENCION POR FAVOR, EMPEZARA EL JUEGO !")
aleatorio:=ARRAY(75)
FOR n=1 TO 75
PASE:=.T.
DO WHILE PASE
NNUM:=HB_RANDOMINT(1,75)
IF VALTYPE(aleatorio[NNUM])="U"
aleatorio[NNUM]:=NNUM
PASE:=.F.
ENDIF
ENDDO
CVAR1:="NUME"+ALLTRIM(STR(n)) && ETIQUETA QUE VA AUMENTANDO EN 1
CVAR2:=ALLTRIM(STR(NNUM)) && NUMERO PURO ALEATORIO
CVAR3:="LAST"+ALLTRIM(STR(n)) && ETIQUETA PARA ULTIMO NUMERO JUGADO
M4=NNUM
CANTA()
PINTANUME()
@ L,C LABEL &CVAR1 PARENT PRINCE VALUE CVAR2 WIDTH 74 HEIGHT 66 FONT "ALGERIAN" SIZE 48 BOLD FONTCOLOR BLACK BACKCOLOR {0,125,250}
L1:="L"+ ALLTRIM(STR(n)) && VARIABLE PARA LABELS
INKEY(0.5) && TIEMPO ENTRE UN NUMERO Y OTRO (SE LO PUEDE AMPLIAR)
IF n=75
n=74
@ 5,1200 LABEL &L1 PARENT PRINCE VALUE TRAN(n+1,'99') WIDTH 111 HEIGHT 99 FONT "ALGERIAN" SIZE 72 BOLD FONTCOLOR GREEN BACKCOLOR {0,125,250}
EXIT
ELSE
@ 5,1200 LABEL &L1 PARENT PRINCE VALUE TRAN(n+1,'99') WIDTH 111 HEIGHT 99 FONT "ALGERIAN" SIZE 72 BOLD FONTCOLOR GREEN BACKCOLOR {0,125,250}
ENDIF
@ 700,0 LABEL &CVAR3 PARENT PRINCE VALUE "ULTIMO NUMERO QUE SALIO --->"+CVAR2 WIDTH 1255 HEIGHT 66 FONT "ALGERIAN" SIZE 48 BOLD FONTCOLOR BLUE BACKCOLOR {0,125,250}
***ESTO ES SOLO PARA PAUSAR EL JUEGO, PERO DEBE SER DE OTRA MANERA
IF n=10 .OR. n=30 .OR. n=55 && EN VEZ PREGUNTAR POR n DEBE SER AL PULSAR UNA TECLA CUALQUIERA QUE HAGA UNA PAUSA
MSGINFO("BUSCAR COMO PAUSAR EL PROGRAMA" +CHR(13)+CHR(13)+ " ... PULSANDO YO UNA TECLA !!!"+CHR(13)) && BUSCAR OTRA FORMA DE PAUSAR EL PROGRAMA MANUALMENTE
EXIT && AL PAUSAR EL PROGRAMA NO DEBE SALIR, EL JUEGO DEBE CONTINUAR O PREGUNTAR SI CONTINÚA
ENDIF
***ESTO ES SOLO PARA PAUSAR, PERO DEBE SER DE OTRA MANERA
NEXT
RETU
*-----------------
FUNCTION PINTANUME
IF M4<6
C=0
ENDIF
IF M4>5 .AND. M4<11
C=90
ENDIF
IF M4>10 .AND. M4<16
C=180
ENDIF
IF M4>15 .AND. M4<21
C=270
ENDIF
IF M4>20 .AND. M4<26
C=360
ENDIF
IF M4>25 .AND. M4<31
C=450
ENDIF
IF M4>30 .AND. M4<36
C=540
ENDIF
IF M4>35 .AND. M4<41
C=630
ENDIF
IF M4>40 .AND. M4<46
C=720
ENDIF
IF M4>45 .AND. M4<51
C=810
ENDIF
IF M4>50 .AND. M4<56
C=900
ENDIF
IF M4>55 .AND. M4<61
C=990
ENDIF
IF M4>60 .AND. M4<66
C=1080
ENDIF
IF M4>65 .AND. M4<71
C=1170
ENDIF
IF M4>70
C=1260
ENDIF
IF M4=1 .OR. M4=6 .OR. M4=11 .OR. M4=16 .OR. M4=21 .OR. M4=26 .OR. M4=31 .OR. M4=36 .OR. M4=41 .OR. M4=46 .OR. M4=51 .OR. M4=56 .OR. M4=61 .OR. M4=66 .OR. M4=71
L=120
ENDIF
IF M4=2 .OR. M4=7 .OR. M4=12 .OR. M4=17 .OR. M4=22 .OR. M4=27 .OR. M4=32 .OR. M4=37 .OR. M4=42 .OR. M4=47 .OR. M4=52 .OR. M4=57 .OR. M4=62 .OR. M4=67 .OR. M4=72
L=240
ENDIF
IF M4=3 .OR. M4=8 .OR. M4=13 .OR. M4=18 .OR. M4=23 .OR. M4=28 .OR. M4=33 .OR. M4=38 .OR. M4=43 .OR. M4=48 .OR. M4=53 .OR. M4=58 .OR. M4=63 .OR. M4=68 .OR. M4=73
L=360
ENDIF
IF M4=4 .OR. M4=9 .OR. M4=14 .OR. M4=19 .OR. M4=24 .OR. M4=29 .OR. M4=34 .OR. M4=39 .OR. M4=44 .OR. M4=49 .OR. M4=54 .OR. M4=59 .OR. M4=64 .OR. M4=69 .OR. M4=74
L=480
ENDIF
IF M4=5 .OR. M4=10 .OR. M4=15 .OR. M4=20 .OR. M4=25 .OR. M4=30 .OR. M4=35 .OR. M4=40 .OR. M4=45 .OR. M4=50 .OR. M4=55 .OR. M4=60 .OR. M4=65 .OR. M4=70 .OR. M4=75
L=600
ENDIF
RETU
*-------------
FUNCTION SALIR
PRINCE.RELEASE
QUIT
RETU
*-------------
FUNCTION CANTA
cVoz:= M4
oVoz:Speak( cVoz )
return