Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 3
Ir a la página Anterior  1, 2, 3  Siguiente
 
Crear Un Juego A Base De Preguntas Y Respuestas
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
Rutinas para cargar rankings, en la primera insertamos los datos en la tabla,en  la segunda cargamos lo datos de la tabla "ranking" en el columnViev.

Public Sub AnotarPuntos()
  Dim respuesta As Result
    
  respuesta = ConexionJuego.Exec("insert into ranking (idranking,categoria,nivel,usuario,puntos) values(&1,&2,&3,&4,&5)", Null, categoria, nivel, txtLJugador.Text, LCDLPuntos.Text)
  CargarRankings()
    
End


Public Sub CargarRankings()
  Dim resultado As Result
  Dim Clave As String
  
  resultado = ConexionJuego.Exec("select * from 'ranking'")
  
  CViewPociones.Clear
  
  Do While resultado.Available
     Clave = resultado["idranking"]
     CViewPociones.add(Clave, Clave)
     CViewPociones[Clave][1] = resultado!categoria
     CViewPociones[Clave][2] = resultado!nivel
     CViewPociones[Clave][3] = resultado!usuario
     CViewPociones[Clave][4] = resultado!puntos
  
     resultado.MoveNext
  
  Loop
  
End
 


 puntos33
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Martes, 28 Julio 2015, 23:49; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
cambio en la rutina para rellenar datos en el columnViev

Cambie la sentencia sql para que ordenara por puntos (orden descendente) y en vez de colocar el idranking, uso un contador, de esa forma logro poner la posiciones según los puntos.


Public Sub CargarRankings()
  Dim resultado As Result
  Dim Clave As String
  Dim Lugar As Integer = 1
  
  resultado = ConexionJuego.Exec("select * from 'ranking' ORDER BY puntos desc")
  
  CViewPociones.Clear
  
  Do While resultado.Available

     CViewPociones.add(Lugar, Lugar)
     CViewPociones[Lugar][1] = resultado!puntos
     CViewPociones[Lugar][2] = resultado!usuario
     CViewPociones[Lugar][3] = resultado!categoria
     CViewPociones[Lugar][4] = resultado!nivel
  
     resultado.MoveNext
     Inc Lugar
  Loop
  
End


 777_1438131468_881867
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Miercoles, 29 Julio 2015, 15:40; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
Buenas,

subí la nueva versión a la granja (0.2.8) contiene el código del juego que ya esta funcionando aceptable mente, falta pulir mucho, llenar la base de datos (ardua tarea)

no se que pasa con sourceforge, esta offline, se ve que tienen quilombo y no han podido arreglarlo  
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Viernes, 31 Julio 2015, 16:14; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
buenas,

pensando en la base de datos de las preguntas con sus respectivas respuestas.

se plantea un gran reto y es catalogar las preguntas por su dificultad, algo muy difícil de hacer bien.....ahora bien he pensado que si pudiera, pues no creo tener la capacidad para programar tal cosa, es... crear un sistema que recopile las preguntas con mas errores al contestar eso me daría el nivel de dificultad de la pregunta según estadísticas.

como recopilar los datos?
sin internet y/o con internet.....

alguien sabe como se podría plantear esto?
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
buenas,

Resulta que al instalar la nueva versión el programa sigue usando la base de datos de la versión anterior pues solo hacia una comprobación si la base de datos sql existe, si existe no hace nada y si no existe copia en la carpeta el programa una copia de la base de datos alojada en el propio programa.

el problema se arregla si eliminas la base de datos, ahí el programa la repone y queda actualizada. pero.. el buen programador debe solucionar todo lo que sea posible sin la intervención del usuario, así que tuve que hacer otra comprobación además de si existe o no y es el tamaño de la base de datos que por lo general la anterior es mas pequeña

por lo tanto haciendo una comparación con stat(base de datos).size a las dos base de datos y si hay diferencias eliminar la base y remplazar y de esa manera queda solucionado el tema y la base de datos queda actualizada.

veamos el código.

If Not Exist(RutaBD) Then
      ExisteBaseDatos()
  Else
      If Stat(RutaBD).Size <> Stat("BibliaRV1960").Size Then
        ActualizarBDbiblia()
      Endif
  Endif


