$SIZE=20;
function getidxfromxy($x,$y) {
global $SIZE;
$idx=$SIZE*$y+$x;
return($idx);
}
function setworldfromxy($x,$y,$data) {
global $world;
$idx=getidxfromxy($x,$y);
$world["$idx"]=$data;
}
function getworld($x,$y) {
global $world;
$idx=getidxfromxy($x,$y);
return($world["$idx"]);
}
function checkcell ( $col,$row ) {
global $world;
$idx=getidxfromxy($row,$col-1);
if (getworld($row,$col-1)=="#") $count++;
if (getworld($row-1,$col)=="#") $count++;
if (getworld($row,$col+1)=="#") $count++;
if (getworld($row+1,$col)=="#") $count++;
if (getworld($row+1,$col+1)=="#") $count++;
if (getworld($row+1,$col-1)=="#") $count++;
if (getworld($row-1,$col-1)=="#") $count++;
if (getworld($row-1,$col+1)=="#") $count++;
switch ($count) {
case 2:
return(getworld($row,$col));
break;
case 3:
return("#");
break;
case 0:
case 1:
case 4:
return("_");
break;
default:return("_");
break;
}
if ($count==2) return("#");
}
if (!isset($namefile)) {
$fd=fopen("gameoflife.txt","r");
} else {
$fd=fopen($namefile,"r");
}
if(!flock($fd,2)) {
echo "Desole quelqu'un est en train de lire le fichier
";
exit;
}
for ($i=0;$i<20;$i++) {
for ($j=0;$j<20;$j++) {
setworldfromxy($i,$j,fgetc($fd));
}
fgets($fd,20);
}
fclose($fd);
for ($i=0;$i<20;$i++) {
for ($j=0;$j<20;$j++) {
// Precision $tab[i][j] ne marche pas
// idem pour le $i,$j
echo getworld($i,$j);
}
echo "
";
}
if (!isset($namefile)) {
$fd=fopen("gameoflife.txt","w");
} else {
$fd=fopen($namefile,"w");
}
if(!flock($fd,2)) {
echo "Desole quelqu'un est en train d'ecrire dans le fichier
";
exit;
}
for ($i=0;$i<20;$i++) {
for ($j=0;$j<20;$j++) {
fputs($fd,checkcell($j,$i),1);
}
fputs($fd,"\n",1);
echo "
";
}
fclose($fd);
?>