elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ayuda con juego
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con juego  (Leído 2,543 veces)
rubenju

Desconectado Desconectado

Mensajes: 1


Ver Perfil
ayuda con juego
« en: 11 Abril 2019, 02:15 am »

Hola, alguien podría ayudarme con la programación de un juego en visual basic, algo asi como: un juego de preguntas y respuestas, que sea por niveles, es decir cada 5 preguntas avanza un nivel . Se agradece la ayuda


En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: ayuda con juego
« Respuesta #1 en: 11 Abril 2019, 04:07 am »

 Usa dos ficheros, uno para las preguntas y otro para las respuestas. En el fichero de preguntas las líneas pares son preguntas y las impares el número de la respuesta numérica que tiene como primera cero. Para las respuestas podrías ponerlas en cada línea y poner una línea vacía para indicar que ya no hay más respuestas para la pregunta correspondiente.

 Teniendo ésto simplemente debes aprender a pasar los ficheros a dos arrays, preguntas y respuestas, donde respuestas sería un array bidimensional. Luego aprendes a pasar esos arrays a una interfaz de usuario, por ejemplo la consola.

https://docs.microsoft.com/es-es/dotnet/visual-basic/developing-apps/programming/drives-directories-files/walkthrough-manipulating-files-and-directories

https://docs.microsoft.com/es-es/dotnet/visual-basic/programming-guide/language-features/arrays/

https://docs.microsoft.com/es-es/visualstudio/ide/quickstart-visual-basic-console?view=vs-2019

https://docs.microsoft.com/es-es/dotnet/visual-basic/programming-guide/language-features/control-flow/loop-structures

https://docs.microsoft.com/es-es/dotnet/visual-basic/programming-guide/language-features/control-flow/decision-structures

https://docs.microsoft.com/es-es/dotnet/visual-basic/programming-guide/language-features/variables/variable-declaration

https://docs.microsoft.com/es-es/dotnet/visual-basic/programming-guide/language-features/declared-elements/scope


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: ayuda con juego
« Respuesta #2 en: 11 Abril 2019, 18:08 pm »

¿Qué tienes hecho hasta el momento.?

Si no tienes ni por donde empezar:
Lo ideal es que esté diseñado tipo test...
Una pregunta y 3-4-5 respuestas posibles donde elgir (un número fijo facilita la cuestión a un novato).

Así debería empezar por crear una estructura así:
Código
  1. private type PreguntaRespuestas
  2.    Pregunta        as string
  3.    RespuestaA    as string
  4.    RespuestaB    as string
  5.    RespuestaC    as string
  6.    RespuestaD    as string
  7.    Solucion         as byte
  8. end type
  9.  
  10. ' y las declaraciones de variables (algunas son redundantes pero ayudan a un novato a entender mejor...
  11.  
  12.  
  13. Private NumPreguntas    As Integer                  ' Numero total de preguntas que tiene el fichero.
  14. Private NumPregunta     As Integer                  ' n de pregunta.
  15. Private Nivel           As Byte                     ' Nivel actual
  16. Private Pregunta        As PreguntaRespuestas       ' Datos d ela pregunta
  17. Private Respuesta       As Integer                  ' respuesta que da el usuario
  18. Private Aciertos        As Integer                  ' Cantidad de aciertos hasta el momento
  19. Private Ruta            As String                   ' la ruta donde s elocaliza el fichero
  20. Private Canal           As Integer                  ' Canal de lectura/escritura del fichero
  21.  

Luego se trata de leer el fichero, una entrada por cada pregunta...
Con "line input" se leen líneas enteras, así que el fichero debe mantener la estructura de más arriba, además, debería haber una cabecera en el fichero que indique cuantas preguntas contiene el fichero...

El código para leer la siguiente pregunta podría ser tal que así:
(primero hay que abrirlo, desde la carga del proyecto y en adelante, desde el botón de cambiar la ruta)
Código
  1. Private Sub LeerSiguientePregunta()
  2.    Dim sol As String
  3.  
  4.    If (Not EOF(Canal)) Then
  5.        On Error GoTo ProblemoGordo
  6.        With Pregunta
  7.            ' leer la pregunta del fichero.
  8.            Line Input #Canal, .Pregunta
  9.            Line Input #Canal, .RespuestaA
  10.            Line Input #Canal, .RespuestaB
  11.            Line Input #Canal, .RespuestaC
  12.            Line Input #Canal, .RespuestaD
  13.            Line Input #Canal, sol
  14.            .Solucion = Val(sol)
  15.  
  16.            ' pasar los datos a la interfaz.
  17.            LabPregunta.Caption = .Pregunta
  18.            OptRespuesta(0).Caption = "A)   " & .RespuestaA
  19.            OptRespuesta(1).Caption = "B)   " & .RespuestaB
  20.            OptRespuesta(2).Caption = "C)   " & .RespuestaC
  21.            OptRespuesta(3).Caption = "D)   " & .RespuestaD
  22.  
  23.            ' actualizar numero de pregunta e informar luego del numero.
  24.            NumPregunta = (NumPregunta + 1)
  25.            FraPreguntas.Caption = "Pregunta Nº: " & CStr(NumPregunta) & " de " & CStr(NumPreguntas)
  26.  
  27.            ' desactivar como respuesta la previa elegida.
  28.            OptRespuesta(Respuesta).Value = False
  29.            Respuesta = -1
  30.        End With
  31.  
  32.        ' Activar el boton de examinar: Se activa cuando se pulse en una respuesta.
  33.        Exit Sub
  34.  
  35. ProblemoGordo:
  36.        MsgBox "Ocurrio un problema al tratar de leer la siguiente pregunta del fichero..." & vbCrLf & Err.Description, vbCritical, "Ocurrio un error de lectura..."
  37.        Err.Clear
  38.    Else
  39.        MsgBox "El fichero no tiene mas preguntas... Carga otro si lo deseas...", vbInformation, "No hay mas preguntas en este fichero:"
  40.    End If
  41.  
  42.    Call Cerrar
  43. End Sub


