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

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

30
Caps Lockを点滅させる
ほとんどのコンピューターのキーボードは、CAPS LOCKボタンで制御される現在の入力モードを示す小さな統合LEDライトを備えています。 あなたの仕事はそれを点滅させることです: それをオン; 0.5(+/- 0.1)秒待機します。 もう一度オフにします。 LED点滅のビデオ映像は大歓迎です! ルール 必要に応じて、異なるLED(たとえば、Scroll Lock、Num Lock、Wi-Fiステータスなど)を点滅させることができますが、キーボード上に物理的に配置する必要があります。 ご使用の言語で1秒未満のsleepコマンドが欠落している場合、プログラムは+2バイトのペナルティで代わりに1秒の遅延を使用する場合があります(これはのためです0.)。 プログラムは少なくとも1回点滅する必要があります。その後何が起こるかはあなた次第です。つまり、点滅を続けることができます(この場合、同じ遅延を待ってから再度オンにする必要があります)。 選択したLEDがデフォルトでオンになっている場合、システムでは、プログラムが実行される前に明示的にオフになっている(たとえば手動で)と想定できます。 これはcode-golfで、バイト単位の最短回答が勝ちです。 リーダーボード var QUESTION_ID=110974,OVERRIDE_USER=61904;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link …

30
実際にはランダムではないランダムスクリプト
オフィスでのちょっとした冗談として、誰かが名前をランダムに選ぶスクリプトを望み、その人は飲み物を一杯飲むと言いました。 人々をジョン、ジェフ、エマ、スティーブ、ジュリーと呼びましょう。 一見ランダムに見えるスクリプトを作成するのは面白いと思いましたが、実際には常に出力と同じ人を指定します(選択したユーザー次第)。 1週間後の最高得票数 そして勝者は.... (現在)158票のポールR。 ここでの回答は素晴らしいものであり、まだ投稿されていない他のアイデアを他の誰かが持っている場合は、それらを追加してください、私はそれらを読むのが大好きです。

30
読み込み中...永遠に
あなたの課題は、次のような無限のロード画面を作成することです。 または、より具体的に: 入力なし。 出力Loading...、末尾にスペースがあり、末尾に改行はありません。 無限に文字を循環|、/、-および\:0.25秒ごとに、シーケンス内の次で最後の1を上書きします。最後の文字だけを上書きすることも、行全体を削除して書き換えることもできますが、その間はLoading...変更されません。 ルール 出力テキストは、指定されたとおりに表示される必要があります。末尾の改行/スペースは許容されます。 最初に出力を表示するまで0.25秒待つべきではありません -プログラムが実行されるとすぐに最初のフレームが印刷されます。 プログラムは無期限に実行できる必要があります。たとえば、フレームにカウンターを使用する場合、カウンターが言語の最大値を超えてエラーを引き起こすことはありません。 各「フレーム」間の待機期間は0.25秒である必要がありますが、明らかにこれは決して正確ではありません-10%程度の誤差が許容されます。 関数を送信できますが、に印刷する必要がありますstdout。 読み込みアニメーションを生成できる限り、非コンソール(ただしテキストベース)環境で回答を送信できます。 これはcode-golfであるため、最短のソリューション(バイト単位)が優先されます。標準的なコードとゴルフの抜け穴が適用されます。 可能であれば、動作中のロード画面のgifを提供してください。 例 これが、サンプルの作成に使用したC ++コードです(変更なし)。 #include <iostream> #include <string> #include <thread> using namespace std; int main() { string cycle = "|/-\\"; int i = 0; cout << "Loading... "; while (true) { // Print current character cout …

30
フランスの国旗を描く
掲示された他の多くの旗の挑戦がフランスの国旗のためのものではありませんでした。今週は適切な時期のようです。 このフラグを可能な限り少ないバイト数で生成します。 画像のサイズは3:2で、サイズは少なくとも幅78ピクセル、高さ52ピクセルでなければなりません。 各ストライプは幅の3分の1を占めます。 :左から右へのストライプの色はRGBです(0, 85, 164)、(255, 255, 255)、(239, 65, 53)。 画像は、一般的な画像ファイル形式でファイルに保存するか、RAWでSTDOUTにパイプするか、表示することができます。 または、ANSIカラーコードを使用して、フラグを表す空白以外の文字で構成される少なくとも78文字幅のテキストブロックを出力します。(標準の青、白、赤を使用します。) 組み込みのフラグ画像/ライブラリは使用できません。 バイト単位の最短コードが優先されます。 リーダーボード この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からリーダーボードを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + 2 (-p flag) = 45 bytes 言語名をリンクにして、スニペットに表示することもできます。 ## [><>](http://esolangs.org/wiki/Fish), 121 bytes コードスニペットを表示 <style>body { text-align: …

30
私を殺さないもの…
概要 これは、誰が最も長く生き残ることができるかを確認するためのボットバトルです。ただし、これらのボットは攻撃されることでパワーを高めますので、撮影する前に慎重に考える必要があります。 ターンごとに、攻撃または防御するボットを選択できます。攻撃するとライフが低下し、パワーが増加します。最後のボットが勝ちます。 ボット 各ボットは1000のライフと10のパワーで始まります。 攻撃されたとき: 攻撃者の力があなたの人生から差し引かれます あなたの力は1上昇します。 したがって、最初のターンで2つのボットに攻撃された場合、980のライフと12のパワーがあります。 防御することを選択した場合: あなたの力は1低下します このターンのあなたに対するすべての攻撃は半分に減少します 攻撃を受けた場合、攻撃者ごとに1から2のパワーが得られます したがって、最初のターンで防御し、2つのボットに攻撃された場合、990のライフと13のパワーがあります。防御して攻撃されない場合、1000のライフがありますが、パワーは9です。 ターンの終わりにあなたのパワーが1未満の場合、1に設定されます。あなたの人生が1歳未満の場合、あなたは死にます。 入出力 ボットは1ターンに1回呼び出されます。各ターンに1秒の時間制限があります。 初期 ボットが初めて呼び出されたとき、引数は与えられません。で応答しokます。これは、ボットが応答することを確認するためにのみ行われます。そうでない場合は、プレーヤーリストに追加されません。 各ターン 各ターンで、ボットにはコマンドライン引数としてゲーム内のすべてのボットに関する情報が与えられます。これらの引数の例は次のとおりです。 1 0,1000,10,1 1,995,11,D 最初の引数はボットの一意のIDです。次に、スペースで区切られたボットのリストが表示されます。各ボットの形式は次のとおりです。 id,life,power,lastAction lastAction攻撃したボットD、防御したX場合、およびこれが最初のターンである場合を表す整数です。その他はすべて整数です。 したがって、上記の例では、あなたは1最後のターンでボットであり、防御されています。ボット0はあなたを攻撃し、まだヘルス/パワーを開始しています。 各ターンの出力は非常に簡単です。攻撃するボットを整数(0または3)として出力するかD、防御するだけです。無効なボットや存在しないボットを攻撃しないでください。無効なコマンドとしてカウントされます。無効なコマンドがあると、パワーが1つ失われます。 トーナメント構造 各ゲームは、体力1000、パワー10で始まるすべてのボットで構成されています。すべてのボットによるアクションは同時に実行されます。ゲームの最大ターン数は1000です。 ターンの終わりに1つのボットが生きている(ライフ> 0)場合、1ポイントを獲得し、別のゲームが開始されます。ターン制限に達し、複数のボットが生きている場合、誰もポイントを獲得しません。残りのすべてのボットが同じターンに死亡した場合、誰もポイントを獲得しません。 トーナメントは15ゲームで構成されています。最後に最もポイントを持っている人が勝ちます!勝った各ゲームに残っているライフの合計によってネクタイが壊れます。 状態 ボットは、名前が付けられた直接のサブフォルダーstate( "Hero"は書き込み可能state/hero.whatever)内で、名前が付けられた単一のファイルからのみ読み取りまたは書き込みを行うことができます。このファイルは、サイズが1024 2バイトを超えてはなりません。時間制限に注意してください。プログラムは、応答するだけでなく、カウントするために1秒以内に終了する必要があります。 これらのファイルは、各トーナメントの前に消去されますが、ゲーム間で保持されます。すべてのボット識別子(id)もゲーム間で同じままです。 コントローラ 以下はトーナメントコントローラー(Stronger.java)です。デフォルトでは、最終結果(プレイヤーのソートされたリスト、勝者が一番上)のみを出力しますが、これにはかなり時間がかかる場合があります。凍結されていません、ただ静かです。より詳細なターンバイターン出力が必要-logな場合は、実行時に引数を追加してください。 ボットを追加するには、2つのオプションがあります。 引数としてコマンドを追加します(java Stronger -log "python bot.py") defaultPlayers[]ソースにコマンドを追加します("python bot.py") ボットのHero、Bully、およびCowardは、この回答で見つけることができ、スコアリングの目的で使用されます。 …

