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
 
Como Esquematizar Clases?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Esquematizar Clases? 
 
Buenas,

Estoy tratando de interiorizarme en las clases y la programación orientada a objetos.

El tanteador es un programa interesante de iniciación, pero es un desastre su código y muy enredado.

quiero hacer algo mas profesional y correcto

entonces bien lo que necesito es manejar casi todo con clases pero necesito un esquema general de como funcionaria.

algunas cosas que se me ocurren es:

un jugador seria una clase u objeto:

nombre, apellido, país, etc

otra clase seria partido que se encargaría de todos los datos de un partido.
con dos clases jugadores

otra clase la organización de un grupo con 3,4 o 5 clases jugadores.

me podrían ayudar a esquematizar y armar un esquema por donde empezar?
estoy razonando bien?
que otras clases podría necesitar?

editado1:

 la clase jugador seria esta:

Export

Property Nombre As String
Property Apellido As String

Private XNombre As String
Private XApellido As String

Private Function Nombre_Read() As String
 Return XNombre
End

Private Sub Nombre_Write(Value As String)
 XNombre = Value
End

Private Function Apellido_Read() As String
 Return XApellido
End

Private Sub Apellido_Write(Value As String)
  XApellido = Value  
End



y la clase partido esta aunque no entiendo como leo en la clase partido las clases jugadores       

' gambas class file

Export

Property J1 As Jugador
Property J2 As Jugador

Private byServicioInicio As Byte

Public Sub _new(ServInicio As Byte)
  byServicioInicio = ServInicio
End

Private Function J1_Read() As Jugador

End

Private Sub J1_Write(Value As Jugador)

End

Private Function J2_Read() As Jugador

End

Private Sub J2_Write(Value As Jugador)
  

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, 29 Septiembre 2015, 17:53; editado 2 veces 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Esquematizar Clases? 
 
asi sera?

Export

Property J1 As Jugador
Property J2 As Jugador

Private xJ1 As Jugador
Private xJ2 As Jugador

Private byServicioInicio As Byte

Public Sub _new(ServInicio As Byte, J1 As Jugador, J2 As Jugador)
  byServicioInicio = ServInicio
  xJ1 = j1
  xj2 = j2
End

Private Function J1_Read() As Jugador
  Return xJ1
End

Private Sub J1_Write(Value As Jugador)
 xJ1 = Value
End

Private Function J2_Read() As Jugador
 Return xj2
End

Private Sub J2_Write(Value As Jugador)
 xj2 = Value
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: Como Esquematizar Clases? 
 
Cada propiedad va relacionada con una variable privada dentro de la clase que es con la que se opera. Así:


Property J1 As Jugador
Property J2 As Jugador

Private $J1 as Jugador
Private $J2 as Jugador

Private byServicioInicio As Byte

Public Sub _new(ServInicio As Byte)
  byServicioInicio = ServInicio
End

Private Function J1_Read() As Jugador
    Return $J1
End

Private Sub J1_Write(Value As Jugador)
     $J1=Value
End

Private Function J2_Read() As Jugador

    Retrun $J2

End

Private Sub J2_Write(Value As Jugador)
  
   $J2=Value

End


Entonces para asignar J1 al partido sería:
Mipartido.J1=mijugador
mipartido.j2=mjugador2

etc.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Esquematizar Clases? 
 
Exacto, se han cruzado las respuestas.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Esquematizar Clases? 
 
bueno sigo haciendo pruebas ya que estoy muy perdido en el sentido de como funcionaria todo en general.
aqui visualizo datos despues de crear las clases.

tengo cuatro textbox y u combobox, lleno los datos, ejecuto rutinas de comprobación..  (probable clases de comprobacion? o modulos de comprobacion?)

' gambas class file

Public EstePartido As Partido

Public Sub WizConfig_Click() ' cuando se llenaron todos las datos de la clase jugador y estan ok
'creamos la clase partido

Dim Jugador1, Jugador2 As Jugador
  
Jugador1 = New Jugador
Jugador1.Nombre = txtNomJ1.Text
Jugador1.Apellido = txtApeJ1.Text

Jugador2 = New Jugador
Jugador2.Nombre = txtNomJ2.Text
Jugador2.Apellido = txtApeJ2.Text

EstePartido = New Partido(cbxServicio.Index, Jugador1, Jugador2)

Print EstePartido.J1.Nombre
Print EstePartido.J1.Apellido
Print EstePartido.J2.Nombre
Print EstePartido.J2.Apellido


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: Como Esquematizar Clases? 
 
otra clase que debería crear es una Clase Categoría donde estaría un array con nombres de categorías, editables pudiendo eliminar o agregar con lo que tendría tres clases por ahora

Lista de clases a Crear:

Jugador
Partido
Grupo (mas adelante vamos despacio)
Categoria

.....
que mas podría necesitar?
 




===================
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: Como Esquematizar Clases? 
 
construí dos clases mas una llamada Interfaz

' gambas class file

Export

Property TableroDerecho As Tablero
Property TableroIzquierdo As Tablero

Private $TableroDerecho As Tablero
Private $TableroIzquierdo As Tablero


Public Sub _new(Derecho As Tablero, Izquierdo As Tablero)
  $TableroDerecho = Derecho
  $TableroIzquierdo = Izquierdo
End

Private Function TableroDerecho_Read() As Tablero
  Return $TableroDerecho
End

Private Sub TableroDerecho_Write(Value As Tablero)
  $TableroDerecho = Value  
End

Private Function TableroIzquierdo_Read() As Tablero
  Return $TableroIzquierdo
End

Private Sub TableroIzquierdo_Write(Value As Tablero)
  $TableroIzquierdo = Value
End


y otro llamada tablero:

' gambas class file

Export

Property Nombre As Label
Property Tanto As Label
Property Juego As Label

Private $Nombre As Label
Private $Tanto As Label
Private $Juego As Label

Public Sub _new(nombre As Label, tanto As Label, juego As Label)
  $Nombre = nombre
  $Tanto = tanto
  $Juego = juego
End


Private Function Nombre_Read() As Label
 Return $Nombre
End

Private Sub Nombre_Write(Value As Label)
 $Nombre = Value
End

Private Function Tanto_Read() As Label
  Return $Tanto
End

Private Sub Tanto_Write(Value As Label)
   $Tanto = Value
End

Private Function Juego_Read() As Label
  Return $Juego
End

Private Sub Juego_Write(Value As Label)
  $Juego = Value
End



Public Sub WizConfig_Click() ' cuando se llenaron todos las datos de la clase jugador y estan ok
'creamos la clase partido

Dim Jugador1, Jugador2 As Jugador
  
Jugador1 = New Jugador
Jugador1.Nombre = txtNomJ1.Text
Jugador1.Apellido = txtApeJ1.Text

Jugador2 = New Jugador
Jugador2.Nombre = txtNomJ2.Text
Jugador2.Apellido = txtApeJ2.Text

NuevoPartido = New Partido(cbxServicio.Index, Jugador1, Jugador2)

' FMain.LabNombreJ1.Text = NuevoPartido.J1.Apellido & " " & NuevoPartido.J1.Nombre
' FMain.LabNombreJ2.Text = NuevoPartido.J2.Apellido & " " & NuevoPartido.J1.Nombre

Print NuevoPartido.Servicio

TableroDerecho = New Tablero(FMain.LabNombreJ1, FMain.LabTantoJ1, FMain.LabSetJ1)
TableroIzquierdo = New Tablero(FMain.LabNombreJ2, FMain.LabTantoJ2, FMain.LabSetJ2)

TipoInterfaz = New Interfaz(TableroDerecho, TableroIzquierdo)

With TipoInterfaz
  .TableroDerecho.Nombre.Text = NuevoPartido.J1.Nombre & " " & NuevoPartido.J1.Apellido
   TableroDerecho.Juego.Text = 0
   TableroDerecho.Tanto.Text = 0
  
   TableroIzquierdo.Nombre.Text = NuevoPartido.J2.Nombre & " " & NuevoPartido.J2.Apellido
   TableroIzquierdo.Juego.Text = 0
   TableroIzquierdo.Tanto.Text = 0
