Descargar

Operaciones matemáticas para bachilleres (página 5)

Enviado por jaimemontoya


Partes: 1, 2, 3, 4, 5, 6

respuesta.Text = "-" + respuesta.Text

Else 'Si el número es positivo.

While Mid(respuesta.Text, 1, 2) = "00" Or Mid(respuesta.Text, 1, 2) = "01" Or Mid(respuesta.Text, 1, 2) = "02" Or Mid(respuesta.Text, 1, 2) = "03" Or Mid(respuesta.Text, 1, 2) = "04" Or Mid(respuesta.Text, 1, 2) = "05" Or Mid(respuesta.Text, 1, 2) = "06" Or Mid(respuesta.Text, 1, 2) = "07" Or Mid(respuesta.Text, 1, 2) = "08" Or Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2, Len(respuesta.Text) – 1)

End While

For ciclo As Integer = 1 To Len(respuesta.Text)

caracterevaluado1 = Mid(respuesta.Text, ciclo, 1) 'Toma el caracter correspondiente, dependiendo de la iteración en la que vaya el ciclo For.

If caracterevaluado1 = "/" Then

plecaubicacion = ciclo

End If

Next

While Mid(respuesta.Text, plecaubicacion + 1, 2) = "00" Or Mid(respuesta.Text, plecaubicacion + 1, 2) = "01" Or Mid(respuesta.Text, plecaubicacion + 1, 2) = "02" Or Mid(respuesta.Text, plecaubicacion + 1, 2) = "03" Or Mid(respuesta.Text, plecaubicacion + 1, 2) = "04" Or Mid(respuesta.Text, plecaubicacion + 1, 2) = "05" Or Mid(respuesta.Text, plecaubicacion + 1, 2) = "06" Or Mid(respuesta.Text, plecaubicacion + 1, 2) = "07" Or Mid(respuesta.Text, plecaubicacion + 1, 2) = "08" Or Mid(respuesta.Text, plecaubicacion + 1, 2) = "09" 'Para quitar los ceros del denominador.

respuesta.Text = Mid(respuesta.Text, 1, plecaubicacion – 1) + "/" + Mid(respuesta.Text, plecaubicacion + 2, Len(respuesta.Text)) 'Para que si el usuario escribe "433/0000432", cambiará a "443/432".

End While

End If

If (respuesta.Text = TextBoxoculto.Text) Then 'Si la respuesta introducida por el usuario es igual a la respuesta correcta.

Dim mensaje As String

mensaje = MsgBox("¡Felicidades, su respuesta es correcta!", MsgBoxStyle.OkOnly, "Juego de Operaciones Matemáticas para Bachilleres")

If mensaje = 1 Then 'Si el botón presionado es el "Ok" (que es el único que se le va a presentar entonces ese se tiene que presionar).

'Generación de números aleatorios.

numero1.Text = obtenernumerorandom(1, 99) + "/" + obtenernumerorandom(1, 99) 'Imprime un número random entre 1 y 99 contatenado con "+" concatenado con un número random entre 1 y 99, para obtener algo como "34/42", y eso se imprime en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 99) + "/" + obtenernumerorandom(1, 99) 'Imprime un número random entre 1 y 99 contatenado con "+" concatenado con un número random entre 1 y 99, para obtener algo como "34/42", y eso se imprime en el TextBox "numero2".

respuesta.Text = "" 'Para borrar la respuesta anterior y que el usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que el cursor esté listo y que el usuario escriba su próxima respuesta.

End If

respuestaaciertos += 1 'Suma un acierto.

aciertos.Text = respuestaaciertos 'Imprime el número de aciertos en el TextBox.

If respuestaaciertos + respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text 'El número de aciertos se manda a imprimir al TextBox "aciertos1" que está en el formulario "resultado1".

resultado1.desaciertos1.Text = desaciertos.Text 'El número de desaciertos se manda a imprimir al TextBox "desaciertos1" que está en el formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 * Val(aciertos.Text)

resultado1.Show() 'Mandar a llamar al formulario de resultados. El juego ha terminado.

End If

Else 'Si la respuesta introducida por el usuario es diferente de la respuesta correcta.

Dim mensaje As String

mensaje = MsgBox("¡Incorrecto! La respuesta es: " + TextBoxoculto.Text + ".", MsgBoxStyle.OkOnly, "Juego de Operaciones Matemáticas para Bachilleres")

If mensaje = 1 Then 'Si el botón presionado es el "Ok" (que es el único que se le va a presentar entonces ese se tiene que presionar).

'Generación de números aleatorios.

numero1.Text = obtenernumerorandom(1, 99) + "/" + obtenernumerorandom(1, 99) 'Imprime un número random entre 1 y 99 contatenado con "+" concatenado con un número random entre 1 y 99, para obtener algo como "34/42", y eso se imprime en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 99) + "/" + obtenernumerorandom(1, 99) 'Imprime un número random entre 1 y 99 contatenado con "+" concatenado con un número random entre 1 y 99, para obtener algo como "34/42", y eso se imprime en el TextBox "numero2".

respuesta.Text = "" 'Para borrar la respuesta anterior y que el usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que el cursor esté listo y que el usuario escriba su próxima respuesta.

End If

respuestadesaciertos += 1 'Suma un desacierto.

desaciertos.Text = respuestadesaciertos 'Imprime el número de desaciertos en el TextBox.

If respuestaaciertos + respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text 'El número de aciertos se manda a imprimir al TextBox "aciertos1" que está en el formulario "resultado1".

resultado1.desaciertos1.Text = desaciertos.Text 'El número de desaciertos se manda a imprimir al TextBox "desaciertos1" que está en el formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 * Val(aciertos.Text)

resultado1.Show() 'Mandar a llamar al formulario de resultados. El juego ha terminado.

Me.Hide()

End If

End If

End If

End Sub

Private Sub terminar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles terminar1.Click

Dim mensaje As String

mensaje = MsgBox("¿Desea realmente terminar este juego?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para Bachilleres")

If mensaje = 6 Then

resultado1.aciertos1.Text = aciertos.Text 'El número de aciertos se manda a imprimir al TextBox "aciertos1" que está en el formulario "resultado1".

resultado1.desaciertos1.Text = desaciertos.Text 'El número de desaciertos se manda a imprimir al TextBox "desaciertos1" que está en el formulario "resultado1".

resultado1.notafinal1.Text = 10 / (Val(aciertos.Text) + Val(desaciertos.Text)) * Val(aciertos.Text) 'Determinar e imprimir la nota final.

resultado1.Show() 'Mandar a llamar al formulario de resultados. El juego ha terminado.

End If

End Sub

Private Sub respuesta_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles respuesta.KeyPress

Dim contadorplecas As Integer

Dim contadormenos As Integer

Dim longitudcadena As Integer = Len(respuesta.Text) 'Variable para almacenar la longitud de la cadena que hay en un Textbox.

Dim caracterevaluado As String 'Para evaluar caracter por caracter con el Mid().

For ciclo As Integer = 1 To longitudcadena 'Para evaluar caracter por caracter hasta encontrar una "/".

caracterevaluado = Mid(respuesta.Text, ciclo, 1)

If caracterevaluado = "/" Then

contadorplecas = contadorplecas + 1

End If

If caracterevaluado = "-" Then

contadormenos = contadormenos + 1

End If

Next

If (Asc(e.KeyChar) >= 47 And Asc(e.KeyChar) <= 57) Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 45 Then 'Los únicos caracteres que se permitirá introducir en el Textbox serán los números del 0 al 9 (ASCII del 48 al 57); la pleca ("/"), que es el ASCII 47; el signo menos ("-"), que es el ASCII 45; y el retroceso de espacio o backspace para borrar texto introducido, que es el ASCII 8.

If (Asc(e.KeyChar) = 47) Then 'Si se presione la tecla de la pleca ("/").

If (contadorplecas > 0) Then 'Cuando se pretenda introducir una segunda pleca.

e.KeyChar = "" 'Reemplaza la tecla digitada con el valor de nada para que no se puedan introducir caracteres inválidos.

End If

End If

If (Asc(e.KeyChar) = 45) Then 'Si se presione la tecla del signo menos ("-").

If (contadormenos > 0) Then 'Cuando se pretenda introducir una segunda pleca.

e.KeyChar = "" 'Reemplaza la tecla digitada con el valor de nada para que no se puedan introducir caracteres inválidos.

End If

End If

Else

e.KeyChar = "" 'Reemplaza la tecla digitada con el valor de nada para que no se puedan introducir caracteres inválidos.

End If

End Sub

End Class

FORMULARIO restabasico1

Public Class restabasico1

Protected Overrides Sub OnPaint(ByVal Pintar As PaintEventArgs)

Dim Elipse As New Drawing2D.GraphicsPath()

Dim Rectangulo As New Rectangle(8, 28, Me.Width – 13, Me.Height – 40) 'La coordenada "x" de la esquina superior izquierda del rectángulo tiene el valor de 7 para que n o se vea el borde izquierdo del formulario. La coordenada "y" de la esquina superior izquierda del rectángulo tiene el valor de 26, con lo cual se logra que no aparezca la barra de título en el formulario. El ancho del rectángulo es "Me.Width – 13" para que no se vea el borde derecho del formulario. El alto del rectángulo es "Me.Height – 31" para que no se vea la línea inferior del borde.

Elipse.AddEllipse(Rectangulo)

Me.Region = New Region(Elipse)

End Sub

'Las siguientes variables deben ser públicas para que vayan almacenando valores y que los pierdan hasta que explícitamente se programe un cambio de valores o cuando se cierre el formulario.

Public respuestaaciertos As Integer 'Variable que contabiliza el número de aciertos.

Public respuestadesaciertos As Integer 'Variable que contabiliza el número de desaciertos.

Private Sub restabasico1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Al cargar el formulario ya deben aparecer números:

numero1.Text = obtenernumerorandom(1, 99) 'Imprime un número random entre 1 y 99 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 99) 'Imprime un número random entre 1 y 99 en el TextBox "numero2".

aciertos.Text = "0"

desaciertos.Text = "0"

End Sub

Private Sub menu1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menu1.Click

Dim mensaje As String

mensaje = MsgBox("Regresar al menú cancelará su juego actual. ¿Desea continuar?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para Bachilleres")

If mensaje = 6 Then

menu2.Show() 'Llama al formulario "menu2".

Me.Close() 'Cierra el formulario actual.

Else

'No hace nada porque no se ha decidido por parte del usuario regresar al menú.

End If

End Sub

Private Sub terminar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles terminar1.Click

Dim mensaje As String

mensaje = MsgBox("¿Desea realmente terminar este juego?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para Bachilleres")

If mensaje = 6 Then

resultado1.aciertos1.Text = aciertos.Text 'El número de aciertos se manda a imprimir al TextBox "aciertos1" que está en el formulario "resultado1".

resultado1.desaciertos1.Text = desaciertos.Text 'El número de desaciertos se manda a imprimir al TextBox "desaciertos1" que está en el formulario "resultado1".

resultado1.notafinal1.Text = 10 / (Val(aciertos.Text) + Val(desaciertos.Text)) * Val(aciertos.Text) 'Determinar e imprimir la nota final.

resultado1.Show() 'Mandar a llamar al formulario de resultados. El juego ha terminado.

End If

End Sub

Private Sub restar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles restar1.Click

If respuesta.Text = "" Then 'Si el usuario no ha escrito una respuesta.

MsgBox("Escriba la respuesta que considere correcta.", MsgBoxStyle.Exclamation, "Juego de Operaciones Matemáticas para Bachilleres")

respuesta.Focus() 'Se ubica el cursor en el cuadro de texto de respuestas para que el usuario escriba su respuesta.

Else

TextBoxoculto.Text = Val(numero1.Text) – Val(numero2.Text) 'Se guarda en el TextBox oculto la respuesta correcta.

If Mid(respuesta.Text, 1, 1) = "-" Then 'Si el número es negativo.

respuesta.Text = Mid(respuesta.Text, 2, Len(respuesta.Text))

While Mid(respuesta.Text, 1, 2) = "00" Or Mid(respuesta.Text, 1, 2) = "01" Or Mid(respuesta.Text, 1, 2) = "02" Or Mid(respuesta.Text, 1, 2) = "03" Or Mid(respuesta.Text, 1, 2) = "04" Or Mid(respuesta.Text, 1, 2) = "05" Or Mid(respuesta.Text, 1, 2) = "06" Or Mid(respuesta.Text, 1, 2) = "07" Or Mid(respuesta.Text, 1, 2) = "08" Or Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2, Len(respuesta.Text) – 1)

