Gå til innhold

PHP challenge 6: Leksikon sortering (update 2)


Anbefalte innlegg

Skrevet (endret)

Okay, da stenger vil denne oppgaven. Har fått inn 7 oppgaver fra 6 deltakere og resultatene blir gitt ut seinere i dag (har forelesninger osv).

 

Kan vel røpe at neste oppgave blir ganske morsom, kanskje litt vanskelig men mye artigere! Den kommer dere få en hel uke på og jeg håper at alle vil delta. Desto flere som deltar desto artigere blir det!

Endret av MC2
Videoannonse
Annonse
Skrevet (endret)

Alle oppgavene ble benket 100 000 x 3 inviduelt med ca 15-20 sekunders pause mellom hver. Lista som ble sortert var den lista oppgitt i oppgaven.

 

Det er standard deviation som blir brukt siden det er statistisk sett mer nøyaktig

 

		 Ernie:
			 Average:			7.30396318436E-5
			 Standard deviation: 1.29183513065E-5
			 Max:				0.00106382369995
			 Min:				7.08103179932E-5

			 Average:			7.29587602615E-5
			 Standard deviation: 1.2990425513E-5
			 Max:				0.00110411643982
			 Min:				7.08103179932E-5

			 Average:			7.328373909E-5
			 Standard deviation: 1.28022654826E-5
			 Max:				0.00110101699829
			 Min:				7.08103179932E-5

	 hjelpphp
			 Average:			0.00079718221426
			 Standard deviation: 4.49270237365E-5
			 Max:				0.00351405143738
			 Min:				0.000781059265137

			 Average:			0.000796627755165
			 Standard deviation: 4.7947870676E-5
			 Max:				0.00346994400024
			 Min:				0.000777006149292

			 Average:			0.000798912677765
			 Standard deviation: 4.38216590938E-5
			 Max:				0.00350785255432
			 Min:				0.000782012939453

	 Nero
			 Average:			0.000200828478336
			 Standard deviation: 2.41843984606E-5
			 Max:				0.00289487838745
			 Min:				0.000194787979126

			 Average:			0.000201560313702
			 Standard deviation: 2.39245641499E-5
			 Max:				0.00287294387817
			 Min:				0.000194787979126

			 Average:			0.000201147427559
			 Standard deviation: 2.20231406531E-5
			 Max:				0.00288486480713
			 Min:				0.00019383430481

	 Rasks
			 Average:			0.00028319047451
			 Standard deviation: 2.77730346384E-5
			 Max:				0.0029718875885
			 Min:				0.000272989273071

			 Average:			0.000284107367992
			 Standard deviation: 2.81713898292E-5
			 Max:				0.00298500061035
			 Min:				0.000273942947388

			 Average:			0.000282748053074
			 Standard deviation: 2.80984162759E-5
			 Max:				0.0029718875885
			 Min:				0.000272989273071

	 Runar0
			 Average:			0.000194098501205
			 Standard deviation: 2.34268346988E-5
			 Max:				0.00293397903442
			 Min:				0.000189781188965

			 Average:			0.000194896373749
			 Standard deviation: 2.31425149267E-5
			 Max:				0.00290107727051
			 Min:				0.00019097328186

			 Average:			0.000195063345432
			 Standard deviation: 2.39453443904E-5
			 Max:				0.00289607048035
			 Min:				0.00019097328186

	 tsg1zzn
			 Average:			0.000177986488342
			 Standard deviation: 2.29020859713E-5
			 Max:				0.00289297103882
			 Min:				0.000171899795532

			 Average:			0.000178731393814
			 Standard deviation: 2.33356878818E-5
			 Max:				0.00284600257874
			 Min:				0.000173091888428

			 Average:			0.000168162503242
			 Standard deviation: 2.29761407458E-5
			 Max:				0.00292706489563
			 Min:				0.000162839889526

	 tsg1zzn_2
			 Average:			0.000159689233303
			 Standard deviation: 2.24889590844E-5
			 Max:				0.00290393829346
			 Min:				0.000152826309204

			 Average:			0.000151215398312
			 Standard deviation: 2.22369431919E-5
			 Max:				0.00291299819946
			 Min:				0.000144958496094

			 Average:			0.000159216976166
			 Standard deviation: 2.26401324377E-5
			 Max:				0.00292682647705
			 Min:				0.000153779983521

 

