1 a 1 Sistema di confronto e classificazione

1

Sto cercando di creare un sistema di confronto e classificazione che consenta agli utenti di visualizzare 2 elementi, fare clic su quello che ritengono sia il migliore e quindi presentarsi con altri 2 elementi casuali e continuare a farlo fino a quando non decidono smettere.

In sottofondo, voglio che il sistema utilizzi queste vittorie e perda ogni classifica in una classifica generale in modo da poter vedere cosa è il numero 1 e cosa non lo è.

Non ho idea di dove cominciare con la formula, ma ho l'immagine che devo registrare per vincere e perdere.

Qualsiasi aiuto / direzione apprezzati!

    
posta David 08.08.2012 - 17:30
fonte

2 risposte

5

Utilizza l'algoritmo Elo!

Da Wikipedia :

The Elo rating system is a method for calculating the relative skill levels of players in two-player games such as chess. It is named after its creator Arpad Elo, a Hungarian-born American physics professor.

In realtà è usato in molte aree, non solo nei giochi, come puoi vedi qui .

L'idea generale è che ogni persona ha un numero. Più alto è il numero, migliore è il giocatore e viceversa. La persona vincente otterrebbe una certa quantità di punti e la persona che perde perderebbe la stessa quantità di punti. Questo importo è deciso dalla differenza di rating tra due concorrenti. I dettagli matematici possono essere trovati anche su Wikipedia .

Questo sembra essere esattamente ciò che è necessario implementare. Solo un paio di note:

  • Sì, dovresti registrare wins-losses.
  • No, non dovresti tenere traccia delle strisce.
risposta data 13.08.2012 - 16:43
fonte
2

Forse sto finendo di semplificare, ma non potresti semplicemente creare una nuova tabella di database chiamata "ranghi" con chiave esterna all'elemento? Quindi, ogni volta che viene impostata una classifica, esegui questa operazione:

update 'rank' set rankUp = rankUp + 1 where rankId = $whateverYourItemIdWouldBe

Quindi, controllare il valore più alto sarebbe semplice come:

select * from 'items' left join 'rank' on items.itemId = ranks.itemId order by ranks.rankUp desc
    
risposta data 13.08.2012 - 22:01
fonte

Leggi altre domande sui tag