Los botones examinar y leer  siguient epregunta, podrían ser tal que así:
Código
  1. Private Sub ComExaminar_Click()
  2.    ComExaminar.Enabled = False
  3.    Call ValidarRespuesta
  4.    ComSiguiente.Enabled = True
  5. End Sub
  6.  
  7. Private Sub ComSiguiente_Click()
  8.    ComSiguiente.Enabled = False
  9.    ShaRespuesta.Visible = False
  10.    ShaSolucion.Visible = False
  11.  
  12.    If (NumPregunta < NumPreguntas) Then
  13.        Call LeerSiguientePregunta
  14.    Else
  15.        Call PresentarResultados
  16.    End If
  17. End Sub


Validar la respuesta que da el usuario...
Código
  1. ' Mostrar resultado de la pregunta actual.
  2. Private Sub ValidarRespuesta()
  3.    Dim t As Long
  4.  
  5.    t = ((OptRespuesta(0).Height - ShaSolucion.Height) \ 2)
  6.    If (Respuesta = Pregunta.Solucion) Then
  7.        Aciertos = (Aciertos + 1)
  8.        LabAciertos.Caption = "Aciertos: " & CStr(Aciertos)
  9.        ShaRespuesta.BackColor = vbGreen
  10.        Nivel = ((Aciertos - 1) Mod 5)      ' 0-4 = nivel 0; 5-9 = nivel 1, etc...
  11.        LabNivel.Caption = "Nivel: " & CStr(Nivel)
  12.    Else
  13.        ShaRespuesta.BackColor = vbRed
  14.    End If
  15.  
  16.    ShaSolucion.Top = (OptRespuesta(Pregunta.Solucion).Top + t)
  17.    ShaSolucion.Visible = True
  18.    ShaRespuesta.Top = (OptRespuesta(Respuesta).Top + t)
  19.    ShaRespuesta.Visible = True
  20. End Sub



...y no sigo porque si no, te lo doy todo hecho...
Te falta comprobar/abrir/cargar el fichero.... responder a qué pasa cuando se pulsa en un control 'option'... y poco más.
Te pongo una imagen de como podría ser la interfaz...




Este foro es el de VB6 y versones anteriores, el de NET está en más arriba... aunque a veces llegan aquí equivocadamente...
« Última modificación: 11 Abril 2019, 18:14 pm por NEBIRE » En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: ayuda con juego
« Respuesta #3 en: 11 Abril 2019, 18:38 pm »

Este foro es el de VB6 y versones anteriores, el de NET está en más arriba... aunque a veces llegan aquí equivocadamente...

El término es ambiguo porque también existe el VB Script o el VBA. En mi humilde opinión se debería cambiar el nombre a Visual Basic 6 para evitar la confusión o si se quiere abarcar todos los lenguajes basados en basic llamarlo Lenguajes BASIC.

Gracias por la aclaración.
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: ayuda con juego
« Respuesta #4 en: 11 Abril 2019, 19:04 pm »

Por supuesto, es razonable que el nombre no es exacto...
...para alguien nuevo en el foro puede acceder equivocadamente, en cambio para los que ya llevan un tiempo en el foro, saber de la existencia del foro NET, descarta a éste para tal menester.

Pero vamos son los admins los que deben tomar tales decisiones.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con un juego
Juegos y Consolas
TheChivo 0 1,850 Último mensaje 7 Septiembre 2004, 09:53 am
por TheChivo
Ayuda con un juego
Juegos y Consolas
nov_led 2 1,828 Último mensaje 29 Octubre 2005, 07:43 am
por aNexos
Juego por lan (css) ayuda
Juegos y Consolas
ayleid 1 1,719 Último mensaje 11 Febrero 2008, 20:02 pm
por Bht Sata
ayuda con juego de rol
Juegos y Consolas
f3d3cav 2 1,834 Último mensaje 9 Abril 2008, 23:18 pm
por Castiblanco
Ayuda con juego
Programación Visual Basic
kiwisucks 4 1,877 Último mensaje 21 Octubre 2008, 01:42 am
por kiwisucks
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines