Eksempel med resultat-tabell i fotball


 

/*

   Resultater ut fra kamptabell

*/



var navn: Array = ["RBK", "Brann", "Freidig"];



// Resultattabell: rader er hjemmelag, kolonner er bortelag

var resultater: Array = 

			[

			   ["-", "H", "H"], 

			   ["U", "-", "H"], 

			   ["H", "U", "-"]	

		  ]; 



// Poengtabell:

// Lagt inn objekter istedenfor bare poengsum,

// for å kunne sortere resultatlisten til slutt

var poeng: Array =

		[ 

			{lag: "RBK",    poengsum: 0}, 

			{lag: "Brann",  poengsum: 0},

			{lag: "Freidig",poengsum: 0}

		];



// Regner ut alle poengene og legger i poengtabellen

function beregnPoeng():void {

   var l: int = poeng.length;          //Finner antall lag

   var resultat: String = "";

   for (var h:int=0;h<l;h++) {         //For alle hjemmelag

      for (var b:int=0;b<l;b++){       //For alle bortelag

	resultat = resultater[h][b];

	if( resultat == "H" ) {

	   poeng[h]["poengsum"]+=3;

	}else if( resultat == "U" ) {

	   poeng[h]["poengsum"]++;

	   poeng[b]["poengsum"]++;

	}else if( resultat == "B" ) {

	   poeng[b]["poengsum"]+=3;

	}//if

      }//for b

   }//for h

}//beregnPoeng()



// Eksempel på funksjon som regner ut poeng for

// et bestemt lag.

// Kan brukes av en modifisert beregnPoeng()-funksjon

function beregnPoengForLag(r: Array,lag: String):int {

   var indeks: int = navn.indexOf(lag);

   var poeng: int = 0;

   var resultat: String = "";

   // Poeng i hjemmekamper:

   for(var b:int;b<r.length;b++) {   //mot alle bortelag

      resultat = r[indeks][b];

      if( resultat == "H" ) {

        	poeng+=3;

      }else if( resultat == "U" ) {

         poeng++;

      }//if

   }//for h

   // Poeng i bortekamper

   for(var h:int;h<r.length;h++) {  //mot alle hjemmelag

      resultat = r[h][indeks];

      if( resultat == "B" ) {

         poeng+=3;

      }else if( resultat == "U" ) {

         poeng++;

      }//if

   }//for h

   return poeng;

}//beregnPoengForLag()



// Alternativ beregnPoeng()-funksjon som bruker 

// beregnPoengForLag()

function beregnPoeng2():void {

   for(var lag:int = 0;lag<poeng.length;lag++){

      poeng[lag]["poengsum"]=

    	beregnPoengForLag(resultater,poeng[lag]["lag"]);

   }//for

}//beregnPoeng2()



/// --- Hovedprogram --- ///

beregnPoeng();



var liste: Array = poeng.sortOn("poengsum",Array.NUMERIC+Array.DESCENDING);



for(var lag:int=0;lag<poeng.length;lag++) {

   trace(liste[lag]["lag"] + ",  " + poeng[lag]["poengsum"]);

}//for



trace("\nTest av alternative funksjoner:\n");

trace("RBK   fikk " + beregnPoengForLag(resultater, "RBK") + " poeng");

trace("Brann fikk " + beregnPoengForLag(resultater,"Brann") + " poeng\n");



beregnPoeng2();



liste = poeng.sortOn("poengsum",Array.NUMERIC+Array.DESCENDING);



for(lag=0;lag<poeng.length;lag++) {

	trace(liste[lag]["lag"] + ",  " + poeng[lag]["poengsum"]);

}//for

Gir utskrift:

RBK,  7

Brann,  5

Freidig,  4
Test av alternative funksjoner: 
RBK   fikk 7 poeng

Brann fikk 5 poeng
RBK,  7

Brann,  5

Freidig,  4