Challenge: Tic Tac Toe
Challenge information
| Challenge Type |
Public |
| Challenge Status |
Open |
| Constant name |
BOARDS |
| Trim method |
Full trim |
| Rating |
[ up ]
[ down ]
|
Instructions
You will be given random filled Tic Tac Toe boards.
'X' always starts.
Figure out who wins of 'X' or 'O'. If there is a tie, you print 'None'.
Example
Show/hide Input
O|X|O
X|X|O
O|X|X
O|X|X
X|O|X
|O|O
X|O|X
O| |X
O|X|O
Show/hide Output
Comments
Show/hide comments (0)
Submissions
<?for($b=BOARDS;$b[$n];$n+=19){for($s=~ÿùóÿýûÿûý÷ñù÷õ÷÷ûõïóñïïó;$c=$s[$i];${$i++%8}|=$b[$n+ord($c)])$$i=H;for(;--$i;)ereg($$i,OX,$c);echo$c[0]?:None,~õ;}
|
<?for($b=BOARDS,$s=~ÿùóÿýûÿûý÷ñù÷õ÷÷ûõïóñïïó;$b[$n];$n+=19){for(;$c=$s[$i];${$i++%8}|=$b[$n+ord($c)])$$i=H;for(;--$i;)ereg($$i,OX,$c);echo$c[0]?:None,~õ;}
|
<?for($a=BOARDS;$a[$i];$i+=19){$d=None;for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)$m.$m!=$a[$l+$k].$a[$l+2*$k]|($j!=4&$k==4)|($k==2&&$j%3)?:$d=$m;echo$d.~õ;}
|
<?for($a=BOARDS;$a[$i];$i+=19){$d=None;for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3))$d=$m;echo"$d ";}
|
<?for($a=BOARDS;$a[$i];$i+=19){$d=None;for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3))$d=$m;echo"$d ";}
|
<?for($a=BOARDS;$a[$i];$i+=19,$d='None'){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3))$d=$m;echo"$d ";}
|
<?for($a=BOARDS;$a[$i];$i+=19,$d='None'){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3))$d=$m;echo"$d ";}
|
<?for($a=BOARDS;$a[$i];$i+=19){$d='None';for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3))$d=$m;echo"$d ";}
|
<?for($a=BOARDS;$a[$i];$i+=19){$d='None';for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3))$d=$m;echo"$d ";}
|
<?for($a=BOARDS;$a[$i];$i+=19){$d='None';for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3))$d=$m;echo"$d ";}
|
<?for($a=BOARDS,$b=~ÏÎÍÌËÊÉÈÇÏÌÉÎËÈÍÊÇÏËÇÍËÉ;$a[$i];$i+=19,$d='None'){for($j=0;$j<24;)if($a[$i+$b[$j++]*2]==($m=$a[$i+$b[$j++]*2])&$m==$a[$i+$b[$j++]*2])$d=$m;echo"$d ";}
|
<?for($a=BOARDS,$b=~ÏÎÍÌËÊÉÈÇÏÌÉÎËÈÍÊÇÏËÇÍËÉ;$a[$i];$i+=19,$d='None'){for($j=0;$j<24;)if($a[$i+$b[$j++]*2]==($m=$a[$i+$b[$j++]*2])&$m==$a[$i+$b[$j++]*2])$d=$m;echo"$d ";}
|
<?for($a=BOARDS;$a[$i];$i+=19,$d='None'){for($j=18;$j;)for($m=$a[$l=$i+$j-=2]&ß,$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3))$d=$m;echo"$d ";}
|
<?for($a=BOARDS;$a[$i];$i+=19){$d='None';for($j=18;$j;)for($m=$a[$l=$i+$j-=2]&ß,$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3))$d=$m;echo"$d ";}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3)){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3)){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m==$a[$l+$k]&$m==$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3)){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m==$a[$l+$k]&$m==$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3)){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS,$b=~ÏÎÍÌËÊÉÈÇÏÌÉÎËÈÍÊÇÏËÇÍËÉ;$a[$i];$i+=19){for($j=0;$j<24;){if($a[$i+$b[$j++]*2]==($m=$a[$i+$b[$j++]*2])&$m==$a[$i+$b[$j++]*2]){echo"$m
";continue 2;}}echo'None
';}
|
<?for($a=BOARDS,$b=~ÏÎÍÌËÊÉÈÇÏÌÉÎËÈÍÊÇÏËÇÍËÉ;$a[$i];$i+=19){for($j=0;$j<24;){if($a[$i+$b[$j++]*2]==($m=$a[$i+$b[$j++]*2])&$m==$a[$i+$b[$j++]*2]){echo"$m
";continue 2;}}echo'None
';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==trim($a[$l+$k]).$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3)){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m.$m==trim($a[$l+$k]).$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3)){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$k-=2;)if($m==trim($a[$l+$k])&$m==$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3)){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$m!=~ß&&$k-=2;)if($m.$m==$a[$l+$k].$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3)){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$m!=~ß&&$k-=2;)if($m==$a[$l+$k]&$m==$a[$l+2*$k]&($k!=4|$j==4)&!($k==2&&$j%3)){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;$m!=~ß&&$k-=2;)if($m==$a[$l+$k]&&$m==$a[$l+2*$k]&&($k!=4||$j==4)&&($k!=2||!($j%3))){echo"$m ";continue 3;}echo'None ';}
|
<?for($a=BOARDS;$a[$i];$i+=19){for($j=18;$j;)for($m=$a[$l=$i+$j-=2],$k=10;trim($m)&&$k-=2;)if($m==$a[$l+$k]&&$m==$a[$l+2*$k]&&($k!=4||$j==4)&&($k!=2||!($j%3))){echo"$m ";continue 3;}echo'None ';}
|
<?foreach(explode("
",BOARDS)as$b){for($i=0;$i<5;$i+=2)if($b[$i]==$b[$i+6]&&$b[$i]==$b[$i+12]){echo$b[$i]," ";continue 2;}for($i=0;$i<13;$i+=6)if($b[$i]==$b[$i+2]&&$b[$i]==$b[$i+4]){echo$b[$i]," ";continue 2;}if($b[0]==$b[8]&&$b[0]==$b[16])echo$b[0]," ";elseif($b[4]==$b[8]&&$b[4]==$b[12])echo$b[4]," ";else echo"None ";}
|
<?$c='([XO ])';$r="$c\|$c\|$c";foreach(split('
',BOARDS)as$b){if(preg_match('#(X|O)\|\1\|\1#',$b,$m)){echo"$m[1] ";continue;}preg_match("#$r $r $r#",$b,$m);for($i=3;$i--;)if($m[$i+1]==$m[$i+4]&&$m[$i+4]==$m[$i+7]){echo$m[$i+1].' ';continue 2;}if($m[1]==$m[5]&&$m[5]==$m[9]){echo$m[1].' ';continue;}if($m[3]==$m[5]&&$m[5]==$m[7]){echo$m[3].' ';continue;}echo'None ';}
|
<?foreach(split("\n",BOARDS)as$z)foreach(split("\n",$z)as$l)if(!$l)++$c;else$t[$c][]=split("\|",$l);foreach($t as$g){$w=None;for($i=0;$i<3;$i++){if($g[$i][0]==$g[$i][1]&&$g[$i][1]==$g[$i][2])$w=$g[$i][1];if($g[0][$i]==$g[1][$i]&&$g[1][$i]==$g[2][$i])$w=$g[1][$i];}if(($g[0][0]==$g[1][1]&&$g[1][1]==$g[2][2])||($g[0][2]==$g[1][1]&&$g[1][1]==$g[2][0]))$w=$g[1][1];echo"$w ";}
|
<?$c='([XO ])';$r="$c\|$c\|$c";foreach(split('
',BOARDS)as$b){preg_match("#$r $r $r#",$b,$m);for($i=3;$i--;)if($m[$i*3+1]==$m[$i*3+2]&&$m[$i*3+2]==$m[$i*3+3]){echo$m[$i*3+1].' ';continue 2;}for($i=3;$i--;)if($m[$i+1]==$m[$i+4]&&$m[$i+4]==$m[$i+7]){echo$m[$i+1].' ';continue 2;}if($m[1]==$m[5]&&$m[5]==$m[9]){echo$m[1].' ';continue;}if($m[3]==$m[5]&&$m[5]==$m[7]){echo$m[3].' ';continue;}echo'None ';}
|
<?function x($a){return $a[0]!=''&&count(array_unique($a))==1;}$i=explode("\n",BOARDS);for($j=$d=0;$j<=$k=count($i);$j++){$b=$i[$j];if(!empty($b))$c[$d++]=explode('|',$b);elseif($d){$d=0;$s='None';for($e=0;$e<3;$e++){if(x(array($c[0][$e],$c[1][$e],$c[2][$e]))) $s=$c[0][$e];if(x($c[$e])) $s=$c[$e][0];}if(x(array($c[0][0],$c[1][1],$c[2][2]))) $s=$c[0][0];if(x(array($c[0][2],$c[1][1],$c[2][0]))) $s=$c[2][0];echo"$s\n";}}
|
<?$d=0;$i=explode("\n",BOARDS);$c=array();for($j=0;$j<=count($i);$j++){if($j==count($i))$b='';else$b=$i[$j];if(!empty($b)){$c[$d]=explode('|',$b);$d++;}elseif($d!=0){$d=0;$s="None\n";for($e=0;$e<3;$e++){if($c[0][$e]==$c[1][$e]&&$c[2][$e]==$c[1][$e]){$s=$c[0][$e]."\n";}if(count(array_unique($c[$e]))==1){$s=$c[$e][0]."\n";}}if($c[0][0]==$c[1][1]&&$c[1][1]==$c[2][2]){$s=$c[0][0]."\n";}if($c[0][2]==$c[1][1]&&$c[1][1]==$c[2][0]){$s=$c[2][0]."\n";}echo$s;}}
|
<?
$b=preg_split("/\+\n\+/",BOARDS); foreach($b as$z){ $t=array(); foreach(split("\n",$z)as$l){ if(!$l)++$c; else$t[$c][]=preg_split("/ *\| */",$l); } } foreach($t as $g) { $w=None; for($i=0;$i<3;$i++)if($g[$i][0]==$g[$i][1]&&$g[$i][1]==$g[$i][2])$w=$g[$i][1]; for($i=0;$i<3;$i++)if($g[0][$i]==$g[1][$i]&&$g[1][$i]==$g[2][$i])$w=$g[1][$i]; if($g[0][0]==$g[1][1]&&$g[1][1]==$g[2][2])$w=$g[1][1]; if($g[0][2]==$g[1][1]&&$g[1][1]==$g[2][0])$w=$g[1][1]; print"$w\n"; }
|