Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 3
Ir a la página 1, 2, 3  Siguiente
 
Crear Un Juego A Base De Preguntas Y Respuestas
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Crear Un Juego A Base De Preguntas Y Respuestas 
 
buenas,

bueno parece que buenas ideas no me faltan pero si nivel de programación

aparte de hacer una linea de tiempo para facilitar el estudio en el programa VisorRV1960

se me ocurre que hacer un juego a base de preguntas y respuestas con al menos 3 niveles
(seria una forma de aprender divirtiéndose)

para niños, nivel 3
para jovenes, nivel 2
para adultos, nivel 1

con sistema de puntos, veamos que sale.

en principio seria elegir el nivel

en base al nivel las preguntas que se harán y sus respuestas

tablas de mejor puntaje (ranking)

supongo que tendré que hacer una base de datos exclusiva para el juego, poniendo la pregunta y la respuesta correcta...

hay varios sistemas, uno seria hacer la pregunta y esperar un respuesta correcta sino seria un fallo y sin puntos
otra podría ser la pregunta y poner varias respuestas a elegir

que piensan ustedes?

editado:
o tal vez hacer categorías, tipo: niños, jóvenes, adultos y dentro de cada categoría niveles que puedan ir del 1 al 5 sigo esquematizando de como seria el funcionamiento.

editado2:
otra idea es poner tiempo limite en los niveles mas altos para darle emoción jajajaj
en el nivel 4 un minuto para responder y en el nivel 5 solo el tiempo para tipear la respuesta jajajaja.

editado3:
hay que crear una tabla con lista de nombres de los jugadores con un password de ingreso.....

editado4:
después de elegir jugador (si no existe el jugador hacer un sistema de ingreso con nombre y contraseña)
y la categoría empieza el juego, se comienza con nivel 1 haciendo 5 preguntas si responde bien pasa a nivel dos siendo las preguntas mas difíciles y mayor cantidad
pasando por ejemplo de 5 a 10 preguntas así sucesivamente.
si no responde las 5 preguntas termina el juego y se anota el puntaje del jugador en la categoría jugada.

la interfaz de comienzo (croquis)

 juegovisorrv1960

editado5:
tal vez sea mejor ponerle a los nombres de categoria : muy facil, facil, normal, dificil, muy dificil, experto.

necesitaria tres grupos de tablas, una tabla para los registros de los usuarios(nombre y passwd)
otra tabla para los records, y grupos de tablas para cada categoria con sus niveles, algo asi:

nombres de tablas:
records
registros

muyfacil1,muyfacil2,muyfacil3 etc
normal1,normal2....etc

los números son el sub nivel dentro del nivel porque cada tabla puede tener hasta miles de preguntas.

en cada tabla de preguntas las celdas podrían ser estas

id   numero              pregunta                                          respuesta
1        1           En que ciudad nació Jesús?                           Nazaret
2        2           Como se llama la madre de Jesús                  María
3         3          Nombres de Cristo                                      Jesús;Hijo del Hombre;Nazareno;Jesucristo  ( varias respuestas correctas ) string[]
cuando hay varias respuestas correctas, creamos el string[] con split y despues recorremos el String[] si la respuesta del usuario coincide con alguna de los items del string[] la respuesta es correcta.

tabla   registro

id    numero     usuario                   contraseña
1         1           Marcelo                  euh08~~sd
2          2          Adriana                  adri55511a


tabla  records

id     nivel    sub nivel    nombre   puntos
1        2            3          Marcelo    320
2        2            2          Adriana     245

editado 6:
cuando se perdería el juego?
si por ejemplo elegimos el nivel 1  habría 10 preguntas en el subnivel 1, 15 en el sub nivel 2 etc

en el primer subnivel 1 si el participante falla en la respuesta 3 veces pierde
y así con los demás pudiendo o no variar el numero de tolerancia a errores según nuestro parecer.

CREATE TABLE "usuarios" ( "idusuario" integer NOT NULL PRIMARY KEY autoincrement,
"usuario" varchar(32) NOT NULL,
"passwd" varchar(16) NOT NULL)


CREATE TABLE "ranking" ( "idranking" integer NOT NULL PRIMARY KEY autoincrement,
"nivel" integer NOT NULL,
"subnivel" integer NOT NULL,
"usuario" varchar(32) NOT NULL,
"puntos" integer NOT NULL
)

CREATE TABLE "muyfacil1" ( "idmf1" integer NOT NULL PRIMARY KEY autoincrement,
"numero" integer NOT NULL,
"pregunta" text NOT NULL,
"respuesta" text NOT NULL,
"formato" text
)


importante: en la columna "formato" daremos una explicación del formato de la respuesta pues algunas pueden ser complejas como dar varios nombres separados por comas o puntos y comas u otras formas complejas de dar la respuesta.

Editado 7:

después de tener mas o menos la interfaz gráfica esquematizada analizamos como continuaremos

primero sera hacer funcionar la conexion a la base de datos




Public Sub Form_Open()
  Me.Center
  ArmarTabla()
  AbrirConexionJuego()
  CargarUsuarios()
  
End


Public Sub ArmarTabla()
  
  CViewPociones.Columns.Count = 5

  CViewPociones.Columns[0].Title = "Posición"
  CViewPociones.Columns[0].Alignment = 3
  
  CViewPociones.Columns[1].Title = "Categoría"
  CViewPociones.Columns[1].Width = 90
  CViewPociones.Columns[1].Alignment = 3
  
  CViewPociones.Columns[2].Title = "Nivel"
  CViewPociones.Columns[2].Width = 60
  CViewPociones.Columns[2].Alignment = 3
  
  CViewPociones.Columns[3].Title = "Nombre Jugador"
  CViewPociones.Columns[3].Width = 110
  CViewPociones.Columns[3].Alignment = 3
  CViewPociones.Columns[3].Expand = True
  
  CViewPociones.Columns[4].Title = "Puntos"
  CViewPociones.Columns[4].Width = 60
  CViewPociones.Columns[4].Alignment = 3
  
End

Private Sub AbrirConexionJuego()
  
  ConexionJuego = New Connection
  
  ConexionJuego.Type = "sqlite3"
  ConexionJuego.Host = FMain.DirBD
  ConexionJuego.Name = "JuegoRV1960"
  
  Try ConexionJuego.Open
    If Error Then
        Message.Error("El fichero elegido no es una base de datos sqlite")
        Return
    Else
        Print "conexion con exito"
    Endif
  
End

Private Sub CerrarConexionJuego()
  If ConexionJuego = Null Then Return
  ConexionJuego.Close()
  ConexionJuego = Null  
End



segundo hacer funcionar la tabla de usuarios:
                          a- cargar usuarios registrados en el combobox
                          b- sistema de ingreso de usuarios nuevos
                          c- sistema de autentificacion de usuarios
 a
Private Sub CargarUsuarios()
  Dim resultado As Result
  
  resultado = ConexionJuego.Exec("select * from 'usuarios'")
  
  cbxUsuarios.Clear

  Do While resultado.Available
    usuarios.Add(resultado!usuario)
    cbxUsuarios.Add(resultado!usuario)
    Print resultado!usuario
    resultado.MoveNext
  Loop

End


b
Public Sub btnIngresar_Click()
  
  If txtUsuario.Text = "" Or If Len(txtUsuario.Text) < 3 Then
    Message.Warning("Nombre de usuario debe tener al menos 3 caracteres!")
    txtUsuario.SetFocus
    Return
  Endif
  If txtpasswd.Text = "" Or If Len(txtpasswd.Text) < 5 Then
    Message.Warning("Ingrese una contraseña con al menos 5 caracteres!")
    txtpasswd.SetFocus
    Return
  Endif
  
  If NombreExiste() = True Then
    Message.Warning("Ya existe el usuario, elija otro nombre!")
    txtUsuario.Clear
    txtUsuario.SetFocus
    Return
    ' Print "el nombre ya existe"
  Else
    Print "ingresar nombre"
    RegistrarUsuario()
    Juego.CargarUsuarios()
  Endif
  
  Me.Close

End

Private Sub RegistrarUsuario()
  Dim resultado As Result
  
  resultado = Juego.ConexionJuego.Exec("insert into usuarios (idusuario,usuario,passwd) values(&1,&2,&3)", Null, txtUsuario.Text, txtpasswd.Text)
    
End


Private Function NombreExiste() As Boolean
  Dim resultado As Result
  
  resultado = Juego.ConexionJuego.Exec("select usuario from 'usuarios'")
  
  Do While resultado.Available
    If Trim$(txtUsuario.Text) = resultado!usuario Then
      Return True
      Break
    Endif
    resultado.MoveNext
  Loop
  
  Return False
  
End




c
Private Sub Autentificacion(nombre As String)
  Dim resultado As Result
  Dim passX As String
  Dim usuarioX As String
  
  resultado = ConexionJuego.Exec("select * from 'usuarios'")
  
  Do While resultado.Available
    If resultado!usuario = nombre Then
      usuarioX = nombre
      Print "contraseña de " & nombre & "=" & resultado!passwd
      Print "contraseña tipeada=" & txtpasswd.Text
      If txtpasswd.Text = resultado!passwd Then
        identificacion = True
        Break
      Else
        identificacion = False
        Break
      Endif
    Else
      identificacion = False
    Endif
    
    resultado.MoveNext
  Loop
 
End

Public Sub btnComenzar_Click()
  
  If Jugando = False Then
     If cbxUsuarios.Index = 0 Then
           btnComenzar.Text = "Terminar"
           Jugando = True
      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
        
         txtpasswd.Clear
         txtRespuesta.Clear
         btnComenzar.Text = "Terminar"
         Jugando = True
        
         txtLJugador.Text = cbxUsuarios.Text
         MostrarPregunta()
         txtRespuesta.SetFocus
        
      Endif
  Else
    btnComenzar.Text = "Jugar"
    txtLJugador.Text = "Invitado"
    Jugando = False
    
  Endif
  
 
  
End


 




tercero sera hacer las consultas sql, para hacer un ramdon a la tabla del nivel elegido o en progreso y así mostrar la pregunta
datos que necesito para hacer una pregunta:
1-que categoría eligió el usuario para saber en que tabla buscar (en los radiobutton ya puse en el evento clic así  Categoria="normal" o Categoria="dificil" etc)
2-el nivel dentro de la categoria que empezara en uno y a medida que el usuario pase de nivel se incrementara en uno
3-el numero máximo de preguntas que contiene la tabla (este es el numero que usare con ramdon)

Private Sub MostrarPregunta()
  Dim resultado, resultado2, resultado3 As Result
  Dim MaxNum As Integer = 1
  Dim elegida As Integer
  
  resultado = ConexionJuego.Exec("SELECT numero FROM '" & categoria & Nivel & "'")
    
  Do While resultado.Available
      If resultado!numero > MaxNum Then
        MaxNum = resultado!numero
      Endif
      resultado.MoveNext
  Loop

  Randomize
  elegida = Rand(1, MaxNum)
    
  resultado2 = ConexionJuego.Exec("SELECT * FROM '" & categoria & Nivel & "' where numero=" & elegida)
  
  Do While resultado2.Available
    Pregunta = resultado2!pregunta    
    Respuesta = resultado2!respuesta
    resultado2.MoveNext
  Loop
  
  txtLPregunta.Text = Pregunta
    
End

Public Sub btnResponder_Click()

  If Trim$(txtRespuesta.Text) = Respuesta Then
    Print "acertaste"
    txtRespuesta.Clear
    txtRespuesta.SetFocus
    LCDLPuntos.Text += INCREMENTA5
    MostrarPregunta()
  Else
    Print "No es la respuesta"
    Dec Vidas
  Endif

End


 




cuarto: al finalizar el juego por errores o por llegar al máximo nivel sin perder jajajaj
hacer funcionar la tabla de ranking ya que tenemos los datos para ingresarlos, usuario, categoría, nivel , nombre, puntos.


Editado 8:

siguen las preguntas:
como plantear preguntas fáciles y difíciles, como agruparlas o catalogarlas?
formas de añadir dificultades a las respuestas ? tiempo, varias respuestas, que mas podría ser?
como hacer que el juego sea divertido y atractivo? tal vez sonidos, efectos visuales ,equilibrio en colores,  que mas podría ser?

se escuchan todas las sugerencias  


Editado 9:

   imaginemos que la gente usa el juego, crea muchos usuarios con contraseñas, tambien la tabla rankins esta llena de anotaciones.....y viene una nueva version del programa, que remplaza todas las tablas de la version anterior....       
se borrarian los usuarios creados y las anotaciones, algo que no sera agradable al usuario  
entonces bien como resolvemos esto  
se me ocurre hacer una nueva base de datos solo con las tablas usuarios y ranking separadas de las tablas de las preguntas. (actualizando solo la tabla de los versículos y la de preguntas.)
que solo se actualizarían si hay modificaciones sustanciales en la tabla....ufa cuando crees que resolves un problema inmediatamente se plantea otro
esto de programar no es nada fácil.....
sigo en las aventuras de programar y resolver planteos de programación.

mas adelante cuando el juego funcione bien y la base de preguntas tenga mas contenido, encriptare las contraseñas de usuarios con md5 asi nadie podra usar una identidad que no le corresponde aun explorando la base de datos sql, con algun programa como infodatabaseSql    ajjajajajaj
 




===================
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, 20:38; editado 31 veces 
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 
 
444
 




===================
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 
 
Tengo que leerlo con más tiempo. Parece muy interesante.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - 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 
 
progreso de la interfaz gráfica:

 juego3


por ahora vengo resolviendo cuestiones de estructura, pronto empiezo con la interacción de todos los elementos.
 




===================
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 
 
Private Function NombreExiste() As Boolean
  Dim resultado As Result
  
  resultado = Juego.ConexionJuego.Exec("select usuario from 'usuarios'")
  
  Do While resultado.Available
    If Trim$(txtUsuario.Text) = resultado!usuario Then
      Return True
      Break
    Endif
    resultado.MoveNext
  Loop
  
  Return False
  
End


primera vez que utilizo y comprendo mejor una funcion que devuelve true o false  

la llamo desde aquí:

 
If NombreExiste() = True Then
    Message.Warning("Ya existe el usuario, elija otro nombre!")
    txtUsuario.Clear
    txtUsuario.SetFocus
    Return
    ' Print "el nombre ya existe"

 




===================
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, 24 Julio 2015, 20:32; 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 
 
tt
 




===================
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 
 
Private Sub MostrarPregunta()
  Dim resultado, resultado2, resultado3 As Result
  Dim MaxNum As Integer
  
  Print "SELECT MAX(numero) FROM '" & categoria & Nivel & "'"
  resultado = ConexionJuego.Exec("SELECT MAX(numero) FROM '" & categoria & Nivel & "'")
  
  Do While resultado.Available
'     ??????????????  alguien sabe como obtener el único dato obtenido por MAX(numero)
  Loop
      
  ' Randomize
  ' Rand(0, MaxNum)
  Print "numero maximo es=" & MaxNum
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 
 
Incluso puedes abreviar más la condición:

If NombreExiste() = True Then


porque NombreExiste al ser una función booleana es lo mismo que si pusieras:

If True Then
...

Así que abreviada sería así:

If NombreExiste() Then


Si por el contrario, queremos comparar con false, invertimos la comparación con Not

If Not NombreExiste() Then


que sería lo mismo que

If False Then
...


Es un poco una cuestión de estilo, porque resulta más legible y te ahorras unos cuantos caracteres que teclear. Es más natural para la gente de habla inglesa y en mi opinión, algo más elegante.

Nota: Cabe señalar que en los nombres de funciones no podemos olvidar el paréntesis final (aunque no tenga argumentos) para obtener el valor devuelto.

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 
 
bueno sali del trancazo asi, pues nadie aporto una solución


Private Sub MostrarPregunta()
  Dim resultado, resultado2, resultado3 As Result
  Dim MaxNum As Integer = 0
  Dim elegida As Integer
  
  resultado = ConexionJuego.Exec("SELECT numero FROM '" & categoria & Nivel & "'")
    
  Do While resultado.Available
      If resultado!numero > MaxNum Then
        MaxNum = resultado!numero
      Endif
      resultado.MoveNext
  Loop

Print "maxnum=" & MaxNum
  Randomize
  elegida = Rand(0, MaxNum)
  Print "Pregunta elegida es=" & elegida
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 
 
progresos logrados...



Link

 




===================
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 1 de 3
Ir a la página 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