タグ付けされた質問 「game-of-life」

John ConwayのGame of Lifeに関する課題。

6
ConwayのGame of Lifeでテトリスの実用的なゲームを構築する
ここに理論的な質問があります-どんな場合でも簡単な答えを与える余裕はなく、些細な質問でさえありません。 ConwayのGame of Lifeには、Game of Lifeが他のGame-of-Lifeルールシステムをシミュレートできるようにするメタピクセルなどの構造が存在します。さらに、Game of Lifeはチューリング完全であることが知られています。 あなたのタスクは、テトリスのゲームのプレイを可能にするConwayのライフゲームのルールを使用してセルラーオートマトンを構築することです。 プログラムは、割り込みを表すために特定の世代でオートマトンの状態を手動で変更することにより入力を受け取ります(例えば、ピースを左右に移動、ドロップ、回転、またはグリッドに配置する新しいピースをランダムに生成)。待機時間として特定の世代数を生成し、オートマトンのどこかに結果を表示します。表示される結果は、実際のテトリスグリッドに視覚的に似ている必要があります。 プログラムは、次の項目で順番にスコアが付けられます(低い基準が高い基準のタイブレーカーとして機能します)。 境界ボックスサイズ—与えられたソリューションを完全に含む最小の領域を持つ長方形のボックスが優先されます。 入力への小さな変更—割り込みに勝つために手動で調整する必要のある最小のセル(オートマトンの最悪の場合)。 最速の実行—シミュレーションで1ティック進む最小の世代が勝ちます。 初期の生細胞数—小さい数が勝ちます。 最初に投稿—早い投稿が優先されます。

1
ConwayのGame of Lifeでデジタル時計を作成する
あなたの仕事は、デジタル時計を表すGame of Lifeシミュレーションを構築することです。これは次の特性を満たします。 クロックは、(例えば小数で時間と分を表示し12:00、3:59、7:24一日の1440分ごとに異なる状態で) -のいずれかの時間は、PMインジケータを0から23まで、または1から12に行きます。 パターンは周期的であり、状態は外部との対話なしでループします。 分は定期的に更新されます。1分の変化から次の変化まで、同じ世代数がかかります。 匿名の傍観者は、ディスプレイがデジタル時計であることを一目で知ることができます。特に、これには以下が伴います。 数字が表示され、はっきりと区別できます。どの時間が表示されているかを一目で確実に確認できる必要があります。 数字が所定の位置に更新されます。新しい番号はそれぞれ前の番号と同じ場所に表示され、数字の境界ボックスの動きはほとんどありません。(特に、数字は、数字が変更されるたびに明らかになるさまざまな場所に10の異なる数字を含んでいません。) 数字は隣り合って表示され、それらの間に余分なスペースはありません。 プログラムは、次の項目で順番にスコアが付けられます(低い基準が高い基準のタイブレーカーとして機能します)。 境界ボックスサイズ—与えられたソリューションを完全に含む最小の領域を持つ長方形のボックスが優先されます。 最速の実行-1分間進むのが最も少ない世代が勝ちます。 初期の生細胞数—小さい数が勝ちます。 最初に投稿—早い投稿が優先されます。

16
Game of Lifeを通常のグリッド以外に実装する
ConwayのGame of Lifeは(ほぼ)常に通常の正方形グリッドでプレイされますが、そうである必要はありません。 ConwayのGame of Lifeの標準セル隣接ルールを、正方形、三角形、六角形の規則的なタイルではないユークリッド平面の2次元タイルで実装するプログラムを作成します。 具体的には、選択したタイル... 少なくとも2つ(ただし、有限数)の異なる形状のプロトタイプが含まれている必要があります。 異なる形状は、互いの縮尺または回転バージョンであり得る。 穴を残さずに平面全体をタイル化できる必要があります。 それらは、境界が有限の単純なポリゴンでなければなりません。(それらは単純に単純ではないかもしれません。) 正方形、三角形、六角形のグリッドと同形に区別する必要があります。 通常の正方形、三角形、または六角形のグリッドに簡単に沸騰するタイルは許可されません。(他のタイルでも正方形/三角形/六角形を使用できます。) 2つのプロトタイル間の境界には、複数のエッジと頂点が含まれる場合がありますが、連続している必要があります。 タイルは周期的または非周期的かもしれませんが、平面全体をカバーするように拡張された場合、各プロトタイプは無限に何度も現れなければなりません。(したがって、タイルの特定の部分を「ハードコーディング」して、以下の追加のポイントを達成することはできません。) 各プロトタイプは、他のセルに隣接する1つのGame of Lifeセルを表します。 エッジまたは頂点を共有するセルは、隣接セルと見なされます。 複数のエッジまたは頂点を共有するセルは、隣同士で1回だけカウントされます。 セルは隣接できません。 タイリングのインスピレーションリンク: http://en.wikipedia.org/wiki/Tiling_by_regular_polygons http://en.wikipedia.org/wiki/List_of_uniform_tilings http://en.wikipedia.org/wiki/Aperiodic_tiling http://en.wikipedia.org/wiki/Penrose_tiling 出力 あなたのプログラムは、ゲーム内でプレイされているGame of Lifeでのタイルのグラフィック表現を出力する必要があります。もちろん、それをimage / gif / jsfiddle形式で投稿する必要があります。 タイルの端の線を描き、死んだ細胞には明るい色を、生きた細胞には暗い色を使用してください。 得点 提出スコアは、アップ投票の数からダウン投票を引いたものに、タイルで一般的なGame of Lifeパターンを発見するための追加ポイントを加えたものです。 静物 -世代から世代へと変化しないパターンを見つけます。(+2) 周期2〜29の発振器を見つけます(合計5周期まで、または最大+15ポイントまで、周期ごとに+3)。 周期が30以上の発振器を見つけます。(+7) 宇宙船を見つけてください-残骸を残さずに出発地から任意に遠く離れることができるもの。(必ずしも可動オシレーターではないかもしれません。)(+10) 明らかに異なる方法で移動する別の宇宙船を見つけます(最初の宇宙船のミラーバージョンではありません)。たとえば、グライダーとLWSSを参照してください。(+10) 無限の成長のパターンを見つけます。成長が無限であることを証明する必要はありません。実際に確実なパターンの十分な証拠を示してください。(+25) 銃を見つける-宇宙船を永遠に生成するもの(これは無限の成長としてもカウントされます)。(+50) 無限の成長パターンは有限数の生細胞で始まり、他のパターンは常に有界の数の生細胞を含んでいる必要があります(たとえば、宇宙船は時間とともに勝手に大きくなってはいけません)。 非周期的タイルの性質により、これらのパターンの多くはそれらに実装することは不可能であると思われます。そのため、検証可能な非周期的タイルは自動的に+40ポイントを獲得します。非周期的タイルのある場所で機能するパターンは、他の場所で機能する必要はありません。 各ボーナスは1回のみ適用できます。当然、出力を確認して確認する必要があります。最高のスコアが勝ちます。 …

30
人生の最短ゲーム
ConwayのGame of Lifeは、セルラーオートメーションの典型的な例です。セルは正方形のグリッドを形成し、それぞれに2つの状態があります:生きているか死んでいます。各ターンで、各セルは、その状態とその8つの隣人の状態に従って同時に更新します。 生きているセルは、正確に2つまたは3つのライブネイバーがある場合、生きたままです。 死んだ細胞は、生きている隣人がちょうど3人いる場合に生きます あなたの使命は、あなたがそれを受け入れることを選択した場合、お気に入りの言語で最短のGame of Life実装をコーディングすることです。 ルール: グリッドは少なくとも20x20でなければなりません グリッドはラップアラウンドする必要があります(グリッドはトーラスの表面のようになります) 実装では、ユーザーが独自の開始パターンを入力できるようにする必要があります GoLは、何が起こっているのかわからなければ少し無意味です。そのため、各ターンの結果が表示されるまで表示されるオートマトンの視覚的な出力が必要です。

7
人生だよ、ジム
数学者のジョン・コンウェイが発明した有名なセルラーオートマトンであるコンウェイのゲーム・オブ・ライフをご存知でしょう。ライフとは、2次元のセルのボードをシミュレートできる一連のルールです。ルールは、ボード上のどのセルが生き、どのセルが死ぬかを決定します。想像力を働かせると、Lifeはゼロプレーヤーゲームであると言えます。有名なグライダーのように、興味深い動作を伴うパターンを見つけることを目的としたゲームです。 ゼロプレイヤーゲーム...今日まで。ゲームオブライフをプレイし、勝つためにプレイするキングオブザヒルスタイルのプログラムを作成します。対戦相手(単数形)はもちろん同じことを試みます。勝者は、生きているセルがある最後のボットか、10000世代後に最も生きているセルを持つプレイヤーのいずれかです。 ゲームのルール ルールは通常の(B3 / S23)ライフとほぼ同じです。 友好的な隣人が2人未満の生細胞は、飢fromで死にます。 2〜3人の友好的な隣人がいる生細胞は生き残ります。 3人以上の友好的な隣人がいる生細胞は、過密により死にます。 同じプレイヤーの正確に3人の隣人がいる死んだ細胞は、敵の隣人がいなければ、そのプレイヤーのために戦うために生きてきます。 ...しかし、各世代の後、あなたとあなたの対戦相手の両方が介入する機会を得ます。あなたはあなたのために戦うために最大30個の細胞まで目覚めることができます。(最初に行く人はサーバーによって決定されます。) ボードは(x、y)セルの正方形です。すべての正方形は最初は死んでいます。境界はラップアラウンドせず(トーラス型の世界ではありません)、永久に死んでいます。 これはBattlebotsとCore Warsの精神のコンテストです。ボットを実行する中央サーバーがあり、ここにあります プロトコル アリーナサーバーは、argvを介して通信される単純なJSONプロトコルを話します ValuesはJSONエンコードされた文字列です y_size:タイルが消失する前の最大y座標 x_size:タイルが消滅するまでの最大x座標 tick_id:現在のティック番号 board: '(y、x)'形式のキーとbot_id(int)形式の値を持つ辞書 bot_id:このIDのボードのタイルはあなたのものです 例: {"y_size":2000,"x_size":2000,"board":{},"bot_id":1,"tick_id":1} サーバーに選択を伝える: サーバーにタイルのリストを送信して、自分の色に変えます。 空のもののみが変更されます ネストされた座標リストの形式 [[0,0], [0,1], [100,22]...] 注:ボットはタイルをまったく更新する必要はありません-サーバーはそれ自体を更新します 競争ルール 実装がプロトコルに従わない場合は、実装が無効になります。サーバーは状態の変化がないと仮定します アリーナサーバーの障害を故意に利用することは許可されていません。 AIに適切なタイミングで動きを決定させます。できるだけ早く次の動きを送ってください。 最後に、サーバーに親切にしてください。それはあなたの楽しみのためにあります。 これらの規則に従わない場合、失格となる可能性があります。 同点の場合、両方のプレイヤーの合計に1勝が加算されます コントローラーを自分で実行する コントローラのソースはここにあります。コントローラーを実行するには2つの方法があります。 競争モード(端末) でセットアップ python3 get_answers.py 各ボットが他のすべてに対してボットする、すべて対すべての競争を実行します。 テストモード(GUI) 走る python3 …

30
ハッカーのロゴを表示する
「ハッカーエンブレム」とも呼ばれる「ハッカーロゴ」を聞いたことがあるかもしれません。次のようになります。 これは、Game of Lifeと呼ばれる数学的シミュレーションのパターンです。グライダーは、移動する最も単純なライフパターンであり、すべてのライフパターンの中で最も瞬時に認識できます。 挑戦 課題は非常に簡単です。ハッカーのロゴを表示します。これは次のように定義されます: 境界線、白い背景、灰色のグリッド線がある3x3グリッド。 GoLグライダーパターンに配置された5つの黒いドット。 他に何もありません。 ルール 黒いドットが記入しなければならない40% - 80% 、個々のグリッドボックスのを。 エンブレムをグラフィック出力で表示しますが、ASCIIアートは表示しません。 出力は少なくとも30x30ピクセルでなければなりません。 出力の色は、グレー、黒、白のみでなければなりません。 グリッド内の各グリッドボックスは同じサイズになります。グリッドは、通常の3x3の正方形になります。 インターネットまたはファイルシステムからロゴを取得することはできません。 プログラムは、空の画面/ウィンドウにロゴを表示します。終了する場合は、正常に終了する必要があります。 「ドット」は必ずしも「円」を意味しないことに注意してください。「ドット」は、グリッドボックスの中央を中心とする1つの幾何学的図形で、1つの表面があります。たとえば、円または正方形はドットとして適格ですが、2つの三角形またはチェッカーボードは適格ではありません。 勝者 これはcode-golfであるため、各言語の最短回答が勝ちます! 回答にプログラムの出力のスクリーンショットを含めてください。

3
Game of Lifeをそれ自体で実行するコード
グリッドに配置されたときにConwayのGame of Lifeを実装する、それぞれ幅w文字、高さh文字の2つの長方形のコードブロックを記述します。(wとhは任意の正の整数です) たとえば、2つのコードブロックは次のようになります:(実際のコードではなく、w = 3、h = 2) XX| --+ そして | --+ Game of Lifeの「生きている」セルのように最初のブロックを扱い、「死んだ」セルのように2番目のブロックを扱います。 次に、これらの2つのブロックの複数のコピーを、このグライダーなどのGame of Lifeグリッドを表す大きなプログラムに配置します。 | | | | | --+--+--+--+--+ | |XX| | | --+--+--+--+--+ | | |XX| | --+--+--+--+--+ |XX|XX|XX| | --+--+--+--+--+ | | | | | --+--+--+--+--+ | | | | | --+--+--+--+--+ …

3
静物(または感動的なもの)を描く-Game of Lifeで画像を描く
入力としてグレースケール画像が与えられます。あなたの仕事は、ConwayのGame of Lifeで、入力画像にできるだけ近い静的またはループパターンを見つけることです。 出力は、静止画像またはgifに変換可能な何らかの形式のループアニメーションのいずれかです。出力画像の寸法は入力と同じである必要があり、黒と白のピクセルのみが含まれている必要があります。 出力がアニメーションの場合、各フレームはGame of Lifeルールに従って前のフレームから生成され、ピクセルごとに1つのセルが必要です。アニメーションはループする必要があり、最初のフレームは同じルールによって最後のフレームから生成されます。 出力が静止画像の場合、ゲームのルールを適用して同じ画像を生成する必要があります。これは、「生きている」セルが3つ以上または2つ未満の「生きている」近隣を持つことはできず、「死んだ」セルが正確に3つの「生きている」近隣を持つことはできないことを意味します。(これは基本的に上記のアニメーションと同じですが、フレームは1つだけです。) 追加の規則と説明: あなた(またはあなたのプログラム)は、「生きている」セルを白で表し、「死んだ」セルを黒で表すか、その逆を表すかを選択できます。つまり、これをハードコーディングするか、プログラムで入力画像に基づいて選択できます。(ただし、アニメーションのすべてのフレームで同じである必要があります。) 境界条件は周期的である必要があります。つまり、右端の列のセルには左端の列に隣接セルがあります アニメーションの場合、フレームレートはユーザー(またはプログラム)に依存します。グレーのピクセルを近似するには、高速のフレームレートがうまく機能すると思います。 回答に埋め込まれた結果を少なくとも2つ投稿してください。以下のすべての入力画像から結果を投稿できる場合は、望ましいです。 十分に小さいファイルサイズでgifを実現するためにこれが必要な場合は、テストイメージを縮小してもかまいません。より大きなファイルにもリンクしたい場合は、それで問題ありません。自慢したい場合は、高解像度のソースファイルを自由に見つけてください。 コード内の制御可能なパラメーターが多すぎないようにしてください。プログラムの入力のみが画像であることが最善です。例外は、ファイルサイズに影響するため、アニメーションフレームの数を制御するためのパラメーターが必要な場合です。 外部プログラムを使用して、入出力ファイルの形式を変更したり、必要に応じて出力フレームをアニメーションにコンパイルしたりできます。(これは、ファイル形式処理の課題ではありません。) これは人気コンテストなので、投票数が最も多い答えが勝ちです。 ほとんどがこのサイトの他の質問から取られたテスト画像の選択です。(後で「ボーナス」入力画像を追加する可能性があります。) 物事を始めるために、Python 2の非常に馬鹿げた参照の試みがあります。これは、4つの正方形のブロックがGame of Lifeの安定した構造であるという事実を利用しています。入力画像を4倍に再スケーリングし、対応するピクセルが0.5より暗い場合はブロックを描画します。 from skimage import io from skimage import transform import sys img = io.imread(sys.argv[1],as_grey=True) source = transform.resize(img, [i/4 for i in img.shape]) img[:]=1 for x in xrange(source.shape[0]): for y …

4
人生はカラフルになることができます!
生きているようなセルオートマトンの各セルは、生きているか死んでいるだけであるため、それを表すのに1ビットしか必要ありません。つまり、2色しかありません。かなり退屈。 通常の画像のピクセルあたりのビット数は24です(RGBごとに8ビット)。これは、セルとしてピクセルを持つ通常の画像では、24のリアルなゲームを一度にシミュレートできることを意味します! チャレンジ あなたの仕事は、実物のようなセルオートマトンの1世代のルールを24ビット深度画像(お好みのよく知られている形式)に適用し、結果の画像を出力するプログラムを書くことです。 24の各レイヤーは、厳密に独自のレイヤー内で、同じリアルなルールセットを使用します。24層は相互に作用しません。 また ゼロは死んだ細胞であり、ゼロは生細胞です。 境界条件は周期的です(トーラスを形成します)。 すべての画像サイズが機能するはずです。 入出力 プログラムは、stdinまたはコマンドライン(または言語に最も近いもの)を介して3つの引数を取る必要があります。 入力画像ファイルの名前。 新しいセルがいつ生まれるかを示す昇順の0〜8の数字の文字列: 桁の場合はdが文字列である彼らが持っているときに死んだ細胞が生きてくるD生活隣人を。 例:3通常の生活 -正確に3つの生きている隣人の死んだ細胞が生き返ります。 既存のセルがいつ生き残るかを示す、昇順の0から8までの数字のストリング: 桁の場合はdが文字列である、その後で生きた細胞D生きている隣人はそうでない場合、彼らは死ぬ、次世代に生き残ります。 例:23通常の生活-正確に2つまたは3つの隣接セルを持つセルのみが次のラウンドまで生き残ります。 ムーア近傍が常に使用されることに注意してください。実物のようなオートマトンと多くの興味深いルールセットを正確に定義するものの詳細については、こちらまたはこちらをお読みください。 1世代以降の出力イメージは、表示するかout.png、bmpまたは(または何でも)として保存する必要があります。 提出 バイト単位の最短コードが優先されます。 いくつかの重要なルールセットに対して、少なくとも1つのテストイメージとその3つの後続の世代を含める必要があります。これ以上良いものが思いつかない場合は、アバターと通常のライフルールを使用してください。 必要に応じて、緑色の128層に唯一の生きているビットがあるこのGosper Glider Gunを使用できます(通常の生活でのみ動作するはずです)。 興味深いシーケンスやアニメーションを投稿することを強くお勧めします。

18
回転対称性のある数
整数、出力所与truthyのそれは同じ逆さまである場合、値または(180°回転)falsyそうでない場合、値を。 0、1、及び8回転対称性を持っています。6となり9、逆もまた同様です。 真実の結果を生み出す一連の数字:OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

3
ゲームオブライフarrowlits
バックグラウンド この挑戦はapsillersに敬意を表しており、彼は挑戦でBest of PPCG 2016の見た目ほど簡単ではないカテゴリを獲得しました。 おめでとうございます! 「自己紹介」ページで、このユーザーはGame of Lifeセルラオートマトン用の本当にすてきなシミュレータを持っています。(真剣に、それをチェックしてみてください。)一方、aspillaは「arrowslit」のスペイン語です。これらの事実に照らして、この課題はGame of Lifeの矢じりについてです。 ゲームオブライフarrowlits GoLでは、矢印をグライダーで表し、壁を一連のブロックで表します。単一のグライダーが上から壁に近づき、壁の隙間を通過しようとします(矢印が点灯)。あなたの仕事は、グライダーが矢印に照らされているか、壁に衝突するかを確認することです。 入力 入力は、GoL構成を表すビットのグリッドです。任意の妥当な形式(2つのdistict印刷可能なASCII文字の複数行文字列、文字列のリスト、整数の2D配列、ブール値の2D配列など)で使用できます。明確にするために、文字の複数行の文字列を使用します.#に、以下します。 入力には、いくつかのプロパティがあることが保証されています。最初は、その高さは2N一部のN≥6 、その幅が少なくともある2N + 2。入力はすべて.sになりますが、最上部の3行のどこかがグライダーであり、中央の2行にブロックの壁があります。グライダーは南西または南東に向かっており、その位置は、壁が取り外された場合、下端に到達する前にサイドエッジを通過しない(ただし、グリッドのコーナーに到達する)ような位置です。グライダーは、最初に少なくとも1ステップ.s だけ左右の端から分離されます。どのフェーズでもかまいません。 壁は、1列の.sで区切られたブロックで構成されますが、1つの場所を除き、少なくとも2列の.s で区切られます。グライダーのように、左端と右端のブロックも、.sの1ステップだけエッジから分離されています。常に左端に少なくとも1つのブロックがあり、右端に1つのブロックがあります。 有効な入力グリッドの例を次に示します。 ....#...................... ..#.#...................... ...##...................... ........................... ........................... ........................... .##.##............##.##.##. .##.##............##.##.##. ........................... ........................... ........................... ........................... ........................... ........................... 出力 述べたように、あなたの仕事は、グライダーが壁に衝突するか、南端に到達するかを判断することです。この課題の目的上、シミュレーションの後半で何が起こっても、構成が単一のグライダーとブロックの壁で構成されなくなった場合、クラッシュが発生します。次の図は、南東のグライダーが2つの異なるフェーズでクラッシュすることなく通過できる最小のギャップを示しています(南西のグライダーの状態は対称的です)。 ...#........... .#.#........... ..##........... ............... ............... ##...........## ##...........## ...#........... ....#.......... ..###.......... ............... …

1
コンウェイのハローワールド
多くの場合、全てのプログラマが(そして、「Hello World」のその言語には、いくつかの視線後の任意のプログラミング言語でプログラムを書くことができなければならないこと、言われているクイックソートを少数のより多くの視線の後)。 ライフゲームがチューリング完全さ(それは汎用プログラミング言語としての資格ので)、問題は自明です。 「Hello World!」を作成します ConwayのGame of Lifeのみを使用したアプリケーション!唯一の有効なエントリは、ConwayのGame of Lifeの初期状態です。 「Hello World!」というテキストに類似した認識可能な形状は含まれていません。 「Hello World!」というテキストに似た認識可能な形状が含まれます。妥当なサイクル数内(良好なPCで数分以上実行しないでください-これにより数十億サイクルが可能になり、十分なはずです) 「Hello World!」のあるエリア 初期状態では空のテキストが表示されます!(それ以外の場合、問題はあまりにも簡単です)誰もそれをなんとかしていない場合、この要件を「ほとんど空」に減らすことができます 得点: 受賞者は、最初の有効な提出から約1週間後の投票数に基づきます。 投票のガイドライン: より精巧で美しい出力はもっと価値があるはずです 多くのサイクルにわたって安定している出力は、次のサイクルで認識できないようにフェードアウトする1つ以上の価値があるはずです。 永続的なサイクルにロックされたソリューション、または興味深いパターンから開始するソリューションは、リバースシミュレーションによるランダムな試行錯誤ではなく、状態のインテリジェントな設計を証明するため、最も価値があります。 エントリは、少なくとも1つの注目すべきシミュレーターまたは回答者がリンクするオンラインシミュレーターが読み取り可能な形式である必要があります。(初期状態に設定されたアニメーションまたはシミュレータへの)リンクも受け入れられ、推奨されます。出力が数サイクル以内に表示されない場合、エントリは結果が表示されるサイクルを指定する必要があります。 編集: 生成されるフレーズには多少の許容差があります。「Hello, World!」、「hello, world」、「HELLO WORLD!」などです。

15
いくつかのドミノを倒す!
インスピレーションを与えてくれたこの質問に感謝します この挑戦で、私たちはのストリングとしてドミノのラインを表すでしょう|、/そして\。入力としてドミノの文字列が与えられ、落ち着いたときにどのように見えるかを決定する必要があります。ドミノが倒れる方法のルールは次のとおりです |倒れたドミノの左にある立っているドミノは、\同様に左の倒れたドミノになります。 |倒れたドミノの右側にある立っているドミノも、/同様に倒れた右のドミノになります。 倒れたドミノが左倒れ\た/ドミノと右倒れたドミノの間にある場合、立ったままになります。 これらの規則は、配置が変更されなくなるまで繰り返し適用されます。 単一の入力がその結論に到達する方法の例を次に示します |||||||\/|||||||\||\|||/||||||\||||| ||||||\\//|||||\\|\\|||//||||\\||||| |||||\\\///|||\\\\\\|||///||\\\||||| ||||\\\\////|\\\\\\\|||////\\\\||||| |||\\\\\////|\\\\\\\|||////\\\\||||| ||\\\\\\////|\\\\\\\|||////\\\\||||| |\\\\\\\////|\\\\\\\|||////\\\\||||| \\\\\\\\////|\\\\\\\|||////\\\\||||| あなたの仕事は、入力の最終結果を見つけて出力するコードを書くことです。入力は常に有効で、少なくとも2文字が含まれていると想定できます。 これはコードゴルフであるため、回答はバイト単位で記録され、バイト数は少ない方が良いでしょう。 テストケース |||/|||| -> |||///// |||\|||| -> \\\\|||| |/||||\| -> |///\\\| ||/|||\| -> ||//|\\| ||\|||/| -> \\\|||//

