elo system

Dieses Thema im Forum "Webentwicklung" wurde erstellt von DerFreak, 26. August 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 26. August 2006
    Hallo ich habe mal ein elo system gemacht für meine liga doch da stimmt was nicht egal was für ein ergebnis eingetragen wird es kommt immer +13:-13 raus

    evt weiss jemand woran es liegen könnte

    <?php
    # ================================ Copyright 2005-2006 FCL, All rights reserved. ==========================
    # FCL
    #
    # Purpose: Calculator - standard elo
    # ================================================================================================================


    /**
    * compute points basing on standard elo system
    *
    * @param global_vars_t $oVars
    * @param array $params
    */

    function callback( $oVars, $params )
    {
    /*
    ARRAY $params
    --------------------
    integer challenger_points :
    integer opponent_points :
    integer winner : 'challenger' / 'opponent' / ''
    match_results_t match-results : match-result data
    integer data : unspecified data


    --------------------
    1 -> WIN
    0.5 -> DRAW
    0 -> LOSE
    */

    $R_CHALLENGER = (int)$params['challenger_points'];
    $R_OPPONENT = (int)$params['opponent_points'];
    $k = 25; //$params['k'];
    $DIV = 400; //$params['div']

    $R2_CHALLENGER = 0; # new challenger points / after evaluation
    $R2_OPPONENT = 0; # new challenger points / after evaluation


    $Ea = 1/( 1 + pow(10 , ($R_CHALLENGER-$R_OPPONENT)/$DIV) );

    #---------------------------------------------
    # CHALLENGER WINS
    #---------------------------------------------
    if( $params['winner'] == 'challenger' )
    {
    $R2_CHALLENGER = round( $k* (1 - $Ea) );
    $R2_OPPONENT = round( $k* (0 - $Ea) );
    }
    #---------------------------------------------
    # OPPONENT WINS
    #---------------------------------------------
    elseif( $params['winner'] == 'opponent' )
    {
    $R2_CHALLENGER = round( $k* (0 - $Ea) );
    $R2_OPPONENT = round( $k* (1 - $Ea) );
    }
    #---------------------------------------------
    # NOONE WINS
    #---------------------------------------------
    elseif( $params['winner'] == '' )
    {
    $R2_CHALLENGER = round( $k* (0.5 - $Ea) );
    $R2_OPPONENT = round( $k* (0.5 - $Ea) );
    }

    return array( 'challenger_points' => $R_CHALLENGER+$R2_CHALLENGER,
    'opponent_points' => $R_OPPONENT+$R2_OPPONENT,

    'challenger_points_diff' => $R2_CHALLENGER,
    'opponent_points_diff' => $R2_OPPONENT,
    );
    }

    ?>
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.