Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Asignar puntos a una clasificacion por partido

Estas en el tema de Asignar puntos a una clasificacion por partido en el foro de PHP en Foros del Web. Buenas, estoy venga a darle vueltas al posible algoritmo que me genere lo que necesito. Base: Una tabla con los datos d una serie de ...
  #1 (permalink)  
Antiguo 19/09/2013, 10:11
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Asignar puntos a una clasificacion por partido

Buenas, estoy venga a darle vueltas al posible algoritmo que me genere lo que necesito.

Base: Una tabla con los datos d una serie de participantes en una liguilla, no hay fechas preestablecidas pues los jugadores pueden retarse entre si, de este modo los jugadores juegan cuando y cuanto pueden.

Problema: A la hora de disputarse un partido, para hacer el reparto de puntos, evidentemente al que sea derrotado le restare puntos y al que gane se los añadiré, la cuestión es cuantos puntos he de quitar y otorgar a los jugadores por cada partido basándome en los puntos actuales en el momento del encuentro. Habia pensado en hacer rangos de puntos pero me resulta muy engorroso. Seguro que hay algo ya inventado para esto pero no doy con ello.
  #2 (permalink)  
Antiguo 19/09/2013, 10:36
Avatar de wizanchez  
Fecha de Ingreso: junio-2013
Ubicación: bogota
Mensajes: 120
Antigüedad: 10 años, 10 meses
Puntos: 6
Respuesta: Asignar puntos a una clasificacion por partido

- Lo mas practico para eso es que guardes los marcadores tanto del partido como el marcador de cada usuario,
- en el momento de la consulta haces las calculadas, o se lo dejas a una view SQL
para que te haga esa logica
__________________
---------
cubesoftechnology.com
Wizanchez,,
  #3 (permalink)  
Antiguo 19/09/2013, 10:37
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Asignar puntos a una clasificacion por partido

Tengo hecho todo el sistema, mi duda es como sacar los puntos para otorgar por partido
  #4 (permalink)  
Antiguo 19/09/2013, 10:42
Avatar de wizanchez  
Fecha de Ingreso: junio-2013
Ubicación: bogota
Mensajes: 120
Antigüedad: 10 años, 10 meses
Puntos: 6
Respuesta: Asignar puntos a una clasificacion por partido

- por eso te digo haz una logica ya sea en php o en una viewsql
- comparas marcadores si gano quien, o si empataron
- loego haces lo mismo con cada usuario, despues comparas uno a uno con el marcador final
a simple logica, sin necesidad de guardar nada
. o no te haz explicado bien
__________________
---------
cubesoftechnology.com
Wizanchez,,
  #5 (permalink)  
Antiguo 19/09/2013, 11:07
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Asignar puntos a una clasificacion por partido

En la tabla guardo los datos necesarios para mostrar la liguilla a los usuarios. Cada jugador tiene unos puntos asociados que ganan o pierden dependiendo de los encuentros que disputen.

Mi duda es como sacar unos puntos proporcionales a los puntos que tenga el jugador situado mas alto en la tabla con el que esta situado mas abajo para dar algo proporcionar al que gane y algo proporcional al que pierda
  #6 (permalink)  
Antiguo 19/09/2013, 11:12
Avatar de wizanchez  
Fecha de Ingreso: junio-2013
Ubicación: bogota
Mensajes: 120
Antigüedad: 10 años, 10 meses
Puntos: 6
Respuesta: Asignar puntos a una clasificacion por partido

- debes saber entonces que tanto de esos puntos le vas a dar al mas alto
- haz de cuenta el sistema de puntos de la Formula1 ,
- tiene unos puntos del 1 al 9no puesto,
- ahora se le da unos puntos al resto
- se saca la proporcion y listo.

- si no es asi, trata de hacer una ejmplo de lo que quieres
__________________
---------
cubesoftechnology.com
Wizanchez,,
  #7 (permalink)  
Antiguo 19/09/2013, 11:25
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Asignar puntos a una clasificacion por partido

Código Tabla:
Ver original
  1. #   Nombre      Victorias   Derrotas    Puntos 
  2. 1    Equipo1    0           0           1750   
  3. 2    Equipo2    4           0           1080

Teniendo eso en la base de datos. Si ambos equipos se enfrentan entre si, saber cuantos puntos quitarle/otorgarle al equipo que esta arriba y cuantos quitarle/otorgarle al de abajo en caso de que gane uno u otro. Ya que no quiero que sea predefinido si no mediante un porcentaje.
  #8 (permalink)  
Antiguo 19/09/2013, 16:14
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Asignar puntos a una clasificacion por partido

Puedes plantearlo de forma que en cada partido, cada oponente "apuesta" un porcentaje de sus puntos,que se lleva el ganador.Supongo que lo que quieres es que si un equipo "malo" derrota a uno "bueno", se lleve más puntos que si ganase el "bueno".
  #9 (permalink)  
Antiguo 20/09/2013, 03:03
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Asignar puntos a una clasificacion por partido

Ahi le has dado Dashtrash, esa es mi intencion, pero en base a que saco ese porcentaje? Es decir, quiero que sea algo automatizado hasta un limite de por ejemplo 75 pts por partida.

Última edición por bNd170; 20/09/2013 a las 03:12
  #10 (permalink)  
Antiguo 20/09/2013, 15:01
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Asignar puntos a una clasificacion por partido

Pues si quieres un limite de 75 puntos por partida, y haciendo que el porcentaje sea el mismo para los dos equipos, es una ecuacion sencilla...

PuntosEquipo1*Porcentaje + PuntosEquipo2*Porcentaje = 75

Porcentaje = 75/(PuntosEquipo1+PuntosEquipo2);
  #11 (permalink)  
Antiguo 21/09/2013, 07:14
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Asignar puntos a una clasificacion por partido

No entiendo bien tu planteamiento dashtrash. Creo que no es lo que yo quiero.

En base a los puntos que cada equipo tiene en el momento en el que el encuentro finaliza y cada uno de ellos actualiza el resultado en la web, quiero que calcule los puntos que debe quitar y dar a cada equipo basandome en su puntuacion actual.

El ejemplo práctico seria algo así:

Me acabo de unir a la liguilla y creo que tengo nivel para estar muy arriba, asi que reto al primer equipo. Obviamente al yo tener 200 puntos (Que es con los que se empieza) y el tener 1000, si yo le gano, le quitaré más puntos de los que me quitará él a mi si me gana.

Si le gano, quiero que como máximo pueda quitarle al equipo de más arriba 75 pts por ejemplo, dependiendo de cuantos puntos me saque a mi.
  #12 (permalink)  
Antiguo 21/09/2013, 08:17
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: Asignar puntos a una clasificacion por partido

Me parece que lo que quieres es un sistema parecido al de FIFA, que genera un ranking en base a los puntos que tiene cada cuadro,

Fijate si esto te da una idea:
http://es.fifa.com/worldranking/proc...ure/index.html

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #13 (permalink)  
Antiguo 21/09/2013, 08:27
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Asignar puntos a una clasificacion por partido

No es tan complejo lo que busco, tiene una mínima similitud pero lo que quiero es algo muchísimo más simple.
  #14 (permalink)  
Antiguo 21/09/2013, 09:20
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: Asignar puntos a una clasificacion por partido

Mira tengo algo que se me ocurrio ahora para el calculo del puntaje:
Reglas de Puntos
Máximo ptje por partido(MPP) : 75 pts
Cantidad Maxima Partidos Para clasificador(CMPC): 20
Pts Ganador(PG) : 3 pts
Pts Gan.por penales(PGP): 2 pts
Pts empate(PE) : 1 pt
Pts perdido(PP) : 0

Datos Calculados
Maximo Puntaje del Clasificador(MPC) = 20 partidos(CMPC) * 75(MPP) pts = 1500 pts

Formula de Calculo de Pts:
((Pts Equi.Rival / MPC) * MPP) * (Res.Partido/ PG)


Ptajes antes del partido
Equipo A : 1000 pts
Equipo B : 200 pts

Resultados equipo A
((Pts Equi.Rival / MPC) * MPP) * (Res.Partido/ PG)
Gana Entonces : ((200 pts / 1500) * 75) * (3/3) = 10
Gana Penales : ((200 pts / 1500) * 75) * (2/3) = 6.67
Empata : ((200 pts / 1500) * 75) * (1/3) = 3.33
Pierde : ((200 pts / 1500) * 75) * (0/3) = 0

Resultado equipo B
((Pts Equi.Rival / MPC) * MPP) * (Res.Partido/ PG)
Gana Entonces : ((1000pts / 1500) * 75) * (3/3) = 50
Gana Penales : ((1000pts / 1500) * 75) * (2/3) = 33.33
Empata : ((1000pts / 1500) * 75) * (1/3) = 16.67
Pierde : ((1000pts / 1500) * 75) * (0/3) = 0

El máximo puntaje se da si uno de los rivales tiene puntaje perfecto es decir los 1500 pts y gana el de menor puntaje.

Ejemplo
Equipo A : 1500 pts
Equipo B : 1000 pts (es irrelevante para el mayor puntaje)
Gana Equipo B :
((Pts Equi.Rival / MPC) * MPP) * (Res.Partido/ PG)
((1500 / 1500) * 75) * (3/ 3) aqui como se ve
1500 / 1500 = 1 entonces tenemos 75 en el primer multiplicador
en el segundo 3 /3 = 1
Entonces el equipo B obtendra los 75 pts.

Saludos y es otra idea....
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #15 (permalink)  
Antiguo 21/09/2013, 09:26
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Asignar puntos a una clasificacion por partido

Agradezco la elaborada idea pero no es aplicable a mi proyecto.

No es una liguilla de futbol, son partidos de videojuegos, puede ser FIFA, Mario Bross o cualquier otro juego :)

Tampoco pongo minimo de partido para entrar al ranking, simplemente el equipo se inscribe y comienza a jugar.

Mi objetivo es averiguar cual es la ecuación que me de el dato deseado, un valor equitativo a la diferencia de puntos entre los equipos que jueguen el partido, para que si gana el que menos puntos tiene, se le otorguen más puntos por ganar un partido a un equipo de aparente mejor nivel.

Aclaro que en la tabla de la base de datos guardo la puntuación ya, no me es necesario calcularla, mi idea es trabajar sobre ese dato.
  #16 (permalink)  
Antiguo 21/09/2013, 09:48
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: Asignar puntos a una clasificacion por partido

Ahora si lo que tienes es un numero de participantes fijos y obligatoriamente todos se tienen que enfrentar todos contra todos y si ya se enfrentaron no lo pueden volver a hacer hasta tanto se termine la ronda de liguillas, entonces lo mas justo es otorgar un puntaje fijo por partida ganada.

Pues en tu caso,, 2 participantes con el mismo numero de partidas ganadas en la liguilla no obtendrían el mismo puntaje por el orden del ranking en que enfrentan al contrincante de turno.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #17 (permalink)  
Antiguo 21/09/2013, 10:15
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Asignar puntos a una clasificacion por partido

Olvidate de los partidos que haya jugado, no es relevante, la gente juega cuando quiere y cuanto quiere
  #18 (permalink)  
Antiguo 21/09/2013, 14:42
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: Asignar puntos a una clasificacion por partido

Si la gente juega cuantos partidos quiere, cuando quiere y con quien quiere, ahí si seria bueno tener una cantidad máxima de partidos que tome en cuenta tu ranking, pues si no quien tiene mas chances de jugar muchos partidos y lo hace contra equipos de menor importancia y ganara sumaria y sumaria puntos estaría arriba en el ranking y quizás no enfrente a los mejores.

Saludos
Son solo ideas.
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #19 (permalink)  
Antiguo 21/09/2013, 15:00
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Asignar puntos a una clasificacion por partido

Cita:
Iniciado por bNd170 Ver Mensaje
Ahi le has dado Dashtrash, esa es mi intencion, pero en base a que saco ese porcentaje? Es decir, quiero que sea algo automatizado hasta un limite de por ejemplo 75 pts por partida.
Cita:
No entiendo bien tu planteamiento dashtrash. Creo que no es lo que yo quiero.

En base a los puntos que cada equipo tiene en el momento en el que el encuentro finaliza y cada uno de ellos actualiza el resultado en la web, quiero que calcule los puntos que debe quitar y dar a cada equipo basandome en su puntuacion actual.
Pues mi planteamiento se estudia con 10 años...Una ecuación de primer grado...

PuntosEquipo1*Porcentaje + PuntosEquipo2*Porcentaje = 75

Cita:
Me acabo de unir a la liguilla y creo que tengo nivel para estar muy arriba, asi que reto al primer equipo. Obviamente al yo tener 200 puntos (Que es con los que se empieza) y el tener 1000, si yo le gano, le quitaré más puntos de los que me quitará él a mi si me gana.

Si le gano, quiero que como máximo pueda quitarle al equipo de más arriba 75 pts por ejemplo, dependiendo de cuantos puntos me saque a mi.
1000*x + 200*x =75
1200x = 75
x = 75 / 1200 = 0.0625 = 6%.

Por lo tanto, ambos jugadores se juegan el 6% de sus puntos.
El que tiene 200, si pierde, pierde 200*0.0625 = 12.5 puntos.
El que tiene 1000, si pierde, pierde 1000*0.0625 = 62.5 puntos.

Matemáticas simples.
  #20 (permalink)  
Antiguo 22/09/2013, 11:23
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Asignar puntos a una clasificacion por partido

Vale, ahora si lo he entendido. Estaría en la parra el otro dia. Mil gracias dashtras =)

Etiquetas: puntos, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:05.