17
配列のソート
概念的には、この課題は本当に簡単です。負でない整数のリストが与えられます。可能であれば、で構成されるリストがソートされるように、負でない整数を見つけます。そのようなものが存在しない場合、出力は有効なものと間違えられないものである必要があります。たとえば、負の数、まったくない、エラーなどです。aiNbi = ai XOR NNN 以下に例を示します。 [4, 7, 6, 1, 0, 3] このリストのすべての要素XOR 5を取得すると、 [1, 2, 3, 4, 5, 6] ソートされます。(結果のリストが一意の要素を持ち、ギャップを含まないことは要件ではないことに注意してください。そのような操作の結果が[0, 1, 1, 3]それでも有効である場合)。 [4, 7, 1, 6, 0, 3] そのようなものはN存在しません。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 入力は、任意の便利なリスト形式または文字列形式です。がそれぞれより小さく、リストに少なくとも1つの要素が含まれていると仮定することができます。ai231 コードは、数秒でテストケース(特に4つの大きなテストケース)を処理する必要があります。 標準のコードゴルフ規則が適用されます。 テストケース 返されないすべてのテストケースには-1、無限の数の正解があります。ここにリストされているものは最小のものです。入力のすべての整数で同じビット(特に、リストの最大数の最上位ビットより大きいビット)を追加設定することにより、追加のソリューションが存在します。 [4 7 6 1 0 3] => 5 [4 7 1 6 0 …

30
エラークインを作ろう!
あなたの課題:選択した言語の「プログラム」を作成し、プログラムのソースコードと同一のプログラムをコンパイル/実行するときにコンパイラ/インタープリター/ランタイムがエラー出力を生成するようにします。 ルール: プログラムは、言語のコンパイラ/インタープリター/ランタイム環境の特定のバージョンまたは実装に固有のものである場合があります。その場合、詳細を指定してください。 標準のコンパイラ/インタープリター/ランタイムオプションのみが許可されます。特定の結果を得るために、コンパイラに奇妙なフラグを渡すことはできません。 このプログラムは、構文的にも意味的にも有効である必要はありませんが、構文的に有効な最良の提出に報奨金を与えることができます。 プログラムは、独自の出力を生成してはなりません(たとえば、印刷または出力関数を呼び出して)。プログラムをコンパイル/実行しようとしたときに生成されるすべての出力は、コンパイラ/インタープリター/ランタイムからのものでなければなりません。 コンパイラ/インタープリター/ランタイムの完全な出力は、プログラムのソースコードと完全に一致する必要があります。 コンパイラー/インタープリター/ランタイムは、プログラムで呼び出されたときに少なくとも1つのエラーメッセージを生成する必要があります。 これは人気コンテストです。賛成票によって決定される最も創造的な答えが勝ちます。標準的な抜け穴を使用する良いケースを提供できる場合は、そうすることができます。

30
単純なTCPサーバー
ポートNで着信TCPトラフィックをリッスンするプログラムまたは関数を作成します。簡単なサービスを提供します。着信接続のIPアドレスフィールドの合計を計算して返します。 プログラムまたは関数は、引数または標準入力から整数Nを読み取ります。ポートNで着信TCP接続をリッスンします。誰かがそのポートに接続すると、プログラムはIPアドレスフィールドの合計を計算し、末尾の改行を付けてクライアントに送り返し、接続を閉じます。 ポート番号Nは有効なポートであり、2 10 <N <2 15 末尾の改行は、\nまたは\r\n IPv4またはIPv6のいずれかを使用できます。IPv6アドレスは16進形式で記述されているため、たとえばなどの同じ形式の結果も提供する必要があります2001:0db8:0000:0042:0000:8a2e:0370:7334 => 12ecd。 これはcode-golfです。標準のルールと抜け穴が適用されます。 例 でサーバーを実行します./server 1234。サーバーは現在実行されており、ポート1234で接続を待機しています。その後、クライアントが127.0.0.1サーバーに接続します。あなたのサーバーは、簡単な計算を実行します127+0+0+1 => 128と、(末尾の改行で)結果をクライアントに送信します128\n。その後、サーバーは接続を閉じて、次のクライアントを待ちます。 リーダーボード var QUESTION_ID=76379,OVERRIDE_USER=20569;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> …

30
Formic Functions-アリの女王の丘コンテスト
ライブを見る | アクティブな回答 | 新しい回答を追加 | チャットルーム | ソースコード | リーダーボード 必要なときにいつでも新しいトーナメント。新しいプレイヤーと新しいアップデートは大歓迎です。 実際のゲーム映像ではありません。 各プレイヤーは、食物を収集する1つのアリ-女王から始まります。食品の各部分は、労働者を生産するために保持または使用することができます。労働者は、女王に戻すために食物を集めます。 16人のプレイヤーが1つのアリーナで競います。勝者は、彼女が30,000ターンを回った後、ほとんどの食物を持っている女王です。キャッチは、アリは競技場の正方形の色を変更することによってのみ通信できるということです。これはライバルのアリによっても変更される可能性があります... ゲームを見る これはJavaScriptコンペティションです。つまり、下のリンクをクリックして、ブラウザでゲームをライブで見ることができます。 ここをクリックして、ライブでプレイされているゲームをご覧ください 感謝ヘルカHombaヒルコンテストの元スタックスニペット王のためには、ブルー対レッド-ピクセルチームバトルボット、およびブロックビルボット群れウェブブラウザのアイデアを提供し、ケートを主催し、重く、この1のコードを通知しました。 サンドボックスとチャットのすばらしい人々からのフィードバックとテストにも感謝します。 リーダーボード (画像をクリックすると、リーダーボードとジョイントプレースの完全な説明が表示されます。スペースを節約するためにここに表示されるのは少数のプレーヤーのみです。) 彼らは日曜日2であったように、このリーダーボードは、プレイヤーに基づいてND 2018年9月。 スクリーンショット アリーナがゲームの終わりに向かってどのように見えるかのいくつかの画像。フルサイズを表示するには画像をクリックしてください。 アリーナで何が起こっているのか、これらすべてのパターンがどのように形成されるのかを把握するには、ゲームを実行し、アリーナの上にマウスを移動してズームインし、作業中のアリを確認します。回答の興味深い説明もご覧ください。 アリーナ アリーナは、正方形のセルのトロイダル(エッジラッピング)グリッドです。幅は2500、高さは1000です。すべてのセルは色1から始まります。 最初は、細胞の正確に0.1%に食物が含まれています。2500個の食物はランダムに均一に散らばります。ゲーム中に新しい食べ物は導入されません。 クイーンは空のセルにランダムに配置され、互いに隣接しないという保証はありません(ただし、これは非常にまれです)。 アリの能力 視力:各アリは、3 x 3の周辺に9個のセルがあります。この地域以外の他のアリの知識はありません。9個のセル(他のアリと食物)のそれぞれの内容と、各セルの色が表示されます。 記憶なし:各アリは、見たものに基づいて決定を下します-前のターンで何をしたかを覚えておらず、アリーナセルの色以外の状態を保存する方法がありません。 オリエンテーションなし:アリは、自分がどこにいるのか、どの方向に向いているのかを知りません。北の概念はありません。3 x 3の近傍は、ランダムに回転する方向で提示され、各ターンが変化するため、誘導する色がなければ直線で歩くことすらできません。(毎ターン同じ動きをすると、直線ではなくランダムウォークになります。) 移動、カラーマーキング、および労働者の生産:以下の出力を参照してください。 不滅:これらは死ぬことのできない高地アリです。ライバルアリの周囲の色を変えることで混乱したり、自分の8匹のアリに囲まれて動けないようにしたりできますが、これ以外に害を受けることはありません。 食料を運ぶ:労働者は最大1個の食料を運ぶことができます。女王は任意の量の食物を運ぶことができます。 食べ物の移動:労働者が女王に隣接している場合(8つの方向のいずれかで)、食べ物は次のいずれかの方法で自動的に移動されます。 自分の女王に隣接する荷を積んだ労働者は、食物を女王に移します。 敵の女王に隣接する空いている労働者は、食べ物があればそれを1つ盗みます。 労働者は労働者から盗むことはできず、女王は女王から盗むことはできません。また、労働者は自分の女王から食べ物を取ることができず、女王は敵の労働者から盗むことはできません。 アリは順番に順番を取り、食物の移動は各アリの個々の順番の終わりに発生し、順番をとらないことに注意してください。それは、労働者が女王の隣に移動するか、女王が労働者の隣に移動するかに関係なく起こります。 コーディング 関数本体を提供する 各アリは、アリ関数によって制御されます。プレイヤーのant関数は、各ターンごとに個別に呼び出されます(プレイヤーごとに1回だけでなく、クイーンが1回、プレイヤーがコントロールするワーカーごとに1回)。ターンごとに、ant関数は入力を受け取り、その特定のアリの動きを返します。 …

30
私は回文です。あなたは?
この質問をするための以前の 試みがいくつかありましたが、どちらもこのサイトの最新の標準に準拠していません。Metaについての議論ごとに、現代のルールセットの下で公正な競争を可能にする方法で再投稿しています。 バックグラウンド 回文は、文字列の逆列自身と同じである。すなわち、「後方同じ前方とを読み込む」という文字列です。ここでは「便利な回文」についてではなく、厳密な文字ごとの反転について説明しています。たとえば、()()回文ではありませんが、そう())(です。 タスク 入力として文字列S(または言語の適切な同等物)を取り、1つの出力Q(選択したタイプの)を持つプログラムまたは関数を作成します。妥当な手段を使用して、入力を取得し、出力を提供できます。 入力Sが回文である場合、出力Qの値はAである必要があります(これはどの回文Sでも同じです)。 入力Sが回文ではない場合、出力Qの値はBである必要があります(非回文Sでも同じです)。 AとBは互いに異なるものでなければなりません。 または言い換えると、すべてのパリンドロームをある値にマッピングし、すべてのパリンドロームを別の値にマッピングします。 さらに、プログラムまたはあなたが書いた関数は、この作り回文自体(すなわち、そのソースコードはパリンドロームでなければならない)、でなければならない制限されたソースの挑戦を。 明確化 けれどもtrueとfalseのための明白な選択であるAとBは、あなたの「回文である」ために任意の二つの異なる値を使用することができますし、ブール値である必要はないの出力、「回文ではありません」。 ここでは、文字レベルで文字列の反転を定義しています。ééUTF-8エンコーディング後のオクテットの回文シーケンスではありませんが、プログラムがUTF-8またはLatin-1でエンコードされているかどうかに関係なく、回文です。 ただし、プログラムに非ASCII文字が含まれている場合でも、ASCII入力に対してのみ機能する必要があります。具体的には、入力Sには印刷可能なASCII文字のみが含まれます(スペースは含まれますが、改行は含まれません)。特に、これは、入力を文字のシーケンスではなくバイトのシーケンスとして扱う場合、プログラムが仕様に準拠する可能性が高いことを意味します(言語のI / Oエンコーディングが非常に奇妙でない限り)。したがって、前の箇条書きの回文の定義は、プログラムが正しい形式であることを確認するときにのみ重要になります。 プログラムの半分をコメントや文字列リテラルに隠しますが、創造的ではありませんが、合法です。あなたは創造性ではなく長さで得点されているので、あなたのプログラムが回文であることを保証するために「退屈な」方法を自由に使ってください。もちろん、あなたは長さで得点されているので、あなたのプログラムの何もしない部分はあなたの得点を悪化させるでしょう。 。 勝利基準はバイト単位で測定されるため、プログラムを記述するエンコードを指定して、スコアリングできるようにする必要があります(多くの場合、どのエンコードを使用しているかは明らかです)。 勝利基準 プログラムはキャラクターレベルでは回文である必要がありますが、バイトを使用して勝者を確認しています。具体的には、バイト単位で測定したプログラムが短いほど優れています。これはコードゴルフの挑戦です。提出物(特に同じ言語の提出物)を比較できるようにするには、提出物のヘッダーにプログラムのバイトカウントを追加します(バイト数と異なる場合は、文字カウントを追加します)。

16
宇宙をシミュレートします!
チューリング完全言語の優れた特性の1つは、ユニバース全体のシミュレーションを含む、あらゆるプログラムの記述に使用できることです。 あなたの仕事はまさにそれをすることです:宇宙をシミュレートするプログラムを書く。 注:このタスクを達成できることは間違いありませんが、最近では、シミュレーション内の10 90個のパーティクルすべてが実際にすべきことを行うかどうかを検証するのに十分な余裕がありません。したがって、テストと評価を単純化するためだけに、ユニバースシミュレータが単一の開始パーティクルでのみ動作する場合は十分です。面白くするために、この粒子が最近発見されたヒッグスボソンであると仮定しましょう。 あなたの宇宙は、その中央にある約120 GeVの単一のヒッグスボソンだけで始まります。出力を長くしすぎないようにするには、5.4×10 -44秒という「通常のクロックレート」の代わりに、このユニバースをわずか10 -25秒で刻みましょう。 このヒッグス粒子は半減期が1.6×10 −22秒であるため遅かれ早かれ減衰するため、シミュレーションのティックごとに0.0433%の確率で減衰します。ここで何に崩壊するか確認できます。中心的で簡素化された要件を実現するために、使用する分岐比率をリストします。 シミュレーションを実行する シミュレーションの各ティックで、ヒッグス粒子は減衰する可能性が0.0433%あります。それが起こると、リストされた確率で、次の粒子に崩壊します(これらの名前を出力で使用する必要があります)。 ボトムクォーク+ボトムクォーク(64.8%) 2 Wボソン(14.1%) 2グルオン(8.82%) タウ・レプトン+アンチタウ・レプトン(7.04%) チャームクォーク+チャームアンチクォーク(3.27%) 2 Zボソン(1.59%) 2光子(0.223%) 1 Zボソン+ 1光子(0.111%) ミューオン+反ミューオン(0.0244%) トップクォーク+トップ反クォーク(0.0216%) 合計で100%。 これらの粒子の一部はさらに減衰します。 Wボソン:10 -25秒の半減期。これは、すべてのティックで50%の確率で等しい確率で次のいずれかに減衰することを意味します。 陽電子+ニュートリノ 反ミューオン+ニュートリノ アンティタウレプトン+ニュートリノ Zボソン:10 -25秒の半減期。これは、ティックごとに50%の確率で次のいずれかに減衰することを意味します。 ニュートリノ+反ニュートリノ(20.6%) 電子+陽電子(3.4%) ミューオン+反ミューオン(3.4%) タウレプトン+アンチタウレプトン(3.4%) ダウンクォーク+ダウンクォーク(15.2%) 奇妙なクォーク+奇妙な反クォーク(15.2%) ボトムクォーク+ボトムクォーク(15.2%) クォークアップ+クォークアップ(11.8%) チャームクォーク+チャームアンチクォーク(11.8%) トップクォーク:5×10 -25秒の半減期。これは、等しい確率で、すべてのティックで次のように減衰するチャンスが12.95%であることを意味します。 Wボソン+ダウンクォーク Wボソン+ストレンジクォーク Wボソン+ボトムクォーク もちろん、Wボソンもすぐに崩壊します... …

30
ソースコードのエコロジカルフットプリント
ドイツの自動車製造会社に雇われたばかりです。エンジニアとしての最初のタスクは、ASCII文字列のエコロジカルフットプリントを計算するプログラムを作成することです。 キャラクターのエコロジカルフットプリントは次のように計算されます。 文字のASCIIコードをバイナリで記述し、1の数をカウントします。 たとえばA、フットプリントは2ですがO、フットプリントが5で汚れています。 文字列のグローバルフットプリントは、文字のフットプリントの合計です。空の文字列のフットプリントはゼロです。 プログラムは、パラメーターとしてASCIIコマンドを受け入れ(コマンドラインまたは入力を介して)、エコロジカルフットプリントを計算し、出力する必要があります。プログラム自体はASCIIエンコードされている必要があります。 ただし、しゃっくりがあります。会社がより厳しい環境ルールで新しい市場に参入することを望む場合、「テストモード」で異なる動作をするようにプログラムを調整する必要があります。副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example: testパラメータとして文字列を受け取ると、プログラムは0を出力するはずです。 得点 エコロジカルフットプリントが最小のソースコードが優先されます(そして、はい、答えtestは禁止されています!)

30
後方に印刷を実行
あなたの仕事は、いくつかprintsが実行される順序を逆にすることです。 仕様: コードは次の形式になります。 //some lines of code /*code*/ print "Line1" /*code*/ /*code*/ print "Line2" /*code*/ /*code*/ print "Line3" /*code*/ /*code*/ print "Line4" /*code*/ //some lines of code あなたはする必要がありますprint(またはecho、またはwriteそれらの文字列、または同等の)第四から最初にします。 プログラムのどの行をprint文字列にする必要があるかを決定しますが、それらは隣接している必要があります。 すべての行に含めることができるのは1つだけで、長さは60バイトをprint超えることはできません。 これは人気コンテストであるため、創造的であり、単にgotoまたは単純なfor(i){if(i=4)print"Line1";if(i=3)...} 2週間で最も支持された回答がこれに勝ちます。 あなたの出力はしなければならないことがLine4 Line3 Line2 Line1 OR Line4Line3Line2Line1 OR Line4\nLine3\nLine2\nLine1(\n改行)であり、それがのみを実行することによって生成されなければならないprints後方。 ハッピーコーディング! 更新:コンテストは終了しました!皆さん、ありがとうございました :)

30
あなたの言語で最も強力な5人のキャラクターは何ですか?
言語がサポートする5文字を選択します。5つあります!= 5×4×3×2×1 = 120個の方法で、これらを各文字を1回ずつ含む5文字の文字列に配置できます。120の順列。 120の各文字列が言語で実行されるときに、生成される120の出力が1から120までの一意の整数になるように、文字を選択します。 つまり、単一の数値を出力する実行可能コードを生成する5文字の120個の順列のそれぞれについて、それらすべての数値のセットが1から120までの整数のセットにできるだけ近く一致するようにします。 したがって、理想的には、最初の順列はを出力し1、次2、次3、次へと続きます120。しかし、その理想はほとんどの言語と文字にとっておそらく不可能です。 5文字の文字列は次のように実行できます。 入力のないプログラム 引数なしの関数 REPLのコマンド 必要に応じて、異なる方法で異なる文字列を実行できます 出力をカウントするには、次のような通常の方法での単一の整数出力である必要があります。 標準出力に印刷される 関数によって返された REPL式の結果 コードは正常に終了するはずです(最初に数値が出力されている限り、エラーが発生する可能性があります)。まったく実行されないコードでも問題ありません。(存在しない)出力だけはカウントされません。異なる出力が言語の標準でない限り、出力される数値は10進数でなければなりません。 1から120の最も明確な数字を生成するサブミッションが勝ちます。同点の場合は、以前の提出が優先されます。 ノート 5つのキャラクターがすべて異なる必要はありませんが、もちろんキャラクターが重複していると、順列の効果的な数が減ります。 32.0countやplain などのフロート出力32。(しかし、32.01そうではありません。) 032countやplain などの先行ゼロ32。 有効な出力は確定的であり、時間に対して不変である必要があります。 バイトではなく文字を扱っています。 例 文字123+*は、Python(または多くの言語)のREPLの合理的な最初の選択肢です。結果の120の順列と出力は次のとおりです。 123+* n/a 123*+ n/a 12+3* n/a 12+*3 n/a 12*3+ n/a 12*+3 36 132+* n/a 132*+ n/a 13+2* n/a 13+*2 n/a 13*2+ n/a …

16
ポリグロットで仕事をやめるかもしれない
あなたの抗議にもかかわらず、あなたは入力として単一の符号なし整数を取り、その整数が素数であれば文字列「prime」を出力し、そうでなければ「素数ではない」という文字列を出力するプログラムで上司に働きかけられました。結果のプログラムが短い限り、これを行う言語を選択できます。上司は文字数が少ないことを非常に高く評価しています。(彼はソースコードを印刷した後、実際に手動で文字を数えます。) だからあなたはそれに到達する方が良い、最低の文字数が勝ちます。 楽しい部分 これはあなたと私の間だけですが、あなたのプログラムは別の言語でも有効でなければなりません。ただし、この言語では、「上司がこれを見つけた場合、私は辞めます。」という文字列を出力する必要があります。上司がコードを何度も読むときに隠れたhidden辱があることを理解していないことを確認してください。そのため、コードの一部で「上司がこれをやめた」という単語を使用したり、これら5つの単語のアナグラムを使用したりすることはできません。 私が賞金を獲得したボーナスチャレンジ 実際に訓練されていない目には最初の質問を解決するだけで、不要な文字が含まれていないように見えるプログラムを作成します。これには、明らかに何も貢献しないコメントとコードのセグメントが含まれます。理想的には、素人はあなたのプログラムが実際には管理できないほど短くなると信じています。ここで役立つコメントがありますが、大丈夫です。 ボーナスチャレンジのルールは少し緩いです。簡単に測定可能な基準で判断されるのではなく、あなたのプログラムは私(そしてもちろん有権者)にどのように対処するかについてより判断されます。 私は、この賞金に値するエントリーに最も近いエントリーの最終審査員になります。 編集: あなたの上司が数分間数えた後、彼はあなたの同僚の1人に彼のためにキャラクターカウントプログラムを書いてもらいました。したがって、表示されていない文字も、文字数にカウントされます。

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