1
一般的なGame of Lifeパターンを数える
ここでのタスクは.rle、ファイル名が(STDINまたはコマンドライン引数として)提供されているGolly またはプレーンテキストファイル(選択)から読み取り、そこにエンコードされたグリッド内の共通パターンを識別してカウントすることです。 または、代わりにSTDIN経由でファイルの内容を直接提供することもできます。 あなたのプログラムは少なくとも15の最も一般的な厳密な静物と5つの最も一般的な発振器とグライダーを特定し、区別できるべきです。 グライダーの4つの位相すべてと同様に、これらのオシレーターのすべての位相を認識する必要があります。 各パターンの最終カウントを含むリストを出力し、各パターンの名前と数量を別々の行に出力する必要があります。プログラムは、これらのパターンのすべてまたは少なくとも1つが見つかったパターンのみを出力リストに含めることができます。 カウントされる他のパターンの一部であるパターンはカウントされません。(たとえば、ビーコンの8セルフェーズは2ブロックとしてカウントされるべきではなく、船のタイも2隻としてカウントされるべきではありません) 入力がすでに安定しており、前述のセットにないパターンが含まれていないことを想定できます。入力グリッドが1024x1024ボックス内に収まると仮定することもできます。 これはcode-golfなので、最短のプログラムが優先されます。 RLEファイル形式の説明 RLEファイルには、ランレングスでエンコードされたライフグリッドが含まれています。で始まる行はすべて#コメントであり、無視する必要があります。 最初の空ではなく、コメントではない行はの形式x=<width>,y=<height>,rule=<rule>です。このタスクの目的上、ルールは常にになりますB3/S23。この行を処理する前に削除する必要があるスペースを含めることができます(もちろん、この行を処理する必要はまったくありません。) 最初の行の後の非コメント行は、単一の文字列として扱われるべきです。これは、小数点以下の数字、文字で構成されなければならない$、bとo、改行、および数字で終了しません。改行は無視されますが、改行は数字列に割り込まないと想定できます。 これは単一で終えられるかもしれません!。 b死んだセル、o生きているセル、$行の終わりを表します。10進数は、次の記号が何度も繰り返されるものとして扱われることを示します。 平文パターンエンコーディング もう1つのオプションは、ここで説明する別のプレーンテキスト形式でパターンを読み取ることです。このエンコーディングでは、オフセルはハイフンで表され、オンセルは大文字のOで表され、改行で行が区切られます。 非コメント行はすべて、ハイフンで同じ長さにパディングされると想定できます。 で始まる行!はコメントであり、無視されます。 いくつかのテストケース RLE: #This is a comment x = 35, y = 16, rule = B3/S23 bo$2o$obo5$22bo$22bo$22bo2$18b3o3b3o2$22bo$22bo10b2o$22bo10b2o! 平文: !This is a comment -O--------------------------------- OO--------------------------------- O-O-------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------O------------ ----------------------O------------ ----------------------O------------ …

5
ハードオブジェクトまたはソフトオブジェクトはもっとありますか
What-Ifブックのオープニングに触発されました。 入力は、文字列、文字列のリストなどとしてのスペースの長方形で、#内部にで作成されたオブジェクトがあります。 ######## # # ######## ### #### ### #### ### オブジェクトは常に交差せず、触れない長方形になります。ソフトオブジェクトは#、中央がで埋められておらず、境界のみであるオブジェクトとして定義されます。ハードオブジェクトは、塗りつぶされたオブジェクトです。幅または高さのあるオブジェクト<=2はハードと見なされます。すべてのオブジェクトはハードまたはソフトです。 入力にさらに硬いオブジェクトがある"Hard"場合、output 、より柔らかい場合、output "Soft"、それらが等しい場合、output "Equal"。 これはcode-golfなので、バイト単位の最短コードが勝ちです! テストケース これらのケースは完全な入力ではなく、各オブジェクトを特徴付けるべきものです。実際の入力は、質問の上部にあるascii-artのようになります。 ハード # #### ## ## ########## ########## ########## 柔らかい ### # # ### ################### # # # # # # ################### #### # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.