だから、基本的に、私はこのGame of Life PHPスクリプトを書いています。私のアウトプットは間違っていて、私はそれを理解できません! スキーム全体は$ worldと呼ばれる2次元配列で構成され、各値は1または0(生きているか死んでいる)の2状態セルに対応しています。各セルは8つの隣接セルを有する。次のようにシステムの次の状態を計算する 規則は、次のとおりです。Game of Life(PHP) - 私の出力を理解しない
- あなたは2-3のライブの隣人(1の)を持っている場合、あなたは次のターン生きています。
- あなたが死んでいる。
次のように私の実装は次のとおりです。 (注:$j_minus
、$i_plus
などが$j-1
を指し、などが、考慮にエッジを取る)
for($i=0;$i<$size;$i++)
{
for($j=0;$j<$size;$j++)
{
if(($world[$j_minus][$i] + $world[$j_plus][$i] + $world[$j][$i_minus] + $world[$j][$i_plus]+$world[$j_minus][$i_minus]+$world[$j_minus][$i_plus]+$world[$j_plus][$i_minus]+$world[$j_plus][$i_plus]) > 3)
{
$new_world[$j][$i]=0;
}
else if(($world[$j_minus][$i] + $world[$j_plus][$i] + $world[$j][$i_minus] + $world[$j][$i_plus]+$world[$j_minus][$i_minus]+$world[$j_minus][$i_plus]+$world[$j_plus][$i_minus]+$world[$j_plus][$i_plus])>= 2)
{
$new_world[$j][$i]=1;
}
else {$new_world[$j][$i]=0;}
}
}
これらのルールは$ new_worldを作り、適用された後システムの新しい状態、私はこの画面で配列を印刷する:
for($i=0;$i<$size;$i++)
{
for($j=0;$j<$size;$j++)
{
echo $new_world[$i][$j]." ";
}
echo "</p>";
}
最初のst $world
の入力は、線と大きなブロックでいっぱいの完全に停滞した状態か、2-3の状態の間の振動です。ルールは正しく適用されていないようです!
皆様のアドバイスをいただき、ありがとうございます。とても有難い! – rocketas