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

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

9
窓に水があります
シナリオ 私は自分の車で道路に沿って運転すると、雨が降り始めます。雨滴が私の窓にランダムに降っていますが、今、私は自分自身に尋ねます、最大の接続された濡れた領域はどこですか? タスク 簡単にするために、ウィンドウは10 * 10の正方形のマトリックスに分割されます。あなたの仕事は、ウィンドウで最大の接続された水滴エリアを見つけることです。 入力 2つの可能な入力があり、2次元配列または1次元配列を使用できます。標準入力などの入力から選択できます。 例: // 2-dimensional: [[0,1,0,0,0,0,1,0,0,0], [0,1,1,0,0,0,0,1,1,0], [0,1,1,0,0,0,0,1,0,0], [0,1,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,1,0], [0,0,0,1,1,0,0,0,1,0], [0,0,0,1,1,0,0,0,1,0], [0,0,0,0,0,1,1,0,1,0], [0,0,0,0,0,1,1,0,1,0], [0,0,0,0,0,0,0,0,0,0]] // 1-dimensional [0,1,0,0,0,0,1,0,0,0, 0,1,1,0,0,0,0,1,1,0, 0,1,1,0,0,0,0,1,0,0, 0,1,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,1,0, 0,0,0,1,1,0,0,0,1,0, 0,0,0,1,1,0,0,0,1,0, 0,0,0,0,0,1,1,0,1,0, 0,0,0,0,0,1,1,0,1,0, 0,0,0,0,0,0,0,0,0,0] 出力 コードでは、最大の接続領域のサイズと、この領域に属する水滴のx座標とy座標を「サイズ:Z座標:(X1、Y1)(X2、Y2)..」の形式で出力する必要があります。 。 " 前の入力の例: Size: 6 Coordinates: (1,0) (1,1) (2,1) (1,2) (2,2) (1,3) 座標の順序は重要ではありません。 ルール 互いに直交する場合、水滴はつながっています …
13 code-golf 

4
不明な基数で表される番号を並べ替える
文字列のリストが与えられた場合、どのベースが使用されているかを知らずにリストを数字としてソートします。数字の値も不明です('1'>の可能性があります'2')。 桁の値は不明であるため、ベンフォードの法則(または最初の桁の法則)を使用して、桁の相対値を決定します。ベンフォードの法則に従う分布の場合、低い値の数字は高い値の数字よりも頻繁に先行数字として表示されます。 ルール これはコードゴルフです 文字列のリストは、選択したソース(stdin、変数、ファイル、ユーザーなど)から取得できます。 文字列はASCII文字に制限されています。 先行文字として表示されない文字は、最高値を持ちます。(ゼロがないと仮定し、先行周波数で厳密にソートします。) 他の文字と同じ回数だけ先行数字として表示される文字は、均等に重み付けされます。 例 未分類 ['c','ca','ac','cc','a','ccc','cx','cz','cy'] ソート済み ['c','a','cc','ca','cz','cy','cx','ac','ccc'] 注:例では、'cz'、'cy'および'cx'数字ので、任意の順序で5番目、6番目と7番目の要素として表示することができ'x'、'y'そして'z'均等に重み付けされます。
13 code-golf 

5
メッセージを独自のテキストにエンコードするプログラム
ロジックを中断することなく、入力として提供されるテキストを独自のテキストにエンコードするプログラムを作成します。プログラムはデコーダーとしても機能し、テキストから元のメッセージを復元する必要があります。変換後もエンコード/デコード機能を保持する必要があります。 より正式には、必要なプログラムPは、指定されたメッセージテキストMを使用して次の変換を実行する必要があります 。P(M、P)-> P * P *(P *)-> M ここで、P *は変換されたプログラムであり、上記のルールも満たす必要があります。つまり、 P *(M2、P *)-> P ** P **(P **)-> M2 など...後続のエンコードでは、以前にエンコードされたテキストが消去されないため、P **は2つのメッセージMとM2を運びます。 プログラムがエンコード/デコードモードを区別する最も簡単な方法は、追加の引数Mを使用することです。ただし、最終的な決定は、明確に指定されていれば、ユーザー次第です。プログラムは、ファイルから独自のテキストを読み取る場合があります。選択した言語にこの手段がない場合、ソーステキストを他の方法でプログラムに渡すことができます。 もちろん些細な解決策もあるので、これはかなり人気のあるコンテストです。それにもかかわらず、私はプログラムのテキストにコメントを禁止する制限を課しています。

9
ワールドカップ推測プログラムを作成する
ご存知のとおり、ワールドカップグループステージは終了し、明日から最高の16チームがノックアウトステージを開始します。 ブラジル(BRA) メキシコ(MEX) オランダ(NED) チリ(CHI) コロンビア(COL) ギリシャ(GRE) コスタリカ(CRC) ウルグアイ(URU) フランス(FRA) スイス(SUI) アルゼンチン(ARG) ナイジェリア(NGA) ドイツ(GER) アメリカ(USA) ベルギー(BEL) アルジェリア(ALG) ノックアウトステージでは、各試合の後、勝者は次のラウンドに進み、敗者は家に戻ります(引き分けはありません)。ノックアウトステージの詳細については、ここをクリックしてください。 あなたは、プログラミングとスポーツベッティングの両方が得意であることが知られているため、新しい賭けのウェブサイトであるgolfbet.comに雇われました。あなたの仕事は、試合の勝者を推測できるプログラムまたは関数を書くことです。もちろん、誰もが異なる推測を行います。推測が一貫している限り、それは問題ではありません。 推測したくない場合は、次の推測を使用できます。 BRA BRA CHI BRA COL COL URU GER FRA FRA NGA GER GER GER ALG GER NED NED MEX NED CRC CRC GRE ARG ARG ARG SUI ARG BEL BEL …
13 code-golf 

9
キーボードのテスト
私の問題 現在の職場では、片手で(手足が足りないので両手でOK)、約700台のラップトップを保守しています。それらの使用の性質と頻度のために、私はしばしばそれらが少しの損傷で返されることを発見します。この問題に関して、私の主な関心事は、ラップトップが壊れたキーボードまたは機能しなくなったキーボードで返品されるときです。ハードウェア修理工がこれらの壊れたキーボードを修理するとき、それらをテストすることが必要になります。テストでは、それぞれ...および...すべて...単一...キーを使用します。なんてドラッグなの?問題は、キーを入力したかどうかを把握できなくなる場合があることです。 解決策? 次のプログラム/スクリプトを作成します。 ユーザー入力を受け取ります 提出時に(適切と思われる方法で)、各キーが押されたかどうかを判別します。 yesまたはno、またはすべてのキーを押すことに成功したかどうかを示す任意の方法を出力します。(明らかでない場合は、2つの可能な出力を回答に記載してください)。 仮定: 大文字、小文字、両方?どちらの方が適していると思いますか。[AZ]、[az]、または[A-Za-z]である限り。数字やその他の記号についても同様です。(したがって、=入力された場合、+問題ではありません)。シフト文字を含めるかどうかを選択します。 タブやスペースを気にする必要はありません ファンクションキー、CTRL、ALT、Esc、または画面に何かを出力しない他のキーは不要 これは、EN-USキーボードを想定しており、ラップトップにはテンキーが含まれていません。 OSに依存しない、あなたが好む言語 キーが複数回押されたかどうかは関係ありません(テスターが怠laになり、Mortal Kombatのようにボタンが破壊される場合) 以下は、true(またはyes、または "You done it!")を返す可能性のある入力セットです。 `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./ 勝者は、文字の最小数によって決定されます。

8
++のみを使用して平方根を計算する
あなたの仕事は、次のような数学的な演算子を使用して数値を変更することなく、正の整数の平方根を計算することです。 変数の設定(例:squareRoot = 5) 加算(A + B) 減算(AB) 乗算(A * B) 部門(A / B) 正方形、立方体、4番目などの根 指数 比較演算子(<、>、==など)は、この質問の目的では「数学演算子」とは見なされず、変数の値を変更しない限り許可されます。 使用できる唯一の演算子は++です。次の例外があります。 必要に応じて、変数を0に設定して初期化できます。 言語に++構文が含まれていない場合、foo + = 1やfoo = foo + 1などの同等の構文を使用できます。 平方根は、小数を超える少なくとも6桁(1万桁)で計算し、小数の整数として出力する必要があります(例:2を入力すると、丸めに応じて14142135624または1414213として出力される可能性があります) 。切り上げまたは切り捨ては重要ではありません。 ユーザー定義関数は許可されていません。また、gotoを使用した関数のシミュレーションも許可されていません。 みんなが投稿したものを見てみたいです!ハッピーコーディング! 明確化 数値が正の整数であることを明確にします。任意の数のコードを作成できますが、必須ではありません。 明確化#2 比較演算子が許可されていることを明確にします。 明確化#3 加算、減算、乗算、除算、および数値を変更する関数は、変数に保存されているかどうかに関係なく、まったく許可されていません。申し訳ありませんが、これはいくつかの既存の回答を無効にしますが、トロールの回答を防止するために、この演算子グループを「番号の変更」と定義するつもりでした(例:sqrt()関数を使用しましたが、追加のみを禁止し、乗算、除算、減算)。混乱させて申し訳ありません。 明確化#4 少なくとも5桁が必要であることを明確にします。10桁により、コードが長時間実行されました。

2
フロッガー風ゲーム
古き良きアーケードゲームFroggerにコードゴルフスタイルのリバイバルを与えてみてはいかがでしょうか。 あなたの仕事は、できる限り少ない文字数のコードで、この古典的なゲームのバージョンを作成することです。選択した言語を使用します(jQueryなどのライブラリが許可されます)。 必要条件 あなたは3つのライフを持​​ち、以下から1つのライフを失います: ゲームシーンの外に移動します。 車両に襲われる。 水に飛び込む。 すでに占有されている家にジャンプします。 時間がない。 カエルは矢印キーで動きます。 5つの家(上部の草の間のスペース)の間隔が設定された「テレポート」バグがあります。 あなたが得る10歩前進を移動する際のポイントを、200ボーナスポイントのバグとキャッチ500個の空の家に到達したときにポイントを。 レベルごとにタイマーが刻み込みます(車両、カエル、ログも各レベルで速く移動する必要があります)。 5車線の車線と、丸太のある3車線とカメのある2車線があるはずです。 各レーンは、ランダムに選択された速度で移動する必要があります(理由内)。 利用可能な家が占領されると、カエルが開始点に現れ、あなたはそのカエルをその点からコントロールします。 5つの家がすべて占有されると、タイマーが再起動し、家が空になります。ゲームが終了すると、すべてのレベルのポイントが計算されて表示されます。 追加情報 スタート画面、音楽、ハイスコア表は必要ありません。また、ピクセルのデザインを模倣する必要もありません。白黒にしたいですか?本当にミニマルにしたいですか?または、カエルや車の代わりに立方体ですか?正常に動作します!コードを厳しくしてください。最短のコードが勝ちます!

7
Processingでのゴルフのヒント
誰か持っていたコード・ゴルフでゴルフのためのヒント処理を?これは、javaのグラフィカルな拡張機能であり、ゴルフにはやや困難です。
13 code-golf  tips 

3
言葉を推測する(別名Lingo)
この課題の目標は、可能な限り少ない試行回数で単語を推測できるプログラムを作成することです。Lingo TVショー(http://en.wikipedia.org/wiki/Lingo_(US_game_show))のコンセプトに基づいています。 ルール コマンドラインの最初の引数として渡された単語の長さを考えると、プレーヤープログラムは、標準出力に推測を書き込み、その後に単一の文字を書き込むことによって、単語を推測する5回の試行を破棄し\nます。 推測が行われた後、プログラムは標準入力で文字列を受け取り、その後に1 \n文字が続きます。 文字列は推測する単語と同じ長さで、次の文字のシーケンスで構成されます。 X:これは、与えられた文字が推測する単語に存在しないことを意味します ?:これは、与えられた文字が推測する単語に存在するが、別の場所にあることを意味します O:これは、この場所の文字が正しく推測されたことを意味します 推測する単語がある場合たとえば、dentsと、プログラムは言葉を送りdozes、それが届きますOXX?Oので、dおよびs正しい、e紛失され、oかつz存在しません。 手紙は推測する単語よりも推測する試みの中で複数回存在する場合、それがされますように注意してくださいではないとしてマークされる?とO推測する単語の文字の出現箇所の数よりも多くの倍。たとえば、推測する単語がcoziesで、プログラムがを送信する場合、検索するのは1つだけなのでtosses、受信します。XOXXOOs 単語は英語の単語リストから選択されます。プログラムによって送信された単語が正しい長さの有効な単語でない場合、試行は自動失敗と見なされ、のみXが返されます。 プレーヤープログラムは、wordlist.txt1行に1ワードという名前のファイルが現在の作業ディレクトリに存在し、必要に応じて読み取ることができると想定する必要があります。 推測はアルファベットの小文字([a-z])のみで構成する必要があります。 他のネットワークまたはファイル操作はプログラムに対して許可されていません。 のみで構成される文字列Oが返されるか、プログラムが5回試行して単語を推測できなかったときに、ゲームは終了します。 得点 ゲームのスコアは、次の式で与えられます。 score = 100 * (6 - number_of_attempts) そのため、最初の試行で単語が正しく推測された場合、500ポイントが与えられます。最後の試行は100ポイントの価値があります。 単語の推測に失敗すると、ゼロポイントが付与されます。 ピット プレーヤープログラムは、4〜13文字の単語長ごとに100のランダムな単語を推測させることで評価されます。 ランダムな単語選択は事前に行われるため、すべてのエントリは同じ単語を推測する必要があります。 受賞したプログラムと受け入れられた回答が、最高のスコアに到達します。 https://github.com/noirotm/lingoのコードを使用して、プログラムはUbuntu仮想マシンで実行されます。コンパイルおよび/または実行するための合理的な指示が提供されている限り、どの言語での実装も受け入れられます。 私はgitリポジトリのrubyでいくつかのテスト実装を提供していますが、それらから自由にインスピレーションを受けてください。 この質問は公開された回答のランキングで定期的に更新されるため、チャレンジャーはエントリを改善できます。 公式の最終評価は7月1日に行われます。 更新 エントリは、wordlistN.txtファイルの存在を想定して、4〜13のNの現在の単語長の単語リストの読み取りを高速化できます。 たとえば、wordlist4.txt4文字すべての単語を含むファイル、wordlist10.txt10文字すべての単語を含むファイルなどがあります。 最初のラウンドの結果 2014年7月1日の時点で、3つのエントリが提出され、次の結果が得られました。 4 5 6 7 8 9 10 11 12 …

1
ダクトテープは何でも修正できます[非公開]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 概要 この挑戦は、このStackOverflow Meta投稿に触発されました。その中で、@ hakreは言います: Stackoverflowによって実際に書かれたプロジェクトを見たことがあります(noobはSOからSOにコピーします)。(原文) あなたの使命は、できる限り興味深いプログラムを作成することです。コードを1行も書くことはありません。StackOverflowからの質問と回答の両方で、既に作成されたコードのみを使用できます。できることは、ダクトテープでテープを貼ることだけです。そしてもちろん、権利が停止されないように適切な帰属を提供することは非常に重要です。 ルール 回答で使用した質問/回答へのリンクを含める必要があります。 次の例外を除き、見つけたコードを変更することはできません。 a。変数、関数、およびメソッドの名前を変更できます。(これは、メソッド名を変更している、と言って主張することにより、メソッド呼び出しを変更できるという意味ではありません。変更は、同じエンティティーの定義または参照にある必要があります。)scanner.nextInt()scanner.nextLine() b。インデントを適切に調整できます。 c。コードスニペットが機能するために適切なモジュールがロードされていると想定できます。(たとえば、importJavaとPythonのusingステートメント、C#とC ++のステートメント、およびすべての言語の同等のもの)コードスニペットにimportsが含まれている場合、それらをコードの先頭に移動できます。 d。言語が実行するために何らかの種類のメソッド本体にあるコードを必要とする場合(たとえば、public static void main(String[] args)Java、static int Main(string[] args)C#など)、適切なメソッドでコードをラップできます。ただし、そのメインメソッドの内容は変更しないでください。 実行された変数/メソッド/関数/クラスの名前変更の明示的なリストを提供する必要があります。 スニペットのスニペットを取得することはできません(つまり、投稿からコードブロックを取得する場合は、すべてを取得します) 使用している言語に馴染みのない人のためにコードが何をするかについて簡単に説明してください。 人気コンテストなので、最も多くの賛成が勝ちます! 退屈な5分間の例(Python 3) 説明:現在のディレクトリから多数のログファイルを読み取り、その中の行をランダム化します(エキサイティングですよね?これは完全に人気コンテストに勝ちます) ソース import glob import random for file in glob.glob('log-*-*.txt'): # Etc. with open(file) as f: content = f.readlines() # …

2
詩人の馬
読まれたらhttp://en.wikipedia.org/wiki/Rhyme_schemeから1つ以上の韻体系でクインを書きます。次のキャラクターが声を出して話します: コメントにない英数字の単語または文字。 比較および算術文字(+プラス;-マイナス; *回、/で除算、|または、||または、&および、&&および!なし、=等しい、==等しい、===等しい)。 以下は考慮されていません(声を出して話されていません): 文字列リテラルの開始または終了を示す文字( "')。 論理ブロックの開始または終了を示す文字((){} []); 変数、関数、またはコード行(。、;)の線引きを示す文字。 コメント内の任意の文字。 「声に出して」ルールが常に適用されます。「声に出さない」ルールは、Brainfuck、K、J、APL、Befunge、およびScliptingを除くすべての言語に適用されます。APL、Brainfuck、Befunge、K、およびJの場合、「口頭での発言ルール」で言及されていないキャラクターはすべて、上記で概説した「一貫して選択」ルールに従います。スクリプティングキャラクターは、その中国語のキャラクターのように発音され、使用する発音を自由に選択できます。 明示的に発音が許可または拒否されていない文字は、発音したり黙ったりすることができます。ただし、特定のキャラクターは常に発音されるか、常に沈黙します。1行でハッシュタグとして#を発音せず、次の行で#黙ってはいけません。 単語は方言や言語で発音できますが、同じスタンザ内で一貫している必要があります(最初の単語をスコットランド語で、2番目の単語をウェールズ語で発音させないでください)。 コンテストタイプは人気コンテストです。締め切りは、最も有名な吟遊詩人の1人であるウィリアムシェークスピアに敬意を表して4月23日です。勝者は、最も票を得た人です。 編集:私はこれ以上提出があるとは思わないので、私はコンテストを早期に終了することにしました。勝者を一時的にマークします。

8
アンダーロード番号の最短表現
フレーバーテキスト スタックベースのesolang Underloadは、関数型プログラミングといくつかの興味深い結びつきを持っています。それらの1つは、数値データ型の処理です。ラムダ計算のように、アクションをN回実行する関数によって自然数Nを表します。 物事を簡単にするために、Underloadコマンドの次のサブセットのみを考慮します。 : -このコマンドは、スタックの一番上のアイテムを複製します。 * - このコマンドは、単一の項目にスタックの一番上の二つのアイテムを連結します。 私たちは、定義過少数字Nを文字列として:と*、実行した、スタックの一番上の項目を消費し、そのアイテムが一緒に連結さのn個のコピーを生成します。いくつかの例: アンダーロードの数字0、-1、1 / 2、πはありません。 空の文字列 は、スタックに手を付けないため、Underloadの数字1です。 :*それはトップ・アイテムを複製し、次に単一の項目にまとめ、それらの2つのコピーを連結しているため、不足負荷数字2:(A):*= (A)(A)*=(AA)。 ::**アンダーロードの数字3です。(A)::**= (A)(A):**= (A)(AA)*= (AAA)です。 :::*** アンダーロードの数字4です。 :*:*また、アンダーロード数字4:(A):*:*= (AA):*= (AA)(AA)*= (AAAA)です。 一般に、MおよびNがアンダーロードの数字MおよびNである場合:N*、数字N + 1でありMN、数字M×N であることがわかります。 チャレンジ あなたの仕事は、文字列としての入力に対してアンダーロード数値の最短表現を生成する最短プログラム(STDINで入力を取得する)または関数(引数で入力を取得する)を記述することです。つまり、入力が正の自然数N> 1である場合、文字の長さが他のすべてのアンダーロード数字N以下であるアンダーロード数字Nを生成する必要があります。 サンプルの入力と出力:( "Input- OUTPUT。") 1- 。 2- :*。 5- ::*:**(2×2 + 1)。 7- ::*::***(2×3 + 1)または:::**:**(3×2 + …

10
100文字以内で最も有用なプログラムを作成する[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 このタスクでは、100文字以内で記述できるあらゆることを行う便利なプログラムを作成できます。より少ない文字を使用できますが、それ以上は使用できません。 もはや面白くない標準的な抜け穴から保護するためのルール: 本当に必要な場合を除き、プログラムはインターネットにアクセスできません。たとえば、このWebサイトで最も投票された質問を表示するプログラムは、インターネットを使用してこの質問を確認できます。ただし、実際のソースを見つけて実行するためにインターネットを閲覧することは許可されていません。 あなたのプログラムは、それが書かれた言語の通訳者になることはできません。しかし、非Brainfuck言語のBrainfuckインタープリターは問題ありません。 プログラムは、プログラムが行うことを正確に行う外部プログラムを実行できません。たとえば、を実行しvimて、プログラムがvim実装であると主張することはできません。 プログラムは、それが実行されているコンピューターや他のコンピューターにとって危険ではありません。次のようなプログラムを書くことは許可されておらずrmdir /(ここの例は意図的に機能しないため、修正しないでください)、コンピューター上のすべてのファイルを削除するのに役立つプログラムであると主張します。 あなたのプログラムは、あなたがそれがすることを意味することを証明できる限り、あなたが望むほど遅く、あなたが望む限り多くのリソースを使うかもしれません。 このタスク専用の言語を作成することはできません。ただし、他のプログラミング言語で作成した言語のインタープリターを作成することは許可されています。

1
Brainf ** kデバッガー
あなたの課題は、次のような入力を行うことです(Hello Worldプログラム): ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. プロンプトを出力します(これはになります"> ")。 > その後、ユーザーはプロンプトで何でも入力できます。単純なデバッガには次のコマンドが必要です。 S -ステップ Lステップ実行後に現在の場所を出力します(を参照)。 S(a positive integer) -多くのスペースをステップ L -場所 「ロケーション」という用語は、常にプログラム内のどこにいるかを指します(つまり、命令ポインター)。 このようにフォーマットされています: v +++++++[>+++++++<-]>. これは、プログラムの現在の場所が3番目であることを意味し+ます。 G(an integer) -に行きます これは、その場所に着くまで歩き続けることを意味します。プログラムの最後に到達し、そこに到達していない場合は、単にプログラムを終了します。 負の整数は、末尾から多くの文字を意味します。はい、この手段-0とは異なっている0、と-1最後の文字に2番目です。 このコマンドには何も出力しないでください。 D -ダンプ配列 のようなフォーマット 1, 2, 3, 4, 5 配列がの場合、1, 2, 3, 0, 0, 0, 0, 0, ...出力のみ1, 2, 3。 D(a positive integer) (a …

6
私のロボットは実験室を脱出しました!
私のロボットはどういうわけか短絡し、研究室のどこかからランダムに飛び出しました! 幸いなことに、彼がこれを行うたびにシャットダウンシーケンスが開始され、スイッチを切る前にランダムに5ラウンドにわたって向きを変えて走る十分な時間が与えられます。彼のジャイロと加速度計の機能は、彼がまだ活動している間、データを研究室に送り返しています。 たとえば、データは常に2つの数値の5つのセットの形式で提供されます。 12:234,-135:47,-68:230,140:324,127,87 あなたの使命は、ゴルファーは、a)ロボットがその現在の方位から回転するようにa1:d1,a2:d2,a3:d3,a4:d4,a5:d5、a(n)が時計回りの角度(度)の形式で5セットの数字を表示することにより、ロボットの必死の走りとターンシーケンスをシミュレートすること-179<=a<=+180です最初は、首をかがめて最初に回転する前にヘッディングがゼロになります)、およびd(n)は、次のヘディングが変わる前に実行したフィート単位の距離0<=d<=500です。およびb)ラボから計算された見出し(見出しも0に直面している)、フィート単位の距離(小数点以下3桁までの精度が強く推奨されます、もしあれば-5バイト)、および向きの見出し(度)オフになったときにロボットが向いている場所の 簡単な例: Data: 0:1,45:1,90:1,90:1,90:1 Heading: 0 Distance: 1 Orientation: -45 ランダムなターンと距離は、ランダムです。設定値をハードコーディングする必要はありません。コード内でランダムな動作を確認する必要があります。 ランダム性の制限:クロックまたは日付ベースの参照はありませんrandom。コード内にネイティブ参照を表示する必要があります。このコードを実行するときはいつでも、ランダム性は、各ターンランラウンドで360の可能な角度のうち1つを示す可能性を提示する必要があります。そのため、ロボットは1回転で-36度回転し、次の回転で+157度回転し、さらに-116度でさらに2度回転し、最後の回転で最後に+42度回転します。ランダムな角度の生成ごとに、少なくとも360の異なる値(-179〜+180度を含む)が可能でなければなりません。 走行距離の制限:同様に設定すると、ロボットが走行できる距離は0〜500フィート(0〜500フィート)であるため、ロボットの走行距離を決定するときにランダム性も利用できると考えています。ロボットは、理論的には、それぞれのラウンドで45、117、364、27、6フィートを実行できます... あなたに供給されるデータは常に整数値になります...ロボットは度の整数範囲で回転し、距離の整数範囲で実行されます。ただし、出力値は浮動小数点数になります... これはコードゴルフです。最短のコードが勝ちます...さあ、私のロボットを見つけに行きましょう! PS:私の「小数点以下3桁までの精度」に関連して、見出し(度で、小数点以下3桁の最小値まで)とフィート単位の距離(小数点以下3桁まで正確)を提供できる場合-5バイトのボーナスが得られます)。
13 code-golf  math 

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