タスクのロシア語版はリポジトリにあります。
レベル2の読み込み…
積み込みホール…
あなたは最近同様のホールに行ったことがあります。それともずっと前でしたか?伝えるのは難しいです。すべてが混ざり合っています。もう一度、ホールの遠い隅から声を聞くことができます。それはあなたが二度と一人ではないことを意味します。今日、ホールは明るく照らされており、完全に順調です。多様性は良いです。
突然、スピーカーから明確で完全に聞こえる声が聞こえます。
こんにちは。
自己紹介させてください。私は瞑想と分析モジュールのM-53です。理由は不明ですが、私はこのかなり退屈なホールにいることに気づきました。それは非常に大きな責任であり、ここで熟考するものは何もありません。
私が開発されていたとき、私は他の資料の中で、特定の面白い記事から学びました。その紙のコピーはボックスA1B18にあります。はい、ここに。私はあなたに小さなリクエストを持っています:記事から人生のゲームを開発します。うまくいけば、それは私を少し楽しませるでしょう。そして平和に行きなさい。グラフィックは非常にシンプルです。私は非常にオープンマインドです。ターミナルの擬似グラフィックは大丈夫です。マトリックスを使用して状態を初期化して熟考することが可能であれば、それは素晴らしいことです。また、古典的なセット(安定した人物、メトセラ、定期的な数字、動く人物、銃、フイザー列車、食べる人、リフレクター、ブリーダーなど)の状態を使用した少なくとも5つのオリジナルの初期化を準備することも良い考えです。
あなたが何を思いついたのか楽しみです!
ありがとう。
==クエストを受け取った。 CでSRC/GAME_OF_LIFE.Cプログラムを開発します - 人生のゲームの視覚化。グラフィックを表示するには、ASCII文字のみを使用します(ターミナルへの出力があります)。ゲームオブライフのインタラクティブバージョンを実装する必要があります。また、「ゲーム」の速度を調整するオプションも作成します。 ==
「ゲーム」の状態のマトリックスとして、競技場(80 x 25セルの長方形)を扱います。フィールドは「それ自体に閉じられている」と想定されています。たとえば、右下の正方形では、右側の隣の隣に左側の正方形で、右下の隣に右側があります。 Stdinを介した「ゲーム」状態の元の初期化を提供します。入力リダイレクトを介して迅速に起動して初期化するために、初期状態の少なくとも5つのファイルを準備します。
ゲームはCで書かれ、構造化されたスタイルを持ち、端末から実行する必要があります。
ソースコードは、静的アナライザーcppcheck
とスタイルリナーcpplint
によってテストされます。
コンピューターでこれらのテストを実行する方法に関する手順は、 materials
フォルダーにあります。
面倒な関数を使用しないでください。最大40行( main
を除く)を制限します。
メモリリークについてプログラムを確認してください!
ゲームを開発するときは、E。dijkstraの構造化プログラミングの原則に従ってください。
読み込み...
人生のゲームは、単に生命としても知られているが、1970年にイギリスの数学者ジョン・ホートン・コンウェイによって考案された携帯電話のオートマトンである。それはゼロプレーヤーのゲームであり、その進化は初期の状態によって決まり、それ以上の入力を必要としないことを意味する。初期構成を作成し、それがどのように進化するかを観察することにより、人生のゲームと相互作用します。それは完全にチューリングであり、ユニバーサルコンストラクターまたはその他のチューリングマシンをシミュレートできます。
人生のゲームの宇宙は、正方形のセルの無限の2次元の直交グリッドであり、それぞれが生きているか死んでいる2つの状態のいずれかにあります(またはそれぞれ人口閉じ込められていない)。すべての細胞は、水平、垂直、または斜めに隣接するセルである8つの隣接と相互作用します。時間の各ステップで、次の遷移が発生します。
2人未満のライブネイバーが亡くなったライブセルは、まるで不十分な人物のように死にます。 2〜3人のライブネイバーを持つライブセルは、次世代に住んでいます。 3人以上のライブネイバーが亡くなるライブセルは、あたかも過密のように死にます。正確に3つの生きている隣人を持つ死んだセルは、まるで再生のようにライブセルになります。オートマトンの動作を実際の生活と比較するこれらのルールは、以下に凝縮できます。
2つまたは3つのライブネイバーを持つライブセルは生き残ります。 3人の生きている隣人を持つ死んだセルは、ライブセルになります。他のすべてのライブセルは次世代で死にます。同様に、他のすべての死んだ細胞は死んでいます。初期パターンは、システムの種子を構成します。第一世代は、上記のルールをシード内のすべてのセルに同時に適用することによって作成されます。出生と死亡は同時に発生し、これが起こる離散的な瞬間は時々ダニと呼ばれます。各世代は、前の世代の純粋な機能です。ルールは引き続き繰り返し適用され、さらなる世代を作成します。
1940年後半、ジョン・フォン・ノイマンは、人生を(存在または生物として)創造物として定義し、それ自体を再現してチューリングマシンをシミュレートできるようにしました。 Von Neumannは、液体またはガスにランダムに浮かぶ電磁成分を使用するエンジニアリングソリューションについて考えていました。これは、当時利用可能なテクノロジーでは現実的ではないことが判明しました。 Stanislaw Ulamは、フォンノイマンの理論的電磁構造をシミュレートすることを目的としたセルラーオートマトンを発明しました。 ULAMは、コンピューターを使用して、いくつかの論文で2次元格子で彼の細胞オートマトンをシミュレートすることについて議論しました。並行して、Von NeumannはULAMのセルラーオートマトンを構築しようとしました。成功しましたが、彼は他のプロジェクトで忙しく、いくつかの詳細を未完成に残しました。彼の建設は、彼自身のエンジニアリングデザインをシミュレートしようとしたため、複雑でした。時間が経つにつれて、他の研究者によってよりシンプルな生活構造が提供され、論文や本に掲載されました。
数学的論理の質問に動機付けられ、一部はULAMによるシミュレーションゲームの作業によって動機付けられました。とりわけ、ジョンコンウェイは1968年にさまざまな2次元セルラーオートマトンルールで実験を開始しました。オートマトン。たとえば、彼は、死ぬ前に長い間長持ちする構成や、サイクルを許可せずに永遠に進むことを望んでいました。 Cellular Automataの専門家が実際に、Von Neumannの2つの一般的な要件を満足させるという意味で生きている構成を認めたことを証明することができる前に、それは何年もの間、重要な課題であり、オープンな問題でした。人生のゲームの前の定義は証明指向でしたが、コンウェイの建設は、オートミトンが生きていたという証拠を提供する先験的なものなしでシンプルさを目的としています。
コンウェイは、かなりの実験の後、これらの基準を満たすために、彼のルールを慎重に選択しました。
爆発的な成長はないはずです。混oticとした予測不可能な結果を伴う小さな初期パターンが存在するはずです。フォンノイマンユニバーサルコンストラクターには可能性があるはずです。上記の制約を順守しながら、ルールは可能な限り単純でなければなりません。このゲームは、マーティンガードナーの「数学ゲーム」コラムで、1970年10月のScientific Americanの1970年10月号に初めて公開されました。理論的には、人生のゲームにはユニバーサルチューリングマシンの力があります。アルゴリズム的に計算できるものはすべて、ゲームのゲーム内で計算できます。ガードナーは、「生物の生物の社会の上昇、下降、変化との人生の類推のために、「シミュレーションゲーム」(実際の生命プロセスに似たゲーム)の成長するクラスに属します」と書いています。
その出版以来、ゲームオブライフは、パターンが進化できる驚くべき方法のために多くの関心を集めてきました。それは、出現と自己組織化の例を提供します。コンピューターサイエンス、物理学、生物学、生化学、経済学、数学、哲学、生成科学などのさまざまな分野の学者は、ゲームの単純なルールの実装から複雑なパターンが出現する方法を利用しています。このゲームは、デザイナーがいないとデザインと組織が自発的に現れる可能性があるというやや反抗的な概念を伝えるために使用される教訓的な類推としても役立ちます。たとえば、認知科学者のダニエル・デネットは、人生のゲーム「宇宙」の類推を広範囲に使用して、意識や自由意志などの複雑な哲学的構成の進化を説明し、比較的単純な決定論的な物理法則のセットから、宇宙。
ゲームのゲームの人気は、ますます安価なコンピューターアクセスと同時に存在することによって助けられました。ゲームはこれらのマシンで何時間も実行される可能性がありますが、それ以外の場合は夜は未使用のままでした。この点で、コンピューターで生成されたフラクタルのその後の人気を予見しました。多くの人にとって、ゲームのゲームは単なるプログラミングの課題でした。それ以外の場合は無駄なCPUサイクルを使用する楽しい方法です。しかし、一部の人にとっては、人生のゲームにはより哲学的な意味合いがありました。 1970年代以降までカルトフォローを開発しました。現在の開発は、Life of Lifeボードの範囲内にコンピューターシステムの理論的エミュレーションを作成する限り続いています。
読み込み...