ayuda con formulario

Iniciado por kiwisucks, 26 Septiembre 2008, 22:01 PM

0 Miembros y 2 Visitantes están viendo este tema.

kiwisucks

ola a todos

bueno les cuento, toy tudiando tecnico en computacion e informatica y estoy en el ramo de programacion visual. la encontre reentretenida, me paso horas en un trabajo que me dieron, que e shacer un juego de cartas en dos modalidades, y estoy aproblemado con el codigo se podria decir, pondre una foto del juego para que les pueda explicar mejor de que se trata:

http://img518.imageshack.us/my.php?image=dibujovd4.jpg

el juego consiste en que la persona colo un valor asta 250 ( eso no lo he validado aun :S, me urge mas lo otro) , en donde ese valor tiene que aproximarse lo mas posible al de arriva que tiene como maximo 250 ( Carta = Val(Int(Rnd * 250) + 1)), luego ambos numeros se restan y la diferencia se le resta al puntaje global de abajo, la gracia es que al final la persona quede con el mayor puntaje posible.

el problema que se me suscito fue que en algunas jugadas el puntaje de abajo se me suma. por ej: despues de la primera jugada el puntaje global quedo en 860 y despues juego en la segunda y me puee aparecer 960, sumandome la 2º jugada.

Objetos

las cartas se llaman: txCarta1, txCarta2, txCarta3, txCarta4.
los texbox se llaman: txValor1, txValor2, txValor3, txValor4.

declaraciones:

Dim Carta As Integer
Dim Carta1 As Integer
Dim Carta2 As Integer
Dim Carta3 As Integer
Dim Puntaje As Integer
Dim Resultado As Integer

* al principio declare 1 sola ( carta) pero pense que si declaraba varias podria funcionar

codigo de btJugar1

Private Sub btJugar1_Click(Index As Integer)
Randomize
Carta = Val(Int(Rnd * 250) + 1)
txCarta1.Text = Carta
txCarta1.Visible = True
btJuego1.BackColor = &HFFC0C0
Resultado = Carta - txValor1.Text
If Resultado < 0 Then
Resultado = Resultado * -1
Puntaje = Puntaje - Resultado
lbScore.Caption = Puntaje
'lbScore.Caption = Puntaje - Resultado
Else
lbScore.Caption = Puntaje - Resultado

End If

txValor1.Enabled = False

End Sub


Codigo btJugar2

Private Sub btJugar2_Click(Index As Integer)
Randomize
Carta1 = Val(Int(Rnd * 250) + 1)
txCarta2.Text = Carta1
txCarta2.Visible = True
btJuego2.BackColor = &HFFC0C0
Resultado = Carta1 - txValor2.Text
If Resultado < 0 Then
Resultado = Resultado * -1
punntaje = Puntaje - Resultado
'lbScore.Caption = Puntaje - Resultado
lbScore.Caption = Puntaje
Else
lbScore.Caption = Puntaje - Resultado
End If
txValor2.Enabled = False

End Sub

Codigo btJugar3

Private Sub btJugar3_Click(Index As Integer)
Randomize
Carta2 = Val(Int(Rnd * 250) + 1)
txCarta3.Text = Carta2
txCarta3.Visible = True
btJuego3.BackColor = &HFFC0C0
Resultado = Carta2 - txValor3.Text
If Resultado < 0 Then
Resultado = Resultado * -1
Puntaje = Puntaje - Resultado
lbScore.Caption = Puntaje
'lbScore.Caption = Puntaje - Resultado
Else
lbScore.Caption = Puntaje - Resultado
End If
txValor3.Enabled = False

End Sub


Codigo btJugar4

Private Sub btJugar4_Click(Index As Integer)
Randomize
Carta3 = Val(Int(Rnd * 250) + 1)
txCarta4.Text = Carta3
txCarta4.Visible = True
btJuego4.BackColor = &HFFC0C0
Resultado = Carta3 - txValor4.Text
If Resultado < 0 Then
Resultado = Resultado * -1
Puntaje = Puntaje - Resultado
lbScore.Caption = Puntaje
'lbScore.Caption = Puntaje - Resultado
Else
lbScore.Caption = Puntaje - Resultado
End If
txValor4.Enabled = False

End Sub


esop serian, disculpen lo extenso, pero creo que si dejo todo detallado, sera mas facil que me puedan ayudar.
de antemano muchas gracias y disculpen lo malito del diseño, eske soy nuevo en esto de la programacion en general.

saludos

byway

Te suma porke le estas condicionando asi ...

tonces kita esto :

Código (vb) [Seleccionar]
Resultado = Resultado * -1
Puntaje = Puntaje - Resultado


para que ponerle negativo, con eso le estas sumando... negativo + negativo = positivo


porke :

Código (vb) [Seleccionar]
Private Sub btJugar1_Click(Index As Integer)

no es:
Código (vb) [Seleccionar]
Private Sub btJugar1_Click()

:¬¬ :¬¬ :¬¬

Salu2.

kiwisucks

muchas gracias men por la respuesta, sabes lo del (-1) es por que la carta de arriba resta ala de abajo(textbox).

EJ: carta - texbox = 150 - 50(ingresado por el user)= 100

pero podia pasar que el textbox fuera mayor ala carta, por ende seria una resta asi:

EJ: carta - textbox = 50 - 150 = -100.

ese - 100 se agrega ala parte de la formula:

puntaje= puntaje - ( resultado). en el primer caso resultado es + yen el segundo es -, por ende se suman.

bueno pero el detalle no taba ahi, estaba en que tenia que validar la variable cada juego., por que en el load del frm se inicializa en 1000, el primero funciona.

EJ: la resta fue 1000 - 200( carta - texbox)= 800

pero en la segunda jugada puntaje sigue valiendo 1000 poke en el codigo no se actualiza y toma el del principio y se veia que sumaba poke pasaba esto

jugada 2

EJ: resta final  1000- 150 (carta - trext box)= 850

por eso se veia como que sumaba.

muchas gracias = por la ayuda, era la ultima parte del codigo que me faltaba, asike esta terminado, aora keda amononarlo namas.

una consulta queria hacer = , como puedo hacer que  al apretar un boton me kambie los formularios a ingles, ej: un frm options con un boton ingles.

me dijeron por ahi que podia hacer un modulo con 2 variables globales ( ingles y español) y hacer las subrutinas de ingles y español en cada frm.

bueno si pueden ayudarme con eso, osea una idea, yo despues me la mateo =)..

grax de antemano

saludos

byway

Cita de: kiwisucks en 27 Septiembre 2008, 16:56 PM

una consulta queria hacer = , como puedo hacer que  al apretar un boton me kambie los formularios a ingles, ej: un frm options con un boton ingles.

me dijeron por ahi que podia hacer un modulo con 2 variables globales ( ingles y español) y hacer las subrutinas de ingles y español en cada frm.

bueno si pueden ayudarme con eso, osea una idea, yo despues me la mateo =)..


Para tener dos o mas idiomas puedes usar una sub que te cambie los textos y caption de tus controles y luego la llamas para cambiar todo ... es lo mas simple que podrias hacer ... hay muchas maneras de poner idiomas diferentes a tu proyecto pero algunas tienen mucho codigo y modulos ... tambien puedes usar archivos ini..

Un ejemplo de como hacerlo:

Código (vb) [Seleccionar]
Sub ingles()

Frame1.Caption="options"
Label1.Caption="Example"
Command1.caption="English"
Form2.Command1.Caption="Exit"      'si tu control esta en el form 2

End Sub


Mas simple no puede haber  ;D ;D ;D ;D ;D

kiwisucks

gracias men por la respuesta, bueno me puse a probar lo que me dijistes y hice lo sgte:

cree un modulo y le puse lo sgte:

Sub Cambiar_Ingles2()
   
    FrmAcerca.btVolveratras4.Caption = "Main Menu"
    frmAprender.btTutorialmodo1.Caption = "How To Play Faerum"
    frmAprender.btTutorialmodo2.Caption = "How To Play Fangh"
    frmAprender.btVolveratras3.Caption = "Main Menu"
    FrmComienzo.lbEntrar.Caption = "Enter"
    frmJuego1.btMayor1.Caption = "Bigger"
    frmJuego1.btMayor2.Caption = "Bigger"
    frmJuego1.btMayor3.Caption = "Bigger"
    frmJuego1.btMayor4.Caption = "Bigger"
    frmJuego1.btMenor1.Caption = "Minor"
    frmJuego1.btMenor2.Caption = "Minor"
    frmJuego1.btMenor3.Caption = "Minor"
    frmJuego1.btMenor4.Caption = "Minor"
    frmJuego1.btCambiar.Caption = "Play Fangh"
    frmJuego1.btVolveralmenu.Caption = "Main Menu"
    frmJuego1.btVolverajugar.Caption = "Play Again"
    frmJuego2.btJuego1.Caption = "First Game"
    frmJuego2.btJuego2.Caption = "Second Game"
    frmJuego2.btJuego3.Caption = "Thirth Game"
    frmJuego2.btJuego4.Caption = "Fourth Game"
    frmJuego2.btJugar1.Caption = "Play"
    frmJuego2.btJugar2.Caption = "Play"
    frmJuego2.btJugar3.Caption = "Play"
    frmJuego2.btJugar4.Caption = "Play"
    frmJuego2.btVolverajugar.Caption = "Play Again"
    frmJuego2.btCambiar.Caption = "Play Faerum"
    frmJuego2.btVolveralmenu.Caption = "Main Menu"
    frmLoad.btCancelar.Caption = "Cancel"
    frmLoad.lbCargando.Caption = "Loading"
    frmLoad2.btCancelar.Caption = "Cancel"
    frmLoad2.lbCargando.Caption = "Loading"
    FrmMenu.btJugar.Caption = "SinglePlayer"
    FrmMenu.btOpciones.Caption = "Options"
    FrmMenu.btAprender.Caption = "How To Play"
    FrmMenu.btMultiplayer.Caption = "Multiplayer"
    FrmMenu.btAcerca.Caption = "About Me"
    FrmMenu.btSalir.Caption = "Quit"
    frmModos.btModo1.Caption = "Play Faerum"
    frmModos.btModo2.Caption = "Play Fangh"
    frmModos.btVolveralmenu.Caption = "Main Menu"
    FrmMultiplayer.btJugaronline.Caption = "Game Online"
    FrmMultiplayer.btJugarRed.Caption = "Network"
    FrmMultiplayer.btVolveralmenu.Caption = "Main Menu"
    frmOpciones.btEspañol.Caption = "Spanish"
    frmOpciones.btIngles.Caption = "English"
    frmOpciones.btVolveralmenu.Caption = "Main Menu"
    FrmTutorialmodo.btVolveralmenu.Caption = "Main Menu"
    frmTutorialmodo1.btVolveralmenu.Caption = "Main Menu"
    FrmMenu.Show
    Unload frmOpciones
   
End Sub

Sub Cambiar_Español()
   
   en este es lo mismo que arriva pero al español.

la Sub Cambiar_Ingles2() la llamo desde el evento click de un boton, pero pasa lo sguiente. se me abren las dos modalidades del juego automaticamente en dos ventanas distintas, con el idioma en ingles pero yo al vuelver menu principal ( mediante un boton back del jeugo) esta todo en ingles, pero despues despues
de el menu voy al juego denuevo y el idioma a cambiado denuevo a español.
esta medio enredao por lo que pondre unas imagenes con la secuencia:


al momento de cambiar a ingles

http://img294.imageshack.us/my.php?image=hicimosclickrt5.jpg

despues de cambiar a ingles

http://img264.imageshack.us/my.php?image=despuesdelclickty5.jpg

desde el menu inicio que estaba en ingles nos fuimos a singleplayer

http://img403.imageshack.us/my.php?image=desdeelmenualsingleplayhy1.jpg

luego en el load antes del juego que debiera haber estado en ingles

http://img294.imageshack.us/my.php?image=loadantesdeljuegoyq8.jpg

el juego en si pero en español

http://img294.imageshack.us/my.php?image=juego1rl4.jpg


es raro lo que pasa, lo del menu pasa porke despues de llamar la subrutina de ingles dice que lo lleve al menu, pero de psaita se abren los dos juegos y eso es lo que no se por que pasa.

alomejor no hice lo que me dijistes en el post anterior.

saludos y gracias




byway

#5
vaya tantos controles  ;D ;D ;D...
no se como pusiste todo ... pero es tan simple que no deberia darte error alguno... pero bueno aki te dejo un pekeño ejemplo que hize .. con lo que te dije y le puse una opcion mas para guardar el idioma que usaste la ultima vez en un archivo y cada vez que vuelves a abrirlo carga el idioma que usaste por ultima vez ... algo simple  ;D ;D ;D ;D

espero te sirva...

bajar ejemplo

Salu2.

PD: espero pongas el juego final por aki  ;D ;D

kiwisucks

ola  denuevo, disucla men la tardanza, t cuento, entregue el programa, la nota aun nome la dan, pero dentro de lo poco que cachaba lo deje bien validado y todo para que el profe no lesiara botandolo. como le puse musica al juego y si subo el exe no la escucharas, subi a MU la carpeta del trabajo con los audios, para que tu lo rutes y lo veas ( mi profe ocupaba otra cosa pa reproducir sonidos con WMP, algo de add.path, yo solo en la propiedad URL le pegaba la ruta), asi que aqui t dejo el link

http://www.megaupload.com/?d=D585Z9F6

para que lo veas, este no sera el unico trabajo que me toque, asi que si puedes decirme si ta bien, errores y esas cosas para ir corrigiendo, lo del idioma, me kedo grande al final, = taba contra el tiempo, no era algo que pedia el trabajo pero queria hacerlo =S, y lo del add.path, que aun no kaxo bn como funciona.



saludos men y gracias


PD: los temas estan en las rutas de cada objeto de WMP, asi que sabras altiro cual tema es de cual frm. los frm con temas son : Juego1, Juego2, Menu y Load1 y load( mismo tema para ambos)