aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/quine-puzzle.php
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-01-22 06:54:31 +0900
committernsfisis <nsfisis@gmail.com>2026-01-22 06:54:51 +0900
commitf6c32b37ef5a50a0efc7aa039e86205ab657737b (patch)
treeec23d132ece981b2db9c6ba9f5f82f5b797808e1 /src/quine-puzzle.php
parent34b53af02d128bdb2bfcbb5af46297f9e8701add (diff)
downloadphperkaigi-2026-brochure-article-f6c32b37ef5a50a0efc7aa039e86205ab657737b.tar.gz
phperkaigi-2026-brochure-article-f6c32b37ef5a50a0efc7aa039e86205ab657737b.tar.zst
phperkaigi-2026-brochure-article-f6c32b37ef5a50a0efc7aa039e86205ab657737b.zip
add files
Diffstat (limited to 'src/quine-puzzle.php')
-rw-r--r--src/quine-puzzle.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/quine-puzzle.php b/src/quine-puzzle.php
new file mode 100644
index 0000000..996624f
--- /dev/null
+++ b/src/quine-puzzle.php
@@ -0,0 +1,50 @@
+<?php $z='bcdefghia';eval($s=strtr('$M="array_map";$S="st
+r_split";$C="chr";$zp=strpos($z,"a");[$dx,$dy]=match($arg
+v[1 ]?? nul l){
+"h" =>[ 1,0 ],"
+j"= >[0 ,-1 ],"k"=>[0 ,1] ,"l"=>[-1 ,0]
+,de fau lt= >[0,0],}; $zx =$zp%3;$z y=i
+ntd iv( $zp ,3) ;$s x=$ zx+
+$dx ;$s y=$ zy+ $dy ;if ($s
+x<0 ||2 <$s x)$sx=$zx ;if ($sy<0||2 <$s
+y)$ sy= $zy ;$sp=$sy* 3+$ sx;[$z[$s p],
+$z[ $zp ]]= [$z [$z p], $z[
+$sp ]]; ech o(" <?p hp" .$C
+(32 ).$ C(3 6)."z=".$ C(3 9).$z.$C( 39)
+."; eva l(" .$C(36)." s=s trtr(".$C (39
+)); $n= $M( $S,
+$S( "00 000 111
+1141424414143341142414424344111143434",5));$m=$M($S,$S("0
+00001100101111",3));$i=(new("ArrayObject")($S($s."//".$s,
+))) ->g etI ter
+ato r() ;$B =fn
+($_ =1) =>$ M(f n()=>prin t([ $i->curre nt(
+),$ i-> nex t() ][0]),ran ge( 1,$_*3)); $W=
+fn( $_= 1)= >pr int (st r_r epe
+at( $C( 32) ,$_ *3) );$ N=f n()
+=>p rint($C(1 0)) ;$B(7);$N (); for($y=0; $y<
+3;$ y++){$B(1 9); $N();$B() ;$W (5);$B(); $W(
+5); $B( );$ W(5 );$ B() ;$N ();
+$B( );$ W(5 );$ B() ;$W (5) ;$B
+(); $W( 5); $B();$N() ;fo r($l=0;$l <10
+;$l ++) {$B ();for($x =0; $x<3;$x++ ){$
+W(1 );$ M(f n($
+_)= >$_ ?$B ():
+$W(),$m[$n[$M("ord",$S($z))[$y*3+$x]-97][intdiv($l,2)]]);
+$W(1);$B();}$N();}$B();$W(5);$B();$W(5);$B();$W(5);$B();$
+N() ;$B (); $W(
+5); $B( );$ W(5
+);$ B();$W(5) ;$B ();$N();$ B(1 9);
+$N( );}$B(9); ech o($C(39). ",[ $C(
+32) =>" .$C (34 ).$ C(3 4).
+",$ C(1 0)= >". $C( 34) .$C
+(34 )." ])) ;");//$M= "ar ray
+_ma p"; $S= "str_spli t"; $C=
+"ch r"; $zp =st rpo s($ z,"
+a") ;[$ dx, $dy ]=m atc h($
+arg v[1 ]?? null){"h" =>[ 1,0
+]," j"= >[0 ,-1],"k"= >[0 ,1]
+,"l "=> [-1 ,0]
+,de fau lt= >[0
+,0],};$zx=$zp%3;$zy=intdiv($zp,3);$sx=$zx+$dx;$sy=$zy+//$
+M="array_map";$S="str_split',[chr(32)=>"",chr(10)=>""])); \ No newline at end of file