プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

22
テキストの三角形化
スペースを除いて印刷可能なASCII文字のみが含まれ、長さが正の三角形(1、3、6、10、15、...)であることが保証されている文字列を取り込むプログラムまたは関数を記述します。 同じ文字列を印刷するか返しますが、スペースを使用して三角形に整形します。いくつかの例は、私が意味することを最もよく示します: 入力がR次の場合、出力は R 入力がcat次の場合、出力は c a t 入力がmonk3y次の場合、出力は m o n k 3 y 入力がmeanIngfu1次の場合、出力は m e a n I n g f u 1 入力が^/\/|\/[]\次の場合、出力は ^ / \ / | \ / [ ] \ 入力が Thisrunofcharactersismeanttohavealengththatcanbeexpressedasatriangularnumber.Diditwork?Youtellme,Ican'tcountverywell,ok? 出力は T h i s r u n o f c …

14
神殿のスカイラインシーケンスを生成する
次のプロセスを検討してください。 負でない整数Nを取ります。 例:N = 571 先行ゼロなしでバイナリで表現します。(ゼロ自体は唯一の例外で、になり0ます。) 例571= 1000111011バイナリで このバイナリ表現で1と0の連続した実行を分割します。 例えば1000111011→ 1、000、111、0、11 実行を最長から最短に並べ替えます。 例えば1、000、111、0、11→ 000、111、11、1、0 各実行のすべての数字を、常にで始まる「」1と0「」を交互に使用して上書きします1。 例えば000、111、11、1、0→ 111、000、11、0、1 結果を連結して、新しい2進数を取得します。 例えば111、000、11、0、1→ 1110001101= 909小数で このプロセスによって生成された値をプロットすると、かなりきれいなグラフが得られます。 そして、結果のシーケンスをTemple Skylineシーケンスと呼んでいる理由が明らかになることを期待しています チャレンジ 非負の整数Nを取り込んで、対応するTemple Skylineのシーケンス番号を出力または返すプログラムまたは関数を作成します。入力と出力は両方とも10進数でなければなりません。 入力された場合、たとえば571、出力があるべき909。 バイト単位の最短コードが優先されます。 参考のために、N = 0から20までのシーケンスの用語を以下に示します。 0 1 1 1 2 2 3 3 4 6 5 5 6 6 7 7 8 14 …

3
放射線硬化クイン
(願わくば)知っておくべきことですが、耐放射線強化されたクインは、任意の1文字を削除して、元の修正済みソースを印刷できるクインです。重要なのは、これらのほとんどでは、1文字しか削除できないということです。そうしないと、すべてが故障します。これは、これが来るところです。あなたの目標は、できるだけ多くのキャラクターの除去を行うことができる耐放射線性のクインを構築することです。ルールに準拠する言語であれば問題ありません。 ルール プログラムは少なくとも1文字の長さが必要です 使用する言語は完全にチューリングする必要があります(したがって、HQ9 +などの言語は対象外です) 通常のクインに適用される他のすべてのルールもここに適用されます。 少なくとも有する溶液program_length^(2/n)れる任意正確セットn依然として元のソースコードWINSを印刷中の文字を除去することができます。

29
課題に近いコード:整数の合計
これは簡単な課題です。整数のシーケンスが与えられたら、その中のすべての整数の合計を見つけます。 しかし、ひねりを加えて。スコアは、コードと次のフレーズ(チャレンジ)の間のレーベンシュタイン距離です。 整数のセットが与えられたら、その中のすべての整数の合計を見つけます。 入力に改行や末尾のスペースがないと仮定できます。 入出力の例: Input: 1 5 -6 2 4 5 Output: 11 Input: 1 -2 10 Output: 9 レーベンシュタイン距離のオンライン計算機は、http://planetcalc.com/1721/で見つけることができます

13
ミー・ウォント・ハニカム
六角形のタイルまたはハニカムのこのASCIIアートセクションを印刷する最短のプログラムを記述します。 __ __/ \__ __/ \__/ \__ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ \__/ \__/ \__/ 何も入力しないでください。 stdoutまたは言語の最も近い代替への出力。 プログラムの代わりに、パラメータを取らずに結果を通常どおりに出力するか、文字列として返す名前付き関数を作成できます。 出力には、任意の数の先頭および/または末尾の改行を含めることができ、出力の各行には、任意の数の先頭および/または末尾のスペースを含めることができます(パターンが適切に整列する限り)。 バイト単位の最短コードが優先されます。

24
数値の桁差の合計を計算する
8675309などの負でない整数を取り、隣接する数字のすべてのペア間の差の絶対値を計算することを検討してください。 以下のために8675309我々が得ます|8-6| = 2、|6-7| = 1、|7-5| = 2、|5-3| = 2、|3-0| = 3、|0-9| = 9。これらの結果をつなぎ合わせると、別のより小さな非負整数が得られます212239。プロセスを繰り返すと、が得られます11016。0115これは、先行ゼロが書き込まれないという規則により、、またはに115なり、これ以上削減することはできません。これらすべての値を合計すると、が得られます。0448675309 + 212239 + 11016 + 115 + 4 = 8898683 Digit Difference Sum(またはDDS)を、数字の数字の差分を繰り返して新しい数字を作成し、結果の数字をすべて元の数字に追加するこの操作として定義しましょう。 以下は、対応するDDSシーケンスの最初の20個の値です。 N DDS(N) 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 …

8
安定したレンガの壁を構築する
レンガの壁は、横に1行n列のレンガが積み重なった長方形です。これは、高さ4と幅8の壁で、右側にレンガのサイズが表示されています。 [______][______] 4 4 [__][____][__][] 2 3 2 1 [][______][____] 1 4 3 [____][______][] 3 4 1 この壁には障害があります。これは、周囲のレンガ内に括弧が付いている、レンガ間の2つの垂直亀裂が並ぶ場所であるためです。 [______][______] [__][____)(__][] [][______)(____] [____][______][] ただし、右側のサイズ1のレンガに隣接する亀裂は、列で区切られているため、障害にはなりません。 指定されたサイズのレンガで構築された安定した壁を見つけて表示するコードを記述します。最少バイトが勝ちます。 入力 空白ではないレンガサイズ(正の数)のリストと、少なくとも2の高さ。このリストは、必要に応じて並べ替えることができます。代わりに、各サイズのレンガの数を取り入れることができます。 出力 指定されたすべてのレンガを使用した、必要な高さの安定した長方形の壁の写真。印刷するか、改行付きの文字列として返します。 角括弧で囲まれたアンダースコアを2n文字としてサイズnのブリックを描画します。 1: [] 2: [__] 3: [____] 4: [______] ... 入力には、少なくとも1つのソリューションがあることが保証されています。複数ある場合でも、壁を1つだけ描画する必要があります。 時間制限はありません。必要なだけブルートフォースを使用します。アルゴリズムは、理論的にはあらゆるサイズの入力で動作するはずです。 テストケース: 複数のソリューションがあるため、出力が異なる場合があります。 >> [1, 1, 2, 2], 2 [][__] [__][] …

5
正規表現で番号を追加する
新しいタイプの正規表現ゴルフチャレンジを試してみたいと思います。これは、正規表現の置換だけで、自明ではない計算タスクを解決するように求めます。これを可能にし、面倒な作業を少なくするために、次々にいくつかの置換を適用できます。 チャレンジ 簡単に始めましょう。2つの正の整数を含む文字列を、a ,で区切られた10進数として指定すると、合計も10進数としても含む文字列が生成されます。だから、非常に簡単に 47,987 になるはずです 1034 あなたの答えは、任意の正の整数に対して機能するはずです。 フォーマット すべての答えは置換ステップのシーケンスである必要があり、各ステップは正規表現と置換文字列で構成されます。オプションで、シーケンス内のこれらの各ステップについて、ストリングの変更が停止するまで置換を繰り返すことを選択できます。以下に送信例を示します(上記の問題は解決しません)。 Regex Modifiers Replacement Repeat? \b(\d) g |$1 No |\d <none> 1| Yes \D g <empty> No inputが与えられると123,456、このサブミッションは入力を次のように処理します。最初の置換が1回適用され、次のようになります。 |123,|456 これで、ストリングの変更が停止するまで、2番目の置換がループで適用されます。 1|23,|456 11|3,|456 111|,|456 111|,1|56 111|,11|6 111|,111| 最後に、3番目の置換が1回適用されます。 111111 ループの終了基準は、正規表現が一致を検出したかどうかではなく、文字列が変更されたかどうかであることに注意してください。(つまり、一致するものが見つかっても置換が一致する場合にも終了する可能性があります。) 得点 プライマリスコアは、提出の代替ステップの数になります。置換が繰り返されるたびに、10ステップがカウントされます。したがって、上記の例ではスコアが付けられ1 + 10 + 1 = 12ます。 タイの(あまりありそうにない)ケースでは、2次スコアはすべてのステップのサイズの合計です。各ステップで、正規表現(区切り文字なし)、修飾子、置換文字列を追加します。上記の例では、これはになります(6 + 1 + …

1
Stack Exchangeチャットルーム用のチャットボットを作成する
チャレンジ この課題の目標は、Stack Exchangeのチャットルームで実行できるチャットボットを作成することです。ボットは、特定のコマンドがユーザーによって投稿されたときにそれを検出し、それに応答できる必要があります。これはコマンドのリストであり、ボットが行うべきことです: !!newest:このサイト(codegolf.SE)に投稿された最新の質問のタイトル(リンクではなくタイトル)を出力します。 !!metanewest:メタサイト(meta.codegolf.SE)に投稿された最新の質問のタイトルを出力します。 !!questioncount:現在の質問数を出力します。 !!metaquestioncount:メタサイトで現在の質問数を出力します。 !!tag tagname:最初のパラメーターとして指定されたタグの抜粋(短い説明)を出力します。 !!metatag tagname:上記と同じですが、メタサイト用です。 !!featured:現在賞金がある質問の数を出力します。 !!metafeatured:Metaに[featured]タグがある質問の数を出力します。 ルール スニペットや関数ではなく、完全なプログラムを作成する必要があります。 必要な場合は、入力としてユーザー名とパスワードを要求できます(入力、STDIN、コマンドライン引数の入力を求めます)。これは、たとえばPythonやRubyを使用する場合に必要になりますが、JavaScriptを使用してチャットルームページ自体でスクリプトを実行する場合には必要ありません。 外部ライブラリを使用して、WebSocketのようなことを行うことができます。これらのライブラリは、文字数をカウントする必要はありません。 あなたは、することができます(ただし、あなたが、あなた自身を書くことが奨励されている必要はありません)、外部チャットラッパーを使用して、文字カウントにカウントするように持っています。また、ラッパーのコードを変更することもできません。使用する場合は、変更せずに使用し、すべての文字をカウントする必要があります(独自のラッパーを作成しない場合のペナルティとして)。 ラッパー自体のコードのみが重要です。例などの他のファイルがある場合、これらはカウントする必要はありません。 URL短縮サービスやURLを短くする他の方法を使用しません。チャレンジはURLをゴルフするのではなく、チャットボットをゴルフすることです。 チャットやコマンドへの応答に必要な情報の取得に必要なものを除き、Webリクエストはありません。 標準の「抜け穴」の使用は許可されていません。 誰かがコマンドを投稿した場合、次の形式のチャットメッセージで応答する必要があります@user response。したがって、コマンドを作成し、!!featured5つの注目すべき質問がある場合、ボットは投稿する必要があります@ProgramFOX 5。 ボットをテストする場合、チャットボットアカウントから実行し、このチャットルームで実行します。私は常にその部屋でボットをテストするので、部屋IDを入力として提供する必要はありません。常に14697です。このIDは入力として与えられないので、ハードコーディングする必要があります。 コマンドが見つからない場合は、出力します@user The command [command] does not exist。[command]存在しないコマンドの名前に置き換えます。引数がコマンドに提供されている場合、引数を出力せず、コマンド名のみを出力します。 コマンドに多数の引数が必要な場合は、不要な引数を無視してください。 コマンドに十分な引数がない場合、出力 @user You have not provided enough arguments システムは、重複したメッセージが短い時間範囲内に投稿されるのを防ぎます。したがって、ボットをテストするとき、同じ出力を連続して与える2つのコマンドを実行することはありません(つまり、たとえばドットを追加することで、メッセージが重複している場合にメッセージを変えるシステムを実装する必要はありません)。 システムは、短い時間範囲内に投稿されるメッセージが多すぎることを防止するため、テスト時には、短い時間範囲内にあまり多くのコマンドを送信することはありません。つまり、ボットがこれを処理する必要はありません。たとえば、投稿する前に)。 これはcode-golfで、バイト数が最小のプログラムが勝ちます。 入門 ボットの作成を開始するための情報を次に示します。これを使用する必要はありませんが、ガイダンスになる可能性があります。 ログインするには、まずOpenIDプロバイダーにログインします。これは常にStack Exchange OpenID(https://openid.stackexchange.com)です。ログインフォームはにあり、https://openid.stackexchange.com/account/loginそこにユーザー名とパスワードを入力します。 …
39 code-golf 

14
散発的なShiftキーを使用したプログラミング
キーボードに何か問題があります。Shiftキーは、独自の心を持っています。文字を入力するたびに、それがシフトして出てくるかどうかはわかりません(ただし、50〜50です)。標準の文字キーに加えて、キーボード上の何も機能していません。マウスなどの入力手段はありません。 どういうわけか、物事を修正する唯一の方法を知っているのは、Dear Computer, please stop giving me shift!stdoutに出力するプログラムを書くことです。幸い、IDEは開いていてプログラムを実行できますが、もちろん、入力するときにどの文字がシフトされるかはわかりません。 最初の試行で作業する可能性が最も高いプログラムを作成するために、どのキーシーケンスを使用しますか? 詳細 標準のQWERTYキーボードを使用しているため、50文字のキーを押すことができます。 シフトされていないバージョン(47のみ): `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./ シフトバージョン(47のみ): ~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>? 最後の3つのキーがありEnter、TabとSpaceシフトし、シフトされていない同じです。 これらの文字のNのシーケンスは、2 N-(空白文字カウント)の方法で、誤ったキーボードで入力した場合に出力される可能性があります。たとえば、タイピングA Space mにより a mor A mまたはa Morが生成される場合がありA Mます。 これらの文字をプログラムに記述し、その2 N-(空白文字数)の可能なシフトの組み合わせをすべて調べます。組み合わせが多いほど出力Dear Computer, please stop giving me shift!が良くなります。スコアは、有効な組み合わせ(有効なプログラム)の数を組み合わせの総数で割ったものです。最高のスコアが勝ちます。 ノート 有効なプログラムの場合、正確に印刷Dear Computer, please stop giving me shift!し、stdout以外に何も印刷しないことが唯一の副作用です。 有効なプログラムは入力を受け付けません。 無効なプログラムは何でもできます。 コメントはどこでも使用できます。 100%のスコアを得ることは(比較的)些細なことなので、ホワイトスペースの回答は勝つことができません。あなたはまだ楽しみのためにホワイトスペースソリューションを提出することができます。 プログラムの長さは最大1024文字でなければなりません。 更新:より複雑な回答ができるように変更Stop giving me …

9
「便利な回文」チェッカー
これまでに回文コードを記述しようとしたことがあるなら、どれだけの括弧が邪魔になる傾向があるか知っているでしょう。()()、それがあるべきように、それはちょっと見えていても、回文されていない状態())(と()(両方見て非常にダムパリンドロームとの両方です。逆の場合は便利ではないでしょうか? 文字列は、逆の括弧()、括弧()、および中括弧()がすべて反転しているときに導出された文字列と等しい場合、便利な回文です。他のキャラクターは特別ではなく、反転が必要です。(ペアになっていることもありますが、そうではないことが多いため、省略されています。)()[]{}<> あなたの仕事は、あなたの言語で、プログラム(STDINで入力を取得する)または関数(単一の文字列引数を取得する)を書くことです。それ以外の場合、および(b)それ自体は回文的に便利です。 たとえば、次の入力は便利な回文です。 racecar (a)(bb)(a) void main(int argc, *char[] argv) {} (vgra []rahc* ,cgra tni)niam diov そして、以下はそうではありません: non-palindrome A nut for a jar of tuna? (old [style] parens) )snerap ]elyts[ dlo( ingirumimusnocte)etconsumimurigni インタープリター/コンパイラフラグを除き、外部状態(特定のファイル名、ディレクトリ構造、他のユーザー入力、Webアクセスなど)に依存することはできません。 また、使用している言語のコメント機能を利用して、コメントアウトまたは未使用のコードをレンダリングする「コメントトリック」を使用することはできません。たとえば、次のすべては、安全に削除または破棄できる非機能部品が含まれているため、許可されません(便利なパリンドローム性が失われます)。 {some code} // {edoc emos} {some code} NB.BN {edoc emos} "n\" ;{edoc emos} ;"; {some …

6
Vectoryへ!–ベクターレーシンググランプリ
ユーザーCarpetPython がこの問題に関する新しい見解を投稿しました。検索スペースが増加したため、ヒューリスティックなソリューションにより大きな焦点を当てています。個人的には、この挑戦​​は私の挑戦よりもずっといいと思うので、試してみてください! ベクトルレースは、ペンと四角い紙で遊ぶことができる中毒性のゲームです。紙の上に任意の競馬場を描き、開始と終了を定義してから、ターンベースの方法でポイントサイズの車を操縦します。できるだけ早く終わらせますが、壁につかないように注意してください! トラック マップは2次元のグリッドで、各セルには整数座標があります。 グリッドセル上を移動します。 各グリッドセルは、トラックの一部であるか、壁です。 正確に1つのトラックセルが開始座標です。 少なくとも1つのトラックセルが目標として指定されています。これらのいずれかに着陸すると、レースが完了します。複数の目標セルが接続されているとは限りません。 車の操縦 あなたの車は与えられた座標から速度ベクトルで始まり(0, 0)ます。各ターンで、ベロシティの各コンポーネントを調整する±1か、そのままにすることができます。次に、結果の速度ベクトルが車の位置に追加されます。 写真が役立つ場合があります!赤い丸はあなたの最後のターンの位置でした。青い円は現在の位置です。速度は、赤から青の円へのベクトルです。このターンでは、速度の調整方法に応じて、緑色の円のいずれかに移動できます。 あなたがいる場合土地の壁に、あなたはすぐに失います。 あなたのタスク あなたはそれを推測しました:入力として競馬場を与えられたプログラムを書いて、できるだけ少ないターンでゴールセルの1つに車を操縦します。ソリューションは、任意のトラックを適切に処理でき、提供されたテストケースに対して特に最適化されていない必要があります。 入力 プログラムが呼び出されたら、stdinから読み取ります。 target n m [ASCII representation of an n x m racetrack] time targetは、トラックを完了するために取ることができる最大ターン数であり、トラックのtime合計時間予算(秒単位)(必ずしも整数ではない)です。タイミングの詳細については、以下を参照してください。 改行区切りのトラックには、次の文字が使用されます。 # –壁 S- スタート *- 目標 . –他のすべてのトラックセル(道路) n x m提供されたグリッドの外側のすべてのセルは、壁であると暗示されています。 座標原点は左上隅にあります。 以下に簡単な例を示します。 8 4.0 9 6 ###...*** …

8
遅延戦艦の配置
次のシナリオを想像してください。友人と戦艦をプレイしているが、チートすることに決めたとします。彼があなたの船があった場所を撃った後に船を動かすのではなく、あなたは船を全く置かないことに決めます。そのような方法で船を配置することが不可能になるまで、彼のショットはすべてミスだと彼に言います。 フィールドサイズ、船の大きさのリスト、およびショットのリストの3つの引数を取る関数または完全なプログラムを作成する必要があります。 戦場 指定されたパラメーターの1つは、ボードのサイズです。戦場はセルの正方形であり、与えられたパラメーターは正方形の片側にすぎません。 たとえば、次はサイズ5のボードです。 フィールドの座標は、2つのコンポーネントの文字列として指定されます。文字の後に数字が続きます。特定のケースにある文字に依存することができます。 文字は列を指定し、数字はセルの行を指定します(1から始まる)。たとえば、上の図では、強調表示されているセルはで示されてい"D2"ます。 26文字しかないため、フィールドは26x26より大きくすることはできません。 船 船は1ブロック以上の直線です。船の量はリストで指定されます。最初の要素は1セルの船、2セル-2セルの船などです。 たとえば、リスト[4,1,2,0,1]は次のシップセットを作成します。 戦場に置かれると、船は交差したり、互いに触れたりすることさえできません。角さえありません。ただし、フィールドの端に触れることはできます。 以下に、有効な船の配置の例を示します。 特定のシップセットに対して、特定のサイズの空のボード上に常に配置が存在すると想定できます。 出力 そのような船の配置が存在する場合、それらのいずれかを出力する必要があります。 プログラムは、3つのタイプのいずれかのASCII文字の改行で区切られたマトリックスを出力する必要があります。1つは空白セルを示し、1つは出荷ピース、もう1つは「欠落」とマークされたセルです。他の文字は出力されません。 例えば、 ZZ@Z \@@Z @\\Z \Z\\ (この例では、@空のセル、\「欠落」セル、およびZ出荷部品と定義しました) そのような配置が存在しない場合、プログラム/関数は何も出力せずに戻ります。 入力 本格的なプログラムを作成する場合は、リストの入力方法を指定する必要があります。引数を使用するものもあれば、stdinを使用するものもあります。 これはcode-golfであり、最も少ないキャラクターが勝ちます。 ゴルフ以外の最適化されたソリューションの例 は、こちらをご覧ください Compile with -std=c99、最初の引数はボードのサイズ、その他の引数は船のサイズです。ショットの改行で区切られたリストが標準入力に表示されます。例: ./a 4 1 1 1 <<< $'A2\nA4\nB3\nC3\nC4\D4'

8
ハンプスを狩る
私が若者だったとき、子供たちはコンピュータ店に迷い込んで、スタッフが私たちを追い出すまでハンプ・ザ・ワンプスをプレイしました。シンプルなゲームで、1970年代半ばの家庭用コンピューターでプログラム可能で、非常に初歩的なもので、ひよこサイズのマイクロプロセッサーではなく、おそらく実際のひよこが入っていたと思います。 ゲームを最新のハードウェアで再現することで、その過ぎ去った時代を呼び起こしましょう。 プレイヤーは、二十面体マップ上のランダムな部屋で開始します(したがって、合計20の部屋があり、20面体の顔のように互いに接続されており、各部屋には正確に3つの出口があります)。 しこりは、ランダムに選択された別の部屋で始まります。しびれが悪臭を放ち、その臭いはその場所に隣接する3つの部屋のいずれかで検出できますが、臭いの方向はプレイヤーが判断することはできません。このゲームでは、「おかしな匂いがする」としか報告されません。 プレイヤーは弓と無数の矢を持ち、いつでも自分の前の部屋に撃つことができます。しわがその部屋にある場合、それは死に、プレイヤーが勝ちます。Wumpusがその部屋になかった場合、驚いたことになり、現在の場所に接続されている3つの部屋のいずれかにランダムに移動します。 ランダムに選択された1つの部屋(プレーヤーが開始する部屋ではないことを保証)には、底なしの穴があります。プレイヤーがピットに隣接する部屋にいる場合、彼はそよ風を感じますが、そよ風がどのドアから来たのかはわかりません。彼が穴のある部屋に入ると、彼は死に、wumpusが勝ちます。くぼみはピットの影響を受けません。 プレイヤーが突風の部屋に足を踏み入れた場合、または突進がプレイヤーの部屋に足を踏み入れた場合、突風が勝ちます。 プレイヤーは自分が向いている方向を数字で指定し(1 =右、2 =左、3 =戻る)、次にアクション(4 =矢を放つ、5 =指定した方向に歩く)を指定します。 スコアリングのために、各ゲーム文字列(「風を感じます」、「こぶを嗅ぐ」、「あなたの矢は何もヒットしませんでした」など)を1バイトと見なすことができます。テキスト内のゲームコードを隠すためにこれを悪用しないでください。これは、プレーヤーと対話するためだけのものです。 メガバットを実装するために、バイトカウントの10%を差し引きます。メガバットは、プレーヤーとは異なるランダムな部屋から始まります(ただし、部屋はwumpusやピットと共有できます)。プレイヤーがコウモリと一緒に部屋に入った場合、コウモリはプレイヤーを別のランダムに選択された部屋に移動させます(ピットまたはその中にあるくぼみのある部屋ではないことを保証します)。コウモリに隣接する3つの部屋では、きしむ音を聞くことができますが、プレーヤーにはどの部屋から音が聞こえるかについての情報は与えられません。 二十面体マップと、プレイヤーがこれまでに持っているピット、ウンプス、コウモリ(該当する場合)の位置に関する情報の表示を表示するグラフィカルインターフェイスを実装するために、バイトカウントの35%を差し引きますプレーヤー。明らかに、しこりが動くか、プレイヤーがコウモリに動かされた場合、マップはそれに応じてリセットする必要があります。 調整された最低バイト数が優先されます。 ゲームのバージョンのBASICソースコード(上記のルールに必ずしも準拠しておらず、いずれにしても完全に無制限)は、このWebサイトおよびおそらく他のWebサイトで見つけることができます。

7
ベジェ曲線のアニメーション描画
あなたの仕事は、制御点を与えられたベジェ曲線を描くことです。唯一の基準は、実際に最初の制御点から最後の制御点まで曲線を描く方法を示す必要があることです。 基準 結果はアニメーション化する必要があります。たとえば、何らかの方法で描画プロセスを表示する必要があります。アニメーションの実行方法は無関係で、を生成し.gifたり、ウィンドウに描画したり、ASCII結果を生成したりできます(描画のたびに画面をクリアするなど)。 少なくとも64個のコントロールポイントをサポートする必要があります。 これは人気コンテストなので、プログラムにいくつかの追加機能を追加して、より多くの賛成票を獲得できます。(たとえば、私の答えはコントロールポイントを描画し、画像の生成方法に関する視覚的な補助も描画します) 勝者は、最後の有効な提出の7日後に最も支持された有効な回答です。 私の提出は有効とはみなされません。 ベジェ曲線を描く方法 100回の反復を描画するとします。n曲線のthポイントを取得するには、次のアルゴリズムを使用できます。 1. Take each adjanced control point, and draw a line between them 2. Divide this line by the number of iterations, and get the nth point based on this division. 3. Put the points you've got into a separate list. Let's …

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