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