Fra de tallene ser vi at Ernie tok førsteplass mens tsg1zzn tok andre kort etterfulgt av både Nero og Runar0!

Grattis! Og det var bra innsats!

 

Resultater fra php sin interne sort funksjon:

 

				 Average:			1.23756933212E-5
			 Standard deviation: 6.2856521947E-6
			 Max:				0.000923156738281
			 Min:				1.19209289551E-5

 

 

Her er algoritmene som deltok:

Ernie

function Ernie($arr)
 {
	 $min = $max = $arr[0];
	 $sizeArr = sizeOf($arr);
	 for ($i = 0; $i !== $sizeArr; $i +=1)
	 {
		 $num = $arr[$i];
		 if ($num < $min)
		 {
			 $min = $num;
		 }
		 elseif ($num > $max)
		 {
			 $max = $num;
		 }
		 if (isset($d[$num]) === true)
		 {
			 $d[$num] +=1;
		 }
		 else
		 {
			 $d[$num] = 1;
		 }
	 }
	 unset($arr);
	 $max +=1;
	 for ($j=0,$i=$min; $i !== $max; $i+=1)
	 {
		 if (isset($d[$i]) === true)
		 {
			 for($k = $d[$i]; $k !== 0; $k-=1)
			 {
				 $arr[$j] = $i;
				 $j +=1;
			 }
		 }
	 }
	 return $arr;
 }

 

hjelpphp

	 function hjelpphp($array)
 {
 $b= array();
 $start = min($array);
 $end = max($array);
 for ($count=$start; $count<=$end; $count++)
 {
 foreach ($array as $key => $val)
 {
 if ($count == $val)
 $b[] = $val;
 }
 };
 return $b;
 };

 

Nero

	 function Nero($numbers){
		$size = count($numbers);
		for($i = 0; $i < ($size-1); $i++){
			for($j = ($i+1); $j < ($size-1); $j++){
				if($numbers[$j] < $numbers[$i]){
					$swap = $numbers[$i];
					$numbers[$i] = $numbers[$j];
					$numbers[$j] = $swap;
				}
			}
		}
		return $numbers;
 }

 

Rasks

	 function Rasks($array) {
 while(!empty($array)) {
	 $arrkeys = array_keys($array); 
	 $lkey = $arrkeys[0];
	 foreach($array as $k => $value) {
		 if($value <= $array[$lkey] && $lkey != $k){
			 $lkey = $k;
		 }
	 }
	 $newarray[] = $array[$lkey];
	 unset($array[$lkey]);
 }
 return $newarray;
 }

 

Runar0

	 function Runar0(&$array)
 {
	 $target = array();
	 $len = count($array);
	 for($i = 0; $i < $len; $i++)
	 {
		 $small		 = null;
		 $small_idx	 = 0;
		 foreach($array as $t => $v)
		 {
			 if($small == null || $small > $v)
			 {
				 $small		 = $v;
				 $small_idx  = $t;
			 }
		 }
		 $target[] = $small;
		 unset($array[$small_idx]);
	 }
	 $array = $target;
 }

 

tsg1zzn

	 function tsg1zzn ( $a ) {
	 $min = $a[0];
	 $max = $a[0];
	 foreach ($a as $value) {
		 $b[$value] += 1;
		 $min = min($min, $value);
		 $max = max($max, $value);
	 }
	 $ax = 0;
	 for ($i = $min; $i <= $max; $i++)
		 for ($tally = 0; $tally < $b[$i]; $tally++)
			 $a[$ax++] = $i;
	 return $a;
 }

 

tsg1zzn sin andre

	 $b = array();
 function tsg1zzn_2 ( $a ) {
	 $min = $a[0];
	 $max = $a[0];
	 global $b;
	 foreach ($b as $key => $value)
		 $b[$key] = 0;
	 foreach ($a as $value) {
		 $b[$value] += 1;
		 $min = min($min, $value);
		 $max = max($max, $value);
	 }
	 $ax = 0;
	 for ($i = $min; $i <= $max; $i++)
		 for ($tally = 0; $tally < $b[$i]; $tally++)
			 $a[$ax++] = $i;
	 return $a;
 }

 

 

Jeg prøvde også, men deltok ikke:

 

function mc2($a) {
   $s = sizeOf($a)-1;
   $k = 0;
   while($k < $s) {
	   $t = $a[$k+1];
	   $i = $k;
	   while($i >= 0 && $a[$i] > $t) {
		   $a[$i+1] = $a[$i];
		   $i--;
	   }
	   $a[$i+1] = $t;
	   $k++;
   }
   return $a;
  }

		   Average:			0.0001014538908
	   Standard deviation: 1.47214583272E-5
	   Max:				0.00112295150757
	   Min:				9.89437103271E-5

 

 

 

 

Neste oppgave blir gitt i morgen, og den blir ganske annerledes!

Endret av MC2
Skrevet

Kan du benche en helt enkel insertion sort for å se hvordan den yter?

 

	$length = count( $data );
for ( $i = 1; $i < $length; ++$i ) {
	$temp = $data[$i];
	$j = $i;
	while ( $j > 0 && $data[$j - 1] > $temp ) {
		$data[$j] = $data[$j - 1];
		--$j;
	}
	$data[$j] = $temp;
}

Skrevet
Kan du benche en helt enkel insertion sort for å se hvordan den yter?

 

	$length = count( $data );
for ( $i = 1; $i < $length; ++$i ) {
	$temp = $data[$i];
	$j = $i;
	while ( $j > 0 && $data[$j - 1] > $temp ) {
		$data[$j] = $data[$j - 1];
		--$j;
	}
	$data[$j] = $temp;
}

Den algoritmen jeg prøvde med var en klassisk instikkssortering og den yter omtrent 1.4E-5, men det var med to while løkker i stedet. Med for løkka går den omtrent på 1.7E-5.

 

Jeg skjønner hva du tenker, instikkssortering er egentlig verdens raskeste på å sortere korte lister, men grunnen Ernie sin er raskere er for at den bare sorterer tall.

Skrevet

Weeeee ... *gratulere seg selv* :fun:

 

Jeg skjønner hva du tenker, instikkssortering er egentlig verdens raskeste på å sortere korte lister, men grunnen Ernie sin er raskere er for at den bare sorterer tall.
Nja, det er ikke direkte det at jeg bare sorterer tall som gjør det. Det har med at jeg har et gitt interval å jobbe i (som forsåvidt krever at det er tall det er snakk om). Dette går svært raskt unna så lenge spriket mellom min og max ikke er langt større enn antall elementer som skal sorteres. Forsøker jeg å sortere 2 elementer hvor index 0 er 0 og 1 er 100000 bruker algoritmen ekstremt mye tid på å sortere. Til gjengjeld er det lite andre algoritmer har å stille opp med så lenge spriket mellom min og max står i stil til antall elementer i arrayen.
Skrevet (endret)

Da har første post blitt oppdatert! Artig om flere blir med denne gangen! :)

 

Her er et eksempel på et spill utført av idiotene:

 

Turn number 1 and player 'homer_simpson' puts x in 4,6
  0 1 2 3 4 5 6
0 | | | | | | | |
1 | | | | | | | |
2 | | | | | | | |
3 | | | | | | | |
4 | | | | | | |x|
5 | | | | | | | |
6 | | | | | | | |


Turn number 2 and player 'peter_griffin' puts o in 4,1
  0 1 2 3 4 5 6
0 | | | | | | | |
1 | | | | | | | |
2 | | | | | | | |
3 | | | | | | | |
4 | |o| | | | |x|
5 | | | | | | | |
6 | | | | | | | |


Turn number 3 and player 'homer_simpson' puts x in 2,1
  0 1 2 3 4 5 6
0 | | | | | | | |
1 | | | | | | | |
2 | |x| | | | | |
3 | | | | | | | |
4 | |o| | | | |x|
5 | | | | | | | |
6 | | | | | | | |


Turn number 4 and player 'peter_griffin' puts o in 0,1
  0 1 2 3 4 5 6
0 | |o| | | | | |
1 | | | | | | | |
2 | |x| | | | | |
3 | | | | | | | |
4 | |o| | | | |x|
5 | | | | | | | |
6 | | | | | | | |


Turn number 5 and player 'homer_simpson' puts x in 5,0
  0 1 2 3 4 5 6
0 | |o| | | | | |
1 | | | | | | | |
2 | |x| | | | | |
3 | | | | | | | |
4 | |o| | | | |x|
5 |x| | | | | | |
6 | | | | | | | |


Turn number 6 and player 'peter_griffin' puts o in 1,1
  0 1 2 3 4 5 6
0 | |o| | | | | |
1 | |o| | | | | |
2 | |x| | | | | |
3 | | | | | | | |
4 | |o| | | | |x|
5 |x| | | | | | |
6 | | | | | | | |


Turn number 7 and player 'homer_simpson' puts x in 5,5
  0 1 2 3 4 5 6
0 | |o| | | | | |
1 | |o| | | | | |
2 | |x| | | | | |
3 | | | | | | | |
4 | |o| | | | |x|
5 |x| | | | |x| |
6 | | | | | | | |


Turn number 8 and player 'peter_griffin' puts o in 3,5
  0 1 2 3 4 5 6
0 | |o| | | | | |
1 | |o| | | | | |
2 | |x| | | | | |
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x| |
6 | | | | | | | |


Turn number 9 and player 'homer_simpson' puts x in 5,6
  0 1 2 3 4 5 6
0 | |o| | | | | |
1 | |o| | | | | |
2 | |x| | | | | |
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | | | | | | |


Turn number 10 and player 'peter_griffin' puts o in 2,3
  0 1 2 3 4 5 6
0 | |o| | | | | |
1 | |o| | | | | |
2 | |x| |o| | | |
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | | | | | | |


Turn number 11 and player 'homer_simpson' puts x in 2,6
  0 1 2 3 4 5 6
0 | |o| | | | | |
1 | |o| | | | | |
2 | |x| |o| | |x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | | | | | | |


Turn number 12 and player 'peter_griffin' puts o in 0,2
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 | |o| | | | | |
2 | |x| |o| | |x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | | | | | | |


Turn number 13 and player 'homer_simpson' puts x in 2,5
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 | |o| | | | | |
2 | |x| |o| |x|x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | | | | | | |


Turn number 14 and player 'peter_griffin' puts o in 6,4
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 | |o| | | | | |
2 | |x| |o| |x|x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | | | |o| | |


Turn number 15 and player 'homer_simpson' puts x in 1,0
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o| | | | | |
2 | |x| |o| |x|x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | | | |o| | |


Turn number 16 and player 'peter_griffin' puts o in 1,4
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o| | |o| | |
2 | |x| |o| |x|x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | | | |o| | |


Turn number 17 and player 'homer_simpson' puts x in 1,3
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o| |x|o| | |
2 | |x| |o| |x|x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | | | |o| | |


Turn number 18 and player 'peter_griffin' puts o in 6,2
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o| |x|o| | |
2 | |x| |o| |x|x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | | |x|x|
6 | | |o| |o| | |


Turn number 19 and player 'homer_simpson' puts x in 5,4
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o| |x|o| | |
2 | |x| |o| |x|x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | |x|x|x|
6 | | |o| |o| | |


Turn number 20 and player 'peter_griffin' puts o in 1,2
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o| | |
2 | |x| |o| |x|x|
3 | | | | | |o| |
4 | |o| | | | |x|
5 |x| | | |x|x|x|
6 | | |o| |o| | |


Turn number 21 and player 'homer_simpson' puts x in 3,0
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o| | |
2 | |x| |o| |x|x|
3 |x| | | | |o| |
4 | |o| | | | |x|
5 |x| | | |x|x|x|
6 | | |o| |o| | |


Turn number 22 and player 'peter_griffin' puts o in 1,5
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o| |
2 | |x| |o| |x|x|
3 |x| | | | |o| |
4 | |o| | | | |x|
5 |x| | | |x|x|x|
6 | | |o| |o| | |


