Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-10-2016
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
Question Llevar Puntuación en los juegos

Hola buenos días. Soy nueva en todo esto y necesito su ayuda por favor. Estoy haciendo un juego para la universidad, el cual lleva puntaje (lo estoy trabajando con label), por cada respuesta buena se sumaria 5 puntos por ejemplo. No sé como hacerlo. para el cambio de niveles uso formularios distintos porque el diseño cambia, entonces como hago para que ese puntaje funcione en todos los formularios y que al final cuando pierda (pantalla game over) me aparezca la cantidad de puntos alcanzados. Y si fuera posible que aparezca ese record cada vez que inicio el juego. Se aceptan recomendaciones. Agradezco su colaboración. Feliz día
Responder Con Cita
  #2  
Antiguo 26-10-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por yuyidt Ver Mensaje
...el cual lleva puntaje (lo estoy trabajando con label), por cada respuesta buena se sumaria 5 puntos por ejemplo. No sé como hacerlo. para el cambio de niveles uso formularios distintos porque el diseño cambia, entonces como hago para que ese puntaje funcione en todos los formularios y que al final cuando pierda (pantalla game over) me aparezca la cantidad de puntos alcanzados. Y si fuera posible que aparezca ese record cada vez que inicio el juego. Se aceptan recomendaciones. Agradezco su colaboración. Feliz día
Piensa en que una cosa es dónde muestras la información y otra dónde lo almacenas.
Piensa en un formulario como una pieza de tu programa.
Si tu puntuación se debe mantener durante la aparición de los diferentes formularios, no se puede almacenar en un Label de uno de ellos.

Tendrás que almacenarlo fuera, y desde cada uno acceder a ella (para mostrarla y para incrementarla si es necesario).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 26-10-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
En estos casos es buenos que inviertas algo de tiempo en visualizar como se ve la informacion y como fluye, usando dibujos, diagramas, hojas de excel, etc.

Por ej,

Cita:
por cada respuesta buena se sumaria 5 puntos por ejemplo
Entonces debes almacenar en una tabla (o matriz):

Código SQL [-]
Nivel1 - Pregunta1 - Puntaje: 5
Nivel1 - Pregunta2 - Puntaje: 0
Nivel2 - Pregunta1 - Puntaje: 3

Y luego recorres esa estructura para obtener la suma.

Si necesitas guardar la informacion puedes usar una base de datos. No se si ya llegaste al tema del SQL. Puedes usar archivos tipo CSV (como hoja de excel) o puedes usar los TClientDataset.
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 31-10-2016
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
Gracias

Ok, muchas gracias. Voy a intentarlo para ver como me va y le cuento.
Responder Con Cita
  #5  
Antiguo 23-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
Opcion para puntuaciones con diferentes forms

hola yuyidt....te ofrezco la solucion pero en C++ Builder si no te importa

mira.... suponiendo que tengas el Form1 donde tienes la puntuacion, y Form2 y Form3 sean los niveles

en el Form1 .......ponemos los Use Units (includes) de los 3 Units
en el Form2 .......ponemos los Use Units (includes) de Unit2 y Unit1
en el Form3 .......ponemos los Use Units (includes) de Unit3 y Unit1

de esta forma nos aseguramos que todos tienen acceso a la variable extern int puntuacion ....

Código PHP:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int puntuacion 0;   //Declaramos esta variable AQUI visibilidad total


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponentOwner)
    : 
TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
puntuacion 0;
  
Label1->Caption puntuacion;  //boton poner a 0 la puntuacion

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
Form2->ShowModal();        //mostramos el 1º nivel de juego (Form2)
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form3->ShowModal();        //mostramos otro nivel de juego (Form3 y asi ...)
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
 
Label1->Caption =  puntuacionLabel1->Refresh();
}
//--------------------------------------------------------------------------- 


Unit2.cpp
Código PHP:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
extern int puntuacion;  // asi el programa sabra que hay una variable llamada puntuacion por ahi fuera
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponentOwner)
    : 
TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
 
puntuacion puntuacion 5;  // sumamos 5 puntos en la variable puntuacion
  
Form1->Repaint();  //en el evento OnPaint del Form1 tenemos la actualizacion del Label de puntuaciones 
                             // asi que llamamos a Repaint() aqui para que se actualice
}
//--------------------------------------------------------------------------- 

Unit3.cpp
Código PHP:
#include "Unit3.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
extern int puntuacion;    // asi el programa sabra que hay una variable llamada puntuacion por ahi fuera
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponentOwner)
    : 
TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button1Click(TObject *Sender)
{
  
puntuacion puntuacion 10;  // sumamos 5 puntos en la variable puntuacion
  
Form1->Repaint();  //en el evento OnPaint del Form1 tenemos la actualizacion del Label de puntuaciones 
                             // asi que llamamos a Repaint() aqui para que se actualice
}
//--------------------------------------------------------------------------- 

Capturas:

http://www.qualinost.tk/descargas/punt1.jpg

http://www.qualinost.tk/descargas/punt2.jpg

http://www.qualinost.tk/descargas/punt3.jpg



aqui tienes los sources del proyecto:

http://www.qualinost.tk/descargas/vi...puntuacion.rar

Última edición por Snaked fecha: 23-11-2016 a las 20:58:05.
Responder Con Cita
  #6  
Antiguo 23-11-2016
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
para llevar el Record tienes que hacer uso de un fichero o algo ya que cuando sales del programa se borraria....para eso tienes primero que escribirlo algo asi

Código PHP:
    FILE *stream;
   if ((
stream fopen("Record_de_Puntos.$$$""w+")) == NULL/* abre el archivo Record_de_Puntos.$$$ */
   
{
      
ShowMessage("No he podido crear el fichero de las puntuaciones en el disco.");
      return;
   }

   
fwrite(&puntuacionsizeof(puntuacion), 1stream); /* escribe la estructura en disco */
   
fclose(stream); /* cierra el archivo */
   
ShowMessage("FileStream guardado con éxito en el disco: Archivo Record_de_Puntuaciones.$$$"); 
y para leer las puntuaciones

Código PHP:
FILE *stream;
   if ((
stream fopen("Record_de_Puntos.$$$""r")) == NULL/* abre el archivo Record_de_Puntos.$$$ */
   
{
      
ShowMessage("No he podido LEER el fichero de las puntuaciones.");
      return;
   }

   
fread(puntuacionsizeof(puntuacion), 1stream); /* lee la estructura del archivo */
   
fclose(stream); /* cierra el archivo */ 
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Puntuacion decimal lbidi Varios 2 08-09-2014 20:59:18
Llevar desde Excel a una BD paradox DarkSide Servers 39 08-09-2011 14:58:23
Llevar Un Archivo Imagen A Rave BPL Impresión 3 08-02-2011 13:08:18
¿Como llevar un Select a .TXT? juliopag1 SQL 4 13-01-2006 14:39:15


La franja horaria es GMT +2. Ahora son las 15:59:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi