|
Página 2 de 3
|
Crear Un Juego A Base De Preguntas Y Respuestas
Autor |
Mensaje |
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
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
=================== 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
|
#11 Martes, 28 Julio 2015, 23:45 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
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
=================== 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
|
#12 Miercoles, 29 Julio 2015, 02:01 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
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
|
#13 Jueves, 30 Julio 2015, 19:01 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
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/
|
#14 Jueves, 30 Julio 2015, 19:53 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
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.
=================== 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
|
#15 Viernes, 31 Julio 2015, 15:21 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
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/
|
#16 Viernes, 31 Julio 2015, 20:16 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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"
|
#17 Sabado, 01 Agosto 2015, 12:23 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Crear Un Juego A Base De Preguntas Y Respuestas
=================== 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
|
#18 Miercoles, 05 Agosto 2015, 15:12 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Crear Un Juego A Base De Preguntas Y Respuestas
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"
|
#19 Miercoles, 05 Agosto 2015, 16:15 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
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/
|
#20 Martes, 11 Agosto 2015, 17:50 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 2 de 3
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|