Turn number 23 and player 'homer_simpson' puts x in 4,5
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o| |
2 | |x| |o| |x|x|
3 |x| | | | |o| |
4 | |o| | | |x|x|
5 |x| | | |x|x|x|
6 | | |o| |o| | |


Turn number 24 and player 'peter_griffin' puts o in 3,4
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o| |
2 | |x| |o| |x|x|
3 |x| | | |o|o| |
4 | |o| | | |x|x|
5 |x| | | |x|x|x|
6 | | |o| |o| | |


Turn number 25 and player 'homer_simpson' puts x in 6,3
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o| |
2 | |x| |o| |x|x|
3 |x| | | |o|o| |
4 | |o| | | |x|x|
5 |x| | | |x|x|x|
6 | | |o|x|o| | |


Turn number 26 and player 'peter_griffin' puts o in 4,2
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o| |
2 | |x| |o| |x|x|
3 |x| | | |o|o| |
4 | |o|o| | |x|x|
5 |x| | | |x|x|x|
6 | | |o|x|o| | |


Turn number 27 and player 'homer_simpson' puts x in 1,6
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o| |x|x|
3 |x| | | |o|o| |
4 | |o|o| | |x|x|
5 |x| | | |x|x|x|
6 | | |o|x|o| | |


Turn number 28 and player 'peter_griffin' puts o in 2,4
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x| | | |o|o| |
4 | |o|o| | |x|x|
5 |x| | | |x|x|x|
6 | | |o|x|o| | |


Turn number 29 and player 'homer_simpson' puts x in 3,3
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x| | |x|o|o| |
4 | |o|o| | |x|x|
5 |x| | | |x|x|x|
6 | | |o|x|o| | |


Turn number 30 and player 'peter_griffin' puts o in 3,6
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x| | |x|o|o|o|
4 | |o|o| | |x|x|
5 |x| | | |x|x|x|
6 | | |o|x|o| | |


Turn number 31 and player 'homer_simpson' puts x in 6,5
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x| | |x|o|o|o|
4 | |o|o| | |x|x|
5 |x| | | |x|x|x|
6 | | |o|x|o|x| |


Turn number 32 and player 'peter_griffin' puts o in 5,1
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x| | |x|o|o|o|
4 | |o|o| | |x|x|
5 |x|o| | |x|x|x|
6 | | |o|x|o|x| |


Turn number 33 and player 'homer_simpson' puts x in 3,1
  0 1 2 3 4 5 6
0 | |o|o| | | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x|x| |x|o|o|o|
4 | |o|o| | |x|x|
5 |x|o| | |x|x|x|
6 | | |o|x|o|x| |


Turn number 34 and player 'peter_griffin' puts o in 0,3
  0 1 2 3 4 5 6
0 | |o|o|o| | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x|x| |x|o|o|o|
4 | |o|o| | |x|x|
5 |x|o| | |x|x|x|
6 | | |o|x|o|x| |


Turn number 35 and player 'homer_simpson' puts x in 5,3
  0 1 2 3 4 5 6
0 | |o|o|o| | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x|x| |x|o|o|o|
4 | |o|o| | |x|x|
5 |x|o| |x|x|x|x|
6 | | |o|x|o|x| |


Turn number 36 and player 'peter_griffin' puts o in 4,4
  0 1 2 3 4 5 6
0 | |o|o|o| | | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x|x| |x|o|o|o|
4 | |o|o| |o|x|x|
5 |x|o| |x|x|x|x|
6 | | |o|x|o|x| |


Turn number 37 and player 'homer_simpson' puts x in 0,4
  0 1 2 3 4 5 6
0 | |o|o|o|x| | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x|x| |x|o|o|o|
4 | |o|o| |o|x|x|
5 |x|o| |x|x|x|x|
6 | | |o|x|o|x| |


Turn number 38 and player 'peter_griffin' puts o in 6,1
  0 1 2 3 4 5 6
0 | |o|o|o|x| | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x|x| |x|o|o|o|
4 | |o|o| |o|x|x|
5 |x|o| |x|x|x|x|
6 | |o|o|x|o|x| |


Turn number 39 and player 'homer_simpson' puts x in 0,0
  0 1 2 3 4 5 6