End While

respuesta.Text = "-" + respuesta.Text

Else 'Si el número es positivo.

While Mid(respuesta.Text, 1, 2) = "00" Or Mid(respuesta.Text, 1, 2) = "01" Or Mid(respuesta.Text, 1, 2) = "02" Or Mid(respuesta.Text, 1, 2) = "03" Or Mid(respuesta.Text, 1, 2) = "04" Or Mid(respuesta.Text, 1, 2) = "05" Or Mid(respuesta.Text, 1, 2) = "06" Or Mid(respuesta.Text, 1, 2) = "07" Or Mid(respuesta.Text, 1, 2) = "08" Or Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2, Len(respuesta.Text) – 1)

End While

End If

If (respuesta.Text = TextBoxoculto.Text) Then 'Si la respuesta introducida por el usuario es igual a la respuesta correcta.

Dim mensaje As String

mensaje = MsgBox("¡Felicidades, su respuesta es correcta!", MsgBoxStyle.OkOnly, "Juego de Operaciones Matemáticas para Bachilleres")

If mensaje = 1 Then 'Si el botón presionado es el "Ok" (que es el único que se le va a presentar entonces ese se tiene que presionar).

'Generación de números aleatorios.

numero1.Text = obtenernumerorandom(1, 999) 'Imprime un número random entre 1 y 999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 999) 'Imprime un número random entre 1 y 999 en el TextBox "numero2".

respuesta.Text = "" 'Para borrar la respuesta anterior y que el usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que el cursor esté listo y que el usuario escriba su próxima respuesta.

End If

respuestaaciertos += 1 'Suma un acierto.

aciertos.Text = respuestaaciertos 'Imprime el número de aciertos en el TextBox.

If respuestaaciertos + respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text 'El número de aciertos se manda a imprimir al TextBox "aciertos1" que está en el formulario "resultado1".

resultado1.desaciertos1.Text = desaciertos.Text 'El número de desaciertos se manda a imprimir al TextBox "desaciertos1" que está en el formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 * Val(aciertos.Text)

resultado1.Show() 'Mandar a llamar al formulario de resultados. El juego ha terminado.

Me.Close() 'Cierra el formulario actual.

End If

Else

Dim mensaje As String

mensaje = MsgBox("¡Incorrecto! La respuesta es: " + TextBoxoculto.Text + ".", MsgBoxStyle.OkOnly, "Juego de Operaciones Matemáticas para Bachilleres")

If mensaje = 1 Then 'Si el botón presionado es el "Ok" (que es el único que se le va a presentar entonces ese se tiene que presionar).

'Generación de números aleatorios.

numero1.Text = obtenernumerorandom(1, 999) 'Imprime un número random entre 1 y 999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(1, 999) 'Imprime un número random entre 1 y 999 en el TextBox "numero2".

respuesta.Text = "" 'Para borrar la respuesta anterior y que el usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que el cursor esté listo y que el usuario escriba su próxima respuesta.

End If

respuestadesaciertos += 1 'Suma un desacierto.

desaciertos.Text = respuestadesaciertos 'Imprime el número de desaciertos en el TextBox.

If respuestaaciertos + respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text 'El número de aciertos se manda a imprimir al TextBox "aciertos1" que está en el formulario "resultado1".

resultado1.desaciertos1.Text = desaciertos.Text 'El número de desaciertos se manda a imprimir al TextBox "desaciertos1" que está en el formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 * Val(aciertos.Text)

resultado1.Show() 'Mandar a llamar al formulario de resultados. El juego ha terminado.

Me.Close() 'Cierra el formulario actual.

End If

End If

End If

End Sub

Private Sub respuesta_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles respuesta.KeyPress

If (Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57) Or (Asc(e.KeyChar)) = 8 Then 'Los únicos caracteres que se permiritá introducir en el TextBox serán los números del 0 al 9 (ASCII del 48 al 57) y se permitirá también usar el Backspace (ASCII 8) para borrar. El signo menos (ASCII 45) se evalúa más adelante.

'No se hace nada porque el caracte presionado es válido.

Else

If (Asc(e.KeyChar)) = 45 Then 'Si se introduce un signo menos, se evaluará que no haya más de uno.

Dim contadormenos As Integer 'Para programar que no se permitan varios signos menos en la respuesta.

Dim caracterevaluado As String 'Para evaluar caracter por caracter con el Mid().

Dim longitudcadena As Integer = Len(respuesta.Text) 'Variable para almacenar la longitud de la cadena que hay en el text box "respuesta".

For ciclo As Integer = 1 To longitudcadena 'Para evaluar caracter por caracter hasta encontrar un signo menos.

caracterevaluado = Mid(respuesta.Text, ciclo, 1) 'Toma el caracter correspondiente, dependiendo de la iteración en la que vaya el ciclo For.

If ciclo = 1 Then 'Si el signo menos se digita al principio, no en medio ni al final.

contadormenos += 1

Else

If caracterevaluado = "-" Then 'Si el signo menos se digita en una posición que no es al principio, lo que se programa es que borre ese signo digitado, de modo que no se permitirá escribirlo en una posición que no sea al principio.

e.KeyChar = ""

MsgBox("El signo menos sólo puede aparecer al inicio de la respuesta.", MsgBoxStyle.Exclamation, "Juego de Operaciones Básicas para Bachilleres")

End If

End If

Next

If contadormenos > 0 Then 'Si ya se ha digitado un signo menos.

e.KeyChar = "" 'Reemplaza la letra o caracter digitado por un valor vacío, de manera que no se permita la introducción de más de un punto.

End If

Else 'Si el caracter introducido es inválido.

e.KeyChar = "" 'Reemplaza la letra o caracter digitado por un valor vacío, de manera que no se permita la introducción de caracteres inválidos.

End If

End If

End Sub

End Class

FORMULARIO restaintermedio1

Public Class restaintermedio1

Protected Overrides Sub OnPaint(ByVal Pintar As PaintEventArgs)

Dim Elipse As New Drawing2D.GraphicsPath()

Dim Rectangulo As New Rectangle(8, 28, Me.Width – 13, Me.Height – 40) 'La coordenada "x" de la esquina superior izquierda del rectángulo tiene el valor de 7 para que n o se vea el borde izquierdo del formulario. La coordenada "y" de la esquina superior izquierda del rectángulo tiene el valor de 26, con lo cual se logra que no aparezca la barra de título en el formulario. El ancho del rectángulo es "Me.Width – 13" para que no se vea el borde derecho del formulario. El alto del rectángulo es "Me.Height – 31" para que no se vea la línea inferior del borde.

Elipse.AddEllipse(Rectangulo)

Me.Region = New Region(Elipse)

End Sub

'Las siguientes variables deben ser públicas para que vayan almacenando valores y que los pierdan hasta que explícitamente se programe un cambio de valores o cuando se cierre el formulario.

Public respuestaaciertos As Integer 'Variable que contabiliza el número de aciertos.

Public respuestadesaciertos As Integer 'Variable que contabiliza el número de desaciertos.

Private Sub restaintermedio1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Al cargar el formulario ya deben aparecer números:

numero1.Text = obtenernumerorandom(100, 999999) 'Imprime un número random entre 100 y 999999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(100, 999999) 'Imprime un número random entre 100 y 999999 en el TextBox "numero2".

aciertos.Text = "0"

desaciertos.Text = "0"

End Sub

Private Sub menu1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menu1.Click

Dim mensaje As String

mensaje = MsgBox("Regresar al menú cancelará su juego actual. ¿Desea continuar?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para Bachilleres")

If mensaje = 6 Then

menu2.Show() 'Llama al formulario "menu2".

Me.Close() 'Cierra el formulario actual.

Else

'No hace nada porque no se ha decidido por parte del usuario regresar al menú.

End If

End Sub

Private Sub terminar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles terminar1.Click

Dim mensaje As String

mensaje = MsgBox("¿Desea realmente terminar este juego?", MsgBoxStyle.YesNo, "Juego de Operaciones Básicas para Bachilleres")

If mensaje = 6 Then

resultado1.aciertos1.Text = aciertos.Text 'El número de aciertos se manda a imprimir al TextBox "aciertos1" que está en el formulario "resultado1".

resultado1.desaciertos1.Text = desaciertos.Text 'El número de desaciertos se manda a imprimir al TextBox "desaciertos1" que está en el formulario "resultado1".

resultado1.notafinal1.Text = 10 / (Val(aciertos.Text) + Val(desaciertos.Text)) * Val(aciertos.Text) 'Determinar e imprimir la nota final.

resultado1.Show() 'Mandar a llamar al formulario de resultados. El juego ha terminado.

End If

End Sub

Private Sub restar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles restar1.Click

If respuesta.Text = "" Then 'Si el usuario no ha escrito una respuesta.

MsgBox("Escriba la respuesta que considere correcta.", MsgBoxStyle.Exclamation, "Juego de Operaciones Matemáticas para Bachilleres")

respuesta.Focus() 'Se ubica el cursor en el cuadro de texto de respuestas para que el usuario escriba su respuesta.

Else

TextBoxoculto.Text = Val(numero1.Text) – Val(numero2.Text) 'Se guarda en el TextBox oculto la respuesta correcta.

If Mid(respuesta.Text, 1, 1) = "-" Then 'Si el número es negativo.

respuesta.Text = Mid(respuesta.Text, 2, Len(respuesta.Text))

While Mid(respuesta.Text, 1, 2) = "00" Or Mid(respuesta.Text, 1, 2) = "01" Or Mid(respuesta.Text, 1, 2) = "02" Or Mid(respuesta.Text, 1, 2) = "03" Or Mid(respuesta.Text, 1, 2) = "04" Or Mid(respuesta.Text, 1, 2) = "05" Or Mid(respuesta.Text, 1, 2) = "06" Or Mid(respuesta.Text, 1, 2) = "07" Or Mid(respuesta.Text, 1, 2) = "08" Or Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2, Len(respuesta.Text) – 1)

End While

respuesta.Text = "-" + respuesta.Text

Else 'Si el número es positivo.

While Mid(respuesta.Text, 1, 2) = "00" Or Mid(respuesta.Text, 1, 2) = "01" Or Mid(respuesta.Text, 1, 2) = "02" Or Mid(respuesta.Text, 1, 2) = "03" Or Mid(respuesta.Text, 1, 2) = "04" Or Mid(respuesta.Text, 1, 2) = "05" Or Mid(respuesta.Text, 1, 2) = "06" Or Mid(respuesta.Text, 1, 2) = "07" Or Mid(respuesta.Text, 1, 2) = "08" Or Mid(respuesta.Text, 1, 2) = "09" 'Para que los ceros a la izquierda se borren.

respuesta.Text = Mid(respuesta.Text, 2, Len(respuesta.Text) – 1)

End While

End If

If (respuesta.Text = TextBoxoculto.Text) Then 'Si la respuesta introducida por el usuario es igual a la respuesta correcta.

Dim mensaje As String

mensaje = MsgBox("¡Felicidades, su respuesta es correcta!", MsgBoxStyle.OkOnly, "Juego de Operaciones Matemáticas para Bachilleres")

If mensaje = 1 Then 'Si el botón presionado es el "Ok" (que es el único que se le va a presentar entonces ese se tiene que presionar).

'Generación de números aleatorios.

numero1.Text = obtenernumerorandom(100, 999999) 'Imprime un número random entre 100 y 999999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(100, 999999) 'Imprime un número random entre 100 y 999999 en el TextBox "numero2".

respuesta.Text = "" 'Para borrar la respuesta anterior y que el usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que el cursor esté listo y que el usuario escriba su próxima respuesta.

End If

respuestaaciertos += 1 'Suma un acierto.

aciertos.Text = respuestaaciertos 'Imprime el número de aciertos en el TextBox.

If respuestaaciertos + respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text 'El número de aciertos se manda a imprimir al TextBox "aciertos1" que está en el formulario "resultado1".

resultado1.desaciertos1.Text = desaciertos.Text 'El número de desaciertos se manda a imprimir al TextBox "desaciertos1" que está en el formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 * Val(aciertos.Text)

resultado1.Show() 'Mandar a llamar al formulario de resultados. El juego ha terminado.

Me.Close() 'Cierra el formulario actual.

End If

Else

Dim mensaje As String

mensaje = MsgBox("¡Incorrecto! La respuesta es: " + TextBoxoculto.Text + ".", MsgBoxStyle.OkOnly, "Juego de Operaciones Matemáticas para Bachilleres")

If mensaje = 1 Then 'Si el botón presionado es el "Ok" (que es el único que se le va a presentar entonces ese se tiene que presionar).

'Generación de números aleatorios.

numero1.Text = obtenernumerorandom(100, 999999) 'Imprime un número random entre 100 y 999999 en el TextBox "numero1".

numero2.Text = obtenernumerorandom(100, 999999) 'Imprime un número random entre 100 y 999999 en el TextBox "numero2".

respuesta.Text = "" 'Para borrar la respuesta anterior y que el usuario escriba una nueva respuesta.

respuesta.Focus() 'Para que el cursor esté listo y que el usuario escriba su próxima respuesta.

End If

respuestadesaciertos += 1 'Suma un desacierto.

desaciertos.Text = respuestadesaciertos 'Imprime el número de desaciertos en el TextBox.

If respuestaaciertos + respuestadesaciertos = 20 Then

resultado1.aciertos1.Text = aciertos.Text 'El número de aciertos se manda a imprimir al TextBox "aciertos1" que está en el formulario "resultado1".

resultado1.desaciertos1.Text = desaciertos.Text 'El número de desaciertos se manda a imprimir al TextBox "desaciertos1" que está en el formulario "resultado1".

resultado1.notafinal1.Text = 10 / 20 * Val(aciertos.Text)

resultado1.Show() 'Mandar a llamar al formulario de resultados. El juego ha terminado.

Me.Close() 'Cierra el formulario actual.

End If

End If

End If

End Sub

Private Sub respuesta_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles respuesta.KeyPress

If (Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57) Or (Asc(e.KeyChar)) = 8 Then 'Los únicos caracteres que se permiritá introducir en el TextBox serán los números del 0 al 9 (ASCII del 48 al 57) y se permitirá también usar el Backspace (ASCII 8) para borrar. El signo menos (ASCII 45) se evalúa más adelante.

'No se hace nada porque el caracte presionado es válido.

Else

If (Asc(e.KeyChar)) = 45 Then 'Si se introduce un signo menos, se evaluará que no haya más de uno.

Dim contadormenos As Integer 'Para programar que no se permitan varios signos menos en la respuesta.

Dim caracterevaluado As String 'Para evaluar caracter por caracter con el Mid().

Dim longitudcadena As Integer = Len(respuesta.Text) 'Variable para almacenar la longitud de la cadena que hay en el text box "respuesta".

For ciclo As Integer = 1 To longitudcadena 'Para evaluar caracter por caracter hasta encontrar un signo menos.

caracterevaluado = Mid(respuesta.Text, ciclo, 1) 'Toma el caracter correspondiente, dependiendo de la iteración en la que vaya el ciclo For.

If ciclo = 1 Then 'Si el signo menos se digita al principio, no en medio ni al final.

contadormenos += 1

Else

If caracterevaluado = "-" Then 'Si el signo menos se digita en una posición que no es al principio, lo que se programa es que borre ese signo digitado, de modo que no se permitirá escribirlo en una posición que no sea al principio.

e.KeyChar = ""

MsgBox("El signo menos sólo puede aparecer al inicio de la respuesta.", MsgBoxStyle.Exclamation, "Juego de Operaciones Básicas para Bachilleres")

End If

End If

Next

If contadormenos > 0 Then 'Si ya se ha digitado un signo menos.

e.KeyChar = "" 'Reemplaza la letra o caracter digitado por un valor vacío, de manera que no se permita la introducción de más de un punto.

End If

Else 'Si el caracter introducido es inválido.

e.KeyChar = "" 'Reemplaza la letra o caracter digitado por un valor vacío, de manera que no se permita la introducción de caracteres inválidos.

End If

End If

End Sub

End Class

Partes: 1, 2, 3, 4, 5, 6
 Página anterior Volver al principio del trabajoPágina siguiente