End With


End


faaa    estoy empedo y no es del vino  
 




===================
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, 29 Septiembre 2015, 20:37; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Esquematizar Clases? 
 
faaa esto si que es una maravilla, que notable esta programar asi, orientado a objetos

' gambas class file

Export

Property J1 As Jugador
Property J2 As Jugador
Property Servicio As Byte
Property Read ServicioInicio As Byte
Property Marcador As Interfaz

Private $J1 As Jugador
Private $J2 As Jugador
Private $Servicio As Byte
Private $ServicioInicio As Byte
Private $Marcador As Interfaz


Public Sub _new(SI As Byte, J1 As Jugador, J2 As Jugador, marcador As Interfaz) ''SI= ServicioInicio
  $ServicioInicio = SI
  $Servicio = SI
  $J1 = J1
  $J2 = J2
  $Marcador = marcador
End

Private Function J1_Read() As Jugador
  Return $J1
End

Private Sub J1_Write(Value As Jugador)
 $J1 = Value
End

Private Function J2_Read() As Jugador
 Return $j2
End

Private Sub J2_Write(Value As Jugador)
 $J2 = Value
End

Private Function Servicio_Read() As Byte
  Return $Servicio
End

Private Sub Servicio_Write(Value As Byte)
  $Servicio = Value
End

Private Function ServicioInicio_Read() As Byte
 $ServicioInicio
End

Public Sub Resta1(xJugador As Jugador)
   If xJugador.Tantos = 0 Then Return
   Dec xJugador.Tantos  
   ActualizarInterfaz()
End

Public Sub Suma1(xJugador As Jugador)
   Inc xJugador.Tantos
   ActualizarInterfaz()
End

Private Function Marcador_Read() As Interfaz
  Return $Marcador
End

Private Sub Marcador_Write(Value As Interfaz)
  $Marcador = Value
End

Public Sub ActualizarInterfaz()
  $Marcador.Actualizar($J1, $J2)
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: Como Esquematizar Clases? 
 
v3ctor:

Una cuestión.

¿ Por que usas Export en la mayoría de los ejemplos ?.
A ver si nos explican mejor el uso de Export, creo que era para componentes.
 




===================
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: Como Esquematizar Clases? 
 
este.... sinceramente lo puse porque lo vi en otras clases, además que si lo pones aparece la estrellita en la clase.

probé sacarlo y la clase funciona igual.

Shell mejor explícame vos para que es Export  

jajajjaaj

Clases creadas hasta el momento.

Partido
Jugador
Tablero
Interfaz

me falta algo para gestionar mensajes
otra clase que maneje a quien le toca sacar, ya que descubrí un sistema para ello.
el tanteador tiene un sistema de if muy complicado que halla a que jugador le corresponde sacar....
pero he descubierto un sistema enormemente mas sencillo y depurado

consta de tres datos fundamentales, que jugador comenzó sacando el 1 o el dos en el primer juego del partido.
y teniendo los puntos totales automáticamente se sabe quien saca

cuando la tenga pronta la posteo por acá.
 




===================
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 ¿ Qué Son Las Clases Virtuales ?. Shell General 11 Lunes, 21 Septiembre 2015, 12:12 Ver último mensaje
vuott
No hay nuevos mensajes Mismo Result Como Parametro De Varias Clases gambafeliz General 13 Jueves, 29 Agosto 2019, 18:59 Ver último mensaje
gambafeliz
No hay nuevos mensajes Como Ordenar Un Array De Objetos De Difere... tercoIDE General 1 Martes, 21 Abril 2020, 23:02 Ver último mensaje
tercoIDE
No hay nuevos mensajes Clases: Como Clonar Un Object De Una Clase... tercoIDE General 14 Viernes, 03 Julio 2020, 14:45 Ver último mensaje
vuott
 

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