0 |x|o|o|o|x| | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x|x| |x|o|o|o|
4 | |o|o| |o|x|x|
5 |x|o| |x|x|x|x|
6 | |o|o|x|o|x| |


Turn number 40 and player 'peter_griffin' puts o in 4,0
  0 1 2 3 4 5 6
0 |x|o|o|o|x| | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x|x| |x|o|o|o|
4 |o|o|o| |o|x|x|
5 |x|o| |x|x|x|x|
6 | |o|o|x|o|x| |


Turn number 41 and player 'homer_simpson' puts x in 5,2
  0 1 2 3 4 5 6
0 |x|o|o|o|x| | |
1 |x|o|o|x|o|o|x|
2 | |x| |o|o|x|x|
3 |x|x| |x|o|o|o|
4 |o|o|o| |o|x|x|
5 |x|o|x|x|x|x|x|
6 | |o|o|x|o|x| |


homer_simpson won after 41 moves!

 

 

Er det noen spørsmål er det bare å spørre

Endret av MC2
Skrevet

Jeg må si at jeg faktisk har litt problemer med å skaffe meg full oversikt over selve spill scripte jeg :p, men dette er kanskje litt over mitt nivå.

Skrevet

Om du har noen spørsmål om hvordan motoren fungerer er det bare å spørre, men som vist i peter_griffin/homer_simpsons spillerne så trenger du ikke å forstå selveste motoren, selvom det er en fordel.

 

Kan vel forklare diagonalene. De begynner på 0 og slutter i dette tilfellet på 13. Dersom andre parameter er 0 så går diagonalene fra høyre mot venstre, hvor diagonal 0 er øverste hjørne til venstre og diagonal 13 er nederste hjørne til høyre. Dersom andre parameter ikke er 0 så går diagonalene andre veien, altså fra venstre mot høyre hvor diagonal 0 da er øverste hjørne til høyre og diagonal 13 er nederste hjørne til venstre. Håper noen forsto det der...

Skrevet

Så hvis jeg skjønner dette rett så så skal vi skrive en funksjon som gir tilbake $r og $c. Det er selve spill funksjonen og så skal vi skrive en funksjon som starter når det er vår tur. Vi skal også skrive funksjoner for start/end.

 

Og denne type funksjonen er det samme hvilke tegn vi ender opp med?

Skrevet (endret)

Du skal skrive en klasse med de funksjonene. Når en kamp (11+ spill) begynner så lages det et objekt av klassen din, og motoren forteller klassen hva slags brikke du spiller (enten x eller o), da kan du bare lagre den i en variabel. Når et spill begynner kaller motoren funksjonen new_game (som er der hvis din spiller "husker" ting i løpet av kampen, osv). Når det er din tur så kaller motoren funksjonen your_turn hvor parameteren er selveste brettet. Denne funksjonen må returnere en array av to heltalls verdier rad og kolonne. Når et spill avslutter så kaller motoren funksjonen end_game.

 

Altså din besvarelse må se sånn ut:

class george_w_bush implements player {
public function your_turn($pointer) {
	<kode som blir kjørt når det er din tur>
}
public function new_game() {
	<kode som blir kjørt når et nytt spill begynner>
}
public function end_game() {
	<blir kjørt når et spill slutter>
}
public function type($t) {
	<funksjon for å fortelle din spiller hvilken brikketype han/hun spiller>
}
}

Endret av MC2
Skrevet

Førstepost har blitt oppdatert. Jeg oppdaget en liten feil, og har lagt til tre funksjoner som kan være brukbare. Beklager den slurvefeilen!

Skrevet

Første posten har blitt oppdatert igjen. Jeg fant en feil med get_diagonal_cords som ikke returnerte riktige koordinater. Koden i førsteposten har blitt oppdatert. Beklager igjen!

 

Men det er hyggelig at noen være med, og jeg håper at disse to slurvefeilene ikke er altfor frustrende.

 

Hvis folk synes at 1 uke er for lite er det bare å si i fra :)

Skrevet

Hittil har jeg ikke fått inn et eneste bidrag. Er det pga. at folk trenger mer tid eller pga. at folk ikke er interessert? I så fall kunne vi jo ta neste oppgave.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...