Public Sub ExisteBaseDatos()

  If Exist(DirBD) = False Then
     Mkdir DirBD
     Wait 1
  Endif
  
  If Exist(DirBD) = True Then
     application.busy = 1
     Try Copy "BibliaRV1960" To DirBD &/ "BibliaRV1960"
     application.busy = 0
     If Error Then
          Print Error(Error.Text)
       Return
     Endif
   Endif
  
End


Public Sub ActualizarBDbiblia()
  
  If Exist(DirBD) = False Then
     Mkdir DirBD
     Wait 1
  Endif
  
  If Exist(RutaBD) = True Then
     Inc Application.Busy
     Shell "rm " & RutaBD
     Wait 0.2
     Copy "BibliaRV1960" To DirBD &/ "BibliaRV1960"
     Dec Application.Busy
  Else
     Inc Application.Busy
     Copy "BibliaRV1960" To DirBD &/ "BibliaRV1960"
     Dec Application.Busy
  Endif
  
End
 

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Viernes, 31 Julio 2015, 16:17; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
Segunda vez que uso una función esta vez devuelve un string es una función que traduce palabras.




Public Sub btnComenzar_Click()
  Dim respuestaX As Byte
  
  If Jugando = False Then
     If cbxUsuarios.Index = 0 Then
        btnComenzar.Text = "Terminar"
        Jugando = True
        PanJuego.Visible = True
        txtpasswd.Clear
        txtRespuesta.Clear
        LabVida.Text = "Vida " & Vidas
        txtLJugador.Text = cbxUsuarios.Text
        LabCatNivel.Text = "<b>Categoría:</b> " & TraducirCategorias(categoria) & " (Nivel " & Nivel & ")" '<--llamamos la función
        OcultarCategorias(True)
        MostrarPregunta()
        txtRespuesta.SetFocus  
        
      Else
         If txtpasswd.Text = "" Then
            Message.Error("Ingrese contraseña por favor")
            txtpasswd.SetFocus
            Return
         Endif
         Autentificacion(Trim$(cbxUsuarios.Text))
         If identificacion = False Then
            Message.Error("Contraseña incorrecta, preste atención!")
            txtpasswd.Clear
            txtpasswd.SetFocus
            Return
         Endif
         'DATOS QUE NECESITO PARA MOSTRAR PREGUNTA: CATEGORIA, NIVEL
         txtpasswd.Clear
         txtRespuesta.Clear
         btnComenzar.Text = "Terminar"
         Jugando = True
         LabVida.Text = "Vida " & Vidas
         txtLJugador.Text = cbxUsuarios.Text
         LabCatNivel.Text = "<b>Categoría:</b> " & TraducirCategorias(categoria) & " (Nivel " & Nivel & ")"  '<----- llamamos la función
         OcultarCategorias(True)
         MostrarPregunta()
         PanJuego.Visible = True
         txtRespuesta.SetFocus
      Endif
  Else
    
    PanJuego.Visible = False
    If txtLJugador.Text <> "Invitado" Then
       respuestaX = Message.Question("Quiere anotar sus puntos?", "Sí, quiero anotar", "No, no anotar")
       If respuestaX = 1 Then AnotarPuntos()
    Endif
    btnComenzar.Text = "Jugar"
    txtLJugador.Text = "Invitado"
    Jugando = False
    ResetJuegoTerminado
     OcultarCategorias(False)
      
  Endif
  
 
  
End


Public Function TraducirCategorias(texto As String) As String
  Dim TextoCategoria As String
  
  Select Case texto
    Case "muyfacil"
      TextoCategoria = "Muy fácil"
    Case "facil"
      TextoCategoria = "Fácil"
    Case "normal"
      TextoCategoria = "Normal"
  End Select
  
  Return TextoCategoria
  
End

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
Yo utilizo algo mucho más confiable para determinar si la base de datos es la correcta.

En tu base de datos sqlite puedes establecer el valor de Pragma user_version igual a un número entero que te permite determinar la versión de tu base de datos. Luego en tu programa compruebas la versión y si es menor, actualizas o avisas al usuario.

Un sencillo ejemplo:

Dim dbVersion as Integer

' para establecer el valor de la versión (numero entero)
' cuando creas las tablas
conexion.Exec("PRAGMA tu_database.user_version = &1;", dbVersion)

' para obtener la versión de la base de datos
dbVersion = conexion.Exec("PRAGMA tu_database.user_version;")


El uso final puede variar en tu caso, pero esas son las líneas generales.

Este método es mucho más seguro que comparar el tamaño de la bd.

Mucha más información de los pragmas en ésta web: https://www.sqlite.org/pragma.html#pragma_schema_version

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
buenas,

 
If Not Exist(RutaBD) Then
      ExisteBaseDatos()
  Else
      If Stat(RutaBD).Size < Stat("BibliaRV1960").Size Then
        ' Print "Base Antigua: " & Stat(RutaBD).Size
        ' Print "Última versión: " & Stat("BibliaRV1960").Size
        Message.Info("Se actualizará la base de datos..." & gb.NewLine & "Base antigua: " & Stat(RutaBD).Size & gb.NewLine & "Última versión: " & Stat("BibliaRV1960").Size)
        ActualizarBDbiblia()
      Endif
  Endif  


he descubierto que Stat(RutaBD).Size  no es preciso pues agrego algunas letras y la comparación no la detecta      


digamos que termino de llenar la base de datos(a fines del año que viene calculo)

y alguien me avisa por correo que hay una falta de ortografía o algún signo incorrecto.
pues bien lo corrijo y resulta que el programa no hallara la diferencia.       

hay alguna forma de que Stat(RutaBD).Size  tenga un formato mas largo para tener mas precisión?               

  voy a tener que aprender el método que me comentaste  
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Miercoles, 05 Agosto 2015, 16:51; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
v3ctor escribió: [Ver mensaje]


  voy a tener que aprender el método que me comentaste  


Sin duda. Es lo más inteligente además de elegante  

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Un Juego A Base De Preguntas Y Respuestas 
 
buenas,

mejore la rutina y ahora si detecta cualquier cambio ya sea un insignificante tilde o letra:

el programa verifica si la base de datos instalada es menor a la original si es así, elimina la vieja e instala la ultima versión.
en caso que tenga la misma cantidad de bytes verifica la fecha de modificación,
si la fecha de modificación es menor a la fecha de modificación de la base de datos de la ultima versión elimina la base de datos vieja e copia la nueva en el directorio de trabajo.

If Exist(RutaBD) Then Print "Base Antigua: " & Stat(RutaBD).Size
      Print "Última versión: " & Stat("BibliaRV1960").Size
  
  If Not Exist(RutaBD) Then
      ExisteBaseDatos()
  Else
      
      If Stat(RutaBD).Size < Stat("BibliaRV1960").Size Then
              Message.Info("Se actualizará la base de datos..." & gb.NewLine & "Base antigua: " & Stat(RutaBD).Size & gb.NewLine & "Última versión: " &   Stat("BibliaRV1960").Size)
        ActualizarBDbiblia()
      Else
         If Stat(RutaBD).Size = Stat("BibliaRV1960").Size Then
           If Stat(RutaBD).LastModified < Stat("BibliaRV1960").LastModified Then
             Message.Info("Se actualizará la base de datos..." & gb.NewLine & "Base antigua: " & Stat(RutaBD).Size & gb.NewLine & "Última versión: " & Stat("BibliaRV1960").Size)
             ActualizarBDbiblia()
           Endif
         Endif
      Endif
  Endif

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Arbol Binario: El Juego De Las Preguntas Y... jsbsan Aplicaciones/Fragmentos de Código 0 Lunes, 13 Agosto 2012, 16:19 Ver último mensaje
jsbsan
No hay nuevos mensajes Crear Un Juego De Memoria En Gambas gamasuser1093 Videotutoriales 2 Domingo, 30 Noviembre 2014, 10:16 Ver último mensaje
Shell
No hay nuevos mensajes Creación De Un Juego Didáctico: Pregunta... jsbsan Videotutoriales 4 Domingo, 08 Marzo 2015, 04:17 Ver último mensaje
portaro
No hay nuevos mensajes Blocky Games. Crear Un Juego Con Bloques D... Shell General 0 Jueves, 26 Julio 2018, 07:48 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 2 de 3
Ir a la página Anterior  1, 2, 3  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron