Avatar billede brian8 Nybegynder
06. februar 2004 - 17:30 Der er 2 kommentarer og
1 løsning

Søger et godt rankingsystem.

Er der nogle som kender et godt rankingsystem. Når to spiller er færdig med at spille skal deres rang ændres alt efter om de har tabt eller vundet. Spiller en dårlig med de god skal den dårlige have flere points, end hvis de var lige godt osv. Det jeg søger er selve metoden som udregner rangen.
Avatar billede gladmhensk Nybegynder
08. februar 2004 - 11:20 #1
Det ville måske være rart med lidt kode så man kunne se hvilke variabler etc. der bruges....
Avatar billede brian8 Nybegynder
08. februar 2004 - 20:22 #2
Jeg har lavet følgende koder men har problemer med at finde ud af hvormange rang-point man skal tildele henholdsvis vinderen og taber, så det bliver retfærdig.

public class Hej {

    public int[] calculateRank(int rankA, boolean winA, int rankB, boolean winB){

        int differens = Math.abs(rankA-rankB);
        int newRank = 0;
        int[] tabel = new int[2];  //spillerA ligger på tabel[0]

//*************************************************************************
// Hvis en af spillerne vinder
//*************************************************************************
        //*************************************************
        // Hvis spiller A vindeer og har større rang end B
        // eller spiller B vinder og har større rang end A
        //*************************************************
        if(winA && rankA > rankB)
            tabel[0] = rankA + 5;
        else if(winB && rankB > rankA)
            tabel[1] = rankB +5;


        // Hvis spiller A vindeer og har mindre rang end B
        if(winA && rankA < rankB){
            if(differens < 20)
                tabel[0] = rankA + 10;
            if(differens >= 20 && differens < 100)
                tabel[0] = rankA + 20;
            if(differens >=100 && differens <100000)
                tabel[0] = rankA + 30;
        }
        // spiller B vinder og har mindre rang end A
        else if ( winB && rankB < rankA){
            if(differens < 20)
                tabel[1] = rankB + 10;
            if(differens >= 20 && differens < 100)
                tabel[1] = rankB + 20;
            if(differens >=100 && differens <100000)
                tabel[1] = rankB + 30;
        }

//*************************************************************************
// Hvis en af spillerne taber
//*************************************************************************

        // Hvis spiller A taber og har større rang end B
        if( !winA && rankA > rankB){
            if(differens < 20)
                tabel[0] = rankA - 10;
            if(differens >= 20 && differens < 100)
                tabel[0] = rankA - 20;
            if(differens >=100 && differens <100000)
                tabel[0] = rankA - 30;
        }

        // Hvis spiller B taber og har større rang end A
        if( !winB && rankB > rankA){
            if(differens < 20)
                tabel[1] = rankB - 10;
            if(differens >= 20 && differens < 100)
                tabel[1] = rankB - 20;
            if(differens >=100 && differens <100000)
                tabel[1] = rankB - 30;
        }

        // Hvis spiller A taber og har mindre rang end B
        // og  spiller B taber og har mindre rang end A
        if( !winA && rankA < rankB)
            tabel[0] = rankA - 5;
        else if ( !winB && rankB < rankA)
            tabel[1] = rankB - 5;

      return tabel;
    }

}
Avatar billede brian8 Nybegynder
09. februar 2004 - 18:39 #3
nå ingen respons, så lukker jeg spørgsmålet :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester