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

この課題は一般に、ゲームまたはゲームの一部に基づいているか、関連しているか、またはシミュレートしています。

2
2Dダンジョンクローラー
プログラムは、次のように複数行の文字列を取る必要があります。 ############# # # # p # # # ############# pプレイヤーで#あり、ブロックです。 ターミナルの下には、次のような入力行があります。 How do you want to move? プレーヤーlがブロックがないときに左に歩く必要があると入力した場合、それ以外の場合、ブロックがあるときは通過できず、もちろん移動しません。ターミナルの出力を更新する必要があります(および以前の出力がクリア/上書きされました): ############# # # # p # # # ############# 彼はl左、r右、u上、d下のどちらでも入力できます。 入力は常に複数行になりますが、完全な長方形にスペースが埋め込まれるとは限りません。さらに、ハッシュは文字列のどこにでも置くことができ、常に互いに接続されているわけではありません。例えば: ## ## # # ## p # 有効なダンジョンです。(各行の末尾にスペースがないことに注意してください) プレイヤーがストリングの外に出た場合、彼は表示される必要はありません。しかし、彼が後で戻ってきた場合、彼は再び表示される必要があります。 そして、「外」の境界文字列がされているlength(longest_line)ことにより、number_of_lines1行が右側のスペースで埋めていない場合でも、長方形、そう、その場所は、範囲外とみなされていません。以前のダンジョンを使用した例: ## ## # #p ## # 2行目には、pが存在するスペースがありませんでしたが、それは問題ではありません。 最後に、プログラムは入力を受け取って永久にループする必要があります。 テストケース テストケース1: …

2
1000の最も一般的な単語
この質問は、「物事の説明者」が楽しく読めるから書いてありました。 文字、数字、およびこのようなもののセットを読み取り/受け取り、すべての単語がこのセットの一部である場合に"#%|?戻る「コンピュータに物事を実行させるもの」を記述します。True / 1 すべての単語がそのセットの一部ではない場合、そのセットの一部ではなかった単語を返します。 このウェブサイトは、すべての場合において正しいと見なすことができます。ルールはそのサイトの仕様に従うように書かれています。 例: Truthy: 最初の水平線より上のテキスト全体が入力として貼り付けられている場合、コードは真の値を返す必要があります。 次の行は真の値を返します(入力はで区切られています###) This returns "Hello, World!" ### tHiS rEtUrNs TrUe... ### Thing Explainer is a book written by a man. The man writes books with simple words. ### This set of stuff "#!^{>7( must return true 偽り: 次の例では、入力と出力はで区切られてい***ます。異なるテストケースはで区切られ###ます。 This code doesn't return …
9 code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

1
じゃんけん競争シミュレーター
あなたは最高の人を見つけるためにじゃんけん選手権を組織することにしました。勝者を決定するために運を上げたくないので、誰もがコンテストの前に書面で彼または彼女の戦術をあなたに与えなければなりません。また、単純なものが好きなので、(岩石、紙、はさみを示す)競争相手の移動は、前のターン(RvR、RvP、RvS、PvR、PvP、PvS、SvR、SvP、またはSvS)のみに基づく必要があります。最初のターンでは、プレイヤーは固定の標識を示さなければなりません。 チャンピオンシップをシミュレートするプログラム(または関数)を作成することにしました。 コンテストの詳細 少なくとも2人の競技者がいます。 すべてのプレーヤーは、他のすべての人と正確に1つの試合を行います。 1試合は7ラウンド続く。 すべてのラウンドで、勝者には2ポイントが与えられ、敗者には何も与えられません。引き分けの場合、両方のプレーヤーが1ポイントを獲得します。 試合でのプレーヤーのスコアは、試合のターンにおける彼または彼女のポイントの合計です。 チャンピオンシップのプレーヤーの最終スコアは、すべての試合でのポイントの合計です。 入力の詳細: プログラムまたは関数がN10文字の長い文字列を受け取り、それぞれがプレイヤーの戦略に対応している。すべてのキャラクターは(小文字)であるr pかs、特定の状況でプレーヤーがじゃんけんやはさみを見せることを意味します。 最初の文字は最初のターンをコードします(その競技者のすべての試合で)。2番目は、最後のラウンドがロック対ロックだった場合にどうなるかを示しています。次のものはRvP、RvS、PvR、PvP、PvS、SvR、SvP、SvSで、最初の文字はプレイヤーのサインで、2番目の文字は対戦相手のサインです。たとえばrrpsrpsrps、プレーヤーがロックから開始し、次に対戦相手の最後の動きをコピーすることを意味します。 文字列のリストは、言語のリスト/配列または同様のデータとして、または1つの文字列として入力できます。後者の場合、ある種の区切り文字は必須です。 出力の詳細: プログラムまたは関数は、入力が提供されたのと同じ順序で各プレーヤーの最終スコアを出力する必要があります。 スコアはスペースまたは改行で区切る必要があります。末尾のスペースまたは改行を使用できます。 例: 入力: ['rrpsrpsrps', 'rpppsprrpr'] 出力:( 5 9ターンはrvr rvp pvs svp pvr rvp pvs) 入力: ['rrpsrpsrps', 'rpppsprrpr', 'ssssssssss'] 出力:( 13 17 12一致は5-9(1番目と2番目)、8-6(1番目と3番目)、8-6(2番目と3番目))) これはコードゴルフなので、最短のエントリが勝ちます。

11
ブルガリアソリティア
ブルガリアソリティアは、マーティンガードナーがScientific Americanの数学的コラムで人気を博したシングルプレイヤーゲームです。です。 あなたが持っている N同じカードを山に分けています。あなたは各山からカードを取り、取り除かれたカードで新しい山を形成します。すでに見た状態に到達するまでこのプロセスを繰り返し、続行するとループが繰り返されます。 たとえば、8カードが5あり、の山との山に分割されているとします3。杭のサイズを降順に記述します5 3。ここにゲームのトランスクリプトがあります: 5 3 4 2 2 3 3 1 1 4 2 2 あなたは最初の山を残し、2つの山のそれぞれからカードを取り外す4と2、との新しく作成された杭2与えます4 2 2。次のステップでは、これらは減少3 1 1し、新しいの山が続き3ます。最後に、最後のステップでサイズの山が空になり、すでに表示されているものが1生成さ4 2 2れるため、停止します。 パイルサイズの合計は同じままであることに注意してください。 あなたの目標は、与えられた開始構成からゲームのそのようなトランスクリプトを印刷することです。これはコードゴルフなので、最も少ないバイトが勝ちます。 入力 初期の杭サイズを表す降順の正の数のリスト。STDINまたは関数入力を介して入力を取得します。リストのような任意の構造を使用できます。 N入力としてカードの総数を取得しません。 出力 ブルガリアソリティアのゲームが通過するパイルサイズのシーケンスを印刷します。返却ではなく、印刷が必要であることに注意してください。各ステップは独自の行である必要があります。 各行には、のない降順の正の数のシーケンスが必要0です。セパレータ、開始トークン、終了トークンを使用できます(たとえば、[3, 3, 1, 1])。数字は複数の桁を持っている可能性があるため、何らかの方法で分離する必要があります。 リピートに至るまで、見ているパイルサイズのスプリットを印刷します。したがって、最初の行は入力であり、最後の行は前の行の繰り返しでなければなりません。他の繰り返しはありません。 テストケース >> [1] 1 1 >> [2] 2 1 1 2 >> [1, …
9 code-golf  game 

4
誰がゴーストを勝ちますか?
ゴーストのゲームは、各ターンで交互に手紙を言う2人のプレイヤーの間で行われます。各時点で、これまでの文字は有効な英語の単語で始まる必要があります。敗者は、最初に完全な単語を完成させるプレーヤーです。したがって、たとえば、これまでの文字がEAGLの場合、有効な次の文字は "E"だけなので、次のプレイヤーは負けます。(「イーグルト」のような長い言葉があっても) チャレンジ あなたは、これまでの手紙を踏まえて、2人の完璧なプレーヤーを想定して勝者を決定するプログラムまたは関数を作成することになります。入力は、ゲームの現在の状態を表す文字列と、有効な単語の辞書を表す文字列のリストです。出力では、次に行くプレーヤーが勝つか負けるかを区別する必要があります。 細部 コードは、現在の状態が空の場合を処理する必要があります。ただし、辞書のどの単語も空ではないと想定できます。 各入力文字列は小文字のASCII文字、つまりazのみで構成されていると想定できます。 現在の状態を想定し、辞書内のすべての単語の最大文字数はそれぞれ80文字です。 辞書は空でないことが保証されています(有効な最初の移動がない場合を回避するため)。 「現在の状態」が有効であると想定することができます。現在の状態で始まる単語が必ずあるはずです。また、現在の状態がフルワードになることも、現在の状態のプレフィックスがフルワードになることもありません。 辞書は、「英単語」がゲームで有効であると見なされるルールに従って事前にフィルターされます。たとえば、3文字以下の単語でゲームがまだ終了しないバリアントの場合、辞書は4文字以上の単語のみが含まれるように事前にフィルタリングする。 辞書は事前に分類されていると想定できます。 例 辞書が次のとおりだとします。 abbot eager eagle eaglet earful earring 次の現在の状態の場合、出力は次のようになります。 Current state Result ============= ====== loss a win eag win eagl loss ear win earf win earr loss 同様に、https://raw.githubusercontent.com/dschepler/ghost-word-list/master/wordlist.txt(Debianシステムでを使用して作成pcregrep '^[a-z]{4,80}$' /usr/share/dict/american-english)の単語リストの場合、可能なセッションは次のとおりです。 Current state Result ============= ====== win h loss …

5
ハングマンで遊ぼう!
このページによると、英語の絞首刑執行人の単語を推測する最良の戦略は、条件を満たす単語リストの各文字のオッズを計算することです。しかし、私は本当に怠惰なので、自分で辞書のすべての単語を計算したくありません。しかし、私はあなたがいつも私を助けるためにここにいることを知っているので、あなたは私のためにそれを行うコードの王を私にすることができると確信しています。また、ハードディスクがほぼいっぱいになっているので、可能な限り最小のコードを使用します。これは、ことを意味し、これはコード・ゴルフ、そして勝つバイトの最低量で提出するだけでなく、最も正確なものです!。 入出力 この単語リストからランダムな単語が取得されます。 プログラムは、引数で、またはユーザー入力(ポップアップ、標準入力、その他)を受け入れる必要があります。 単語の長さ 間違った文字は既に見つかりました。ゲームを開始したばかりで、間違った文字を提供していない場合は0 すでに見つかった文字と単語内での位置 例:./hangsolver 6 XBZ 1P 4P 2E 6Eここでは、「人」という言葉を選びました。明確にするために:PE _ P _ E(間違った文字はXBとZです) つまり、1つのゲームで、スクリプトを何度も起動する必要があります。 出力は1文字です。次の試行です。 ルール 他よりも少ない試行で10単語を推測する方が勝ちます。 引き分けの場合、バイト単位の最短コードが優先されます。 それでも同点の場合は、最速のプログラムが勝ちます。 あなたは英語でこれらの単語だけがあると思うかもしれません 単語リストから有効な単語のみを試します。 私は良いコンピュータを持っています、CPUパワーは問題になりません(しかし、できるだけ早く答えるようにしてください!) オンラインソルバーでは解決できませんが、ワードリストをダウンロードするか、引数として渡すことができます。「wordlist.txt」という名前で、スクリプトと同じディレクトリにあると想定できます。 コードは一般的なOSで実行できる必要があります。それは、windows、mac、ubuntu / debian / CentOS、Redhatのいずれかです。 外部ソルバーは使用できません。 ただし、URLをワードリストに短縮できます。 このコードゴルフは9月1日に終了します。 上記の方法を使用する必要があります。 幸運を ! SEでここに単語リストが見つかりました。

6
最適なニムの動きを見つける
ゲーム Nimは数学的な戦略ゲームで、2人のプレイヤーが順番に、異なるヒープからアイテムを取ります。自分のターンでは、少なくとも1つのアイテムを取る必要があり、1つのヒープからのみ取得するという条件で、必要な数だけアイテムを取得できます。最後のアイテムを取るプレイヤーが勝ちます!これは解決済みのゲームです。戦略に入る前に、こちらでオンラインでプレイしてみてください。 戦略 勝利の戦略は、このリンクで非常に明確かつ簡単に説明されています。もう少し専門的な用語を使って説明します。このゲームに勝つには、binary-digital-sumが常に0になるように、常にできるだけ多くのアイテムを取ることです。次のボードについて考えてみます。 * * * * * * * * * * * * * * * 1 2 3 4 5 このボードのbinary-digital-sumを見つけるには、次のことを行う必要があります。 各行の数値をバイナリに変換します。したがって、001、010、011、100、101があります。 すべての数字を一緒に追加し、キャリーは無視します。 001 010 011 100 +101 ---- 001 各数値をビット単位でxorすることもでき、これにより同じ結果が得られます。 現在、この現在の構成の合計が001の場合、これは(まだ)勝利ボードではありません。しかし、あなたはそれを勝利ボードにすることができます!1列目、3列目、または5列目から1つのアイテムを取り出すと、合計は0になります。これは勝利ボードです。つまり、ミスをしなければ、次に移動するプレーヤーが負けます。したがって、常に勝利ボードでターンを終了する必要があります。列5から1つの項目を削除するとします。ボードは次のようになります。 * * * * * * * * * * * * * * …
8 code-golf  game 

1
aBOTcalypse Now
aBOTcalypse キングオブザヒルチャレンジに参加するボットを設計してください!デフォルトのボットゲームの再生を次に示します。 ボードは、横スクロールビデオゲームのように2Dです(ただし、スクロールはありません)。 有効なボットは、ボードの見える領域の複数行の文字列表現を受け入れ、ボットの移動を出力する必要があります。 力学 これはサバイバルゲームです。黙示録が来て、ボット(そしてハンマースペースに保管されている岩の無限の供給)だけが残っています。各ボットには、標高0のランダムな開始位置が与えられます。特定の移動では、ボットは休息、移動、岩の投げ、または岩の落下を行うことができます。ボットは静止した岩とスペースを共有できますが、投げられた岩に当たったボットのように、別のボットや流星と衝突するボットは殺されます。 重力:ボットと岩はボードの床または別の岩の上に置く必要があります。他の何か(空気、流星、ボットなど)で休むと、1つが「サポートされない」ままになります。サポートされていないボットやロックは、サポートされるまで落下します。1スペースを超える落下はボットを殺し、落下する岩またはボットの下のボットも殺されます。つまり、移動またはドロップアップの試行は、ボットが現在岩とスペースを共有している場合にのみ機能します(それ以外の場合、ボット/岩は1スペース下にフォールバックします)。スペースの下にある岩が落下したり、流星や発射物によって破壊されたりすると、スペースは「サポートされなくなり」ます。 流星:流星は毎ターン上からボードに入ります。流星の速度は大きさが2で、[-180,0]の範囲でランダムに選択されたランダムな角度と、ランダムな開始x位置があります。流星は、何かにぶつかるまで、与えられた軌道に沿って一直線に落ちます。流星の動きの丸めは0に向かっていることに注意してください(Pythonのようにint())。 発射物:ボットは、標高までの距離を問わず、岩を投げることを選択できます。スローされた岩は、何かにぶつかるまで直線的に移動します(流星とは異なり、すべて1ターンで、スローされた岩はボードに表示されません)- elevation / max distance。投げられた岩はx +-1平方で軌道を開始することに注意してください。たとえば、ボットの高度が5で、左に1の距離を投げた場合、岩はで始まり、(x-1,5)で終わり(x-2,0)ます。衝突はのステップでのみチェックされdx=1、dy(Pythonのようにint())0に向かって丸められます。 入力 各ボットは、ボードの境界まで、各方向に20ピクセルの正方形(チェビシェフ距離= 20)を見ることができます。各入力文字列には8つの異なる文字があります。 '#' (ボード境界) '.' (空気) '@'(流星) '&' (岩) 'e'/'s'(敵ボット、またはそれ自体) 'E'/ 'S'(岩とスペースを共有する敵ボット、またはそれ自体) 以下は入力例です(改行はになります\n): ..............................# ..............................# ..............................# ..............................# ..............................# ..............................# ..............................# ..............................# ..............................# ..............................# ..............................# ..............................# ..............................# ..............@...............# .....................E........# .....................&........# .....................&........# .....................&........# .....................&........# ...........@.........&........# ....................s&........# ############################### …

11
熱くなったり冷たくなったり:宝物を見つける
「ハックルバックルビーンズトーク」と呼ばれることもある特定の子供向けゲームは、2人のプレーヤーでプレイされます。ここでは、ゲームのプレイ方法について簡単に説明します。 一方のプレイヤーは「ハイダー」に指定され、もう一方のプレイヤーは「シーカー」に指定されます。 シーカーは部屋の外に出ますが、ハイダーはあらかじめ選択された小さなオブジェクト「宝物」を隠します。 次に、探索者が役立つヒントを提供している間、ハイダーはオブジェクトを探します。 シーカーが宝物に近づいている場合、ハイダーは「暖かい!」と呼びます。 シーカーが宝物から離れている場合、ハイダーは「クーラー!」と呼びます。 探求者が宝物を見つけたら、彼らはそれを見つけたと発表します。 あなたの子供はあなたと一緒にこのゲームをプレイしてほしいと思っていますが、代わりにcodegolf.SEの質問に答えるのに忙しいです。それで、あなたは彼らとゲームをするプログラムを書くことにしました。ただし、入力する時間をできるだけ短くしたいので、プログラムの文字数をできるだけ少なくするようにしてください。 ゲームがプレイされる部屋を2次元トロイダル正方形フィールドとして定義できます。座標0,0は左下隅、座標99,99は右上隅です。宝物は、いくつかの位置に配置されているn,m場合nとm0から99までの間の両方の正の整数です。 あなたのプログラムは、その作り付けのユーザ入力機能を使用してプレイヤー(例えばからの入力を取得するprompt()、raw_input()あなたの選択した言語がいる場合など)はありません、ユーザーの入力機能を持っている代わりに、STDINからの入力を取ります。ゲームは次のように機能します。 プログラムは、ある位置に宝を「隠し」n,mます。 プログラムは、探索者に初期探索位置を入力するように促します。入力はx ywhere xおよびwhere の形式でy正の整数になります。 最初の検索位置x,yが宝物の位置n,mと等しい場合、プログラムは「正しい」を出力して終了します。さもないと: プログラムはシーカーに移動を促します。入力フォームで来るとされている整数負でもよいです。これは、シーカーが移動する方向ベクトルを表します(x方向とy方向です)。 a babab 結果のシーカーの位置が宝物である場合、プログラムは「正しい」を出力して終了します。さもないと: 探求者が宝物から離れている場合、プログラムは「クーラー」を出力し、宝物に向かって移動している場合、「ホッター」を出力します。 手順4に進みます。 「遠ざかる」と「近づく」という言葉があいまいかもしれません。この課題では、移動後のシーカーの位置が、移動する前の位置よりも宝物に近い場合、宝物に向かって移動しています。そうでなければ、彼らは離れて移動しています。(はい、これは、結果の位置と前の位置が同じ距離にある場合、プログラムは「クーラー」を出力する必要があることを意味します)。 これはコードゴルフなので、最短のコードが勝ちます。仕様が明確でない場合は質問してください。
8 code-golf  game 

4
シンプルなローグライクを構築する
この課題は、数年前にusenetグループrec.games.roguelike.developmentで提案されたものに基づいています。元のニュースグループの投稿は見つかりませんが、ソリューションのGithubリポジトリをご覧いただけます。それはいくつかの言語でしかゴルフされなかったので、もっと見たいです! 目的 目的は、アスキー文字を使用してダンジョンのトップダウンビューを表示するプログラムを構築することです。@ダンジョンのフリースペース(で表される)を移動できるプレイヤーを表す標識がありますが、壁(で表される#)を通過することはできません。 ダンジョンのマップは次のようになります。 #### #### # # # # # #### # # # ## ## # # # # ## ## # # # #### # # # # # #### #### プレーヤーは{2,2}の位置から開始する必要があります。{0,0}は左上隅です。 インターフェース ユーザーは、キーボードの矢印キーを使用して、プレーヤーを4つの基本方向に移動できる必要があります。 ユーザーがプログラムを終了するための何らかの方法が必要です。正常に終了する必要はありません(たとえば、例外が出力されても問題ありません)。 マップとプレーヤーは、入力が行われる前に描画する必要があり、プレーヤーは入力ごとに更新する必要があります。 図書館 Cursesなどのコンソール入力または出力用の確立されたライブラリを自由に使用してください。あなたの答えであなたが何を使っているかを述べてください。 得点 これはコードゴルフで、最短のコードが勝ちます!
8 code-golf  game 

3
PHPゴルフのヒント:ファイルの読み書きとCLI
私はゴルフは最近、およびなどのファイルからデータを読み取るために使用されている技術のいくつかの課題PHPコードの数に参加しているfopen()とfread()か、file_get_contents()本当に私のコードchar型の数に打撃を与えます。特に、コマンドライン入力を読み込むために提供されるメソッド。 私の質問は、ファイルの内容を読み書きする最速の方法(最小キーストローク)と、プロンプトから行を読み込む最速の方法(最小キーストローク)は何ですか? (注:これはコードゴルフなので、外部ライブラリは使用できません。)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.