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

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

22
基本的なASCIIタリー
代替タイトル:壁にあなたの刑務所の文を集計します numberを指定するとn、出力はグループごとに従来の5に、行ごとに50にグループ化されます。 例 1 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| |/|| |/|| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

23
騒々しい反復囚人のジレンマ
この挑戦では、騒々しい反復囚人のジレンマをプレイします。 の 囚人のジレンマが協力し、または欠陥:2人の選手、二つの選択肢と、それぞれがあるゲーム理論ではシナリオです。各プレーヤーは、協力する場合よりも欠陥がある場合のほうが自分にとって有利ですが、両方のプレーヤーは、両方のプレーヤーが欠陥のあるものよりも両方のプレーヤーが協力する結果を好むでしょう。 繰り返される囚人のジレンマは同じゲームです。ただし、同じ対戦相手と繰り返し対戦し、対戦相手が過去に何をプレイしたかを知っています。あなたの目的は、対戦相手の行動に関係なく、常に自分で最高のスコアを獲得することです。 騒々しい反復囚人のジレンマは、コミュニケーションにノイズを導入します。対戦相手が過去に何をプレイしたかを知っていると、ノイズが発生します。また、過去にどのような動きをしたかもわかります。ノイズレートは同じ対戦相手に対するラウンドでは一定ですが、ラウンド間で異なります。 チャレンジ この課題では、騒々しい反復囚人のジレンマを再生するPython 3プログラムを作成します。 プログラムは3つの入力を受け取ります。 ランダムなフリップを適用せずに、独自の動き。 ランダムなフリップが適用された相手の動き。 状態変数。各ラウンドで空のリストとして開始され、必要に応じて変更できます。使用しない場合は、これを無視できます。 あなたのプログラムは'c'協力するか'd'、欠陥があるように出力すべきです。 たとえば、ランダムフリップが適用された後、最初の10フリップで、過去に少なくとも60%の時間、対戦相手が協力した場合に協力するプログラムを次に示します。 def threshold(my_plays, their_flipped_plays, state): if len(their_flipped_plays) < 10: return 'c' opp_c_freq = their_flipped_plays.count('c')/len(their_flipped_plays) if opp_c_freq > 0.6: return 'c' else: return 'd' Pythonがわからない場合は、提出物を擬似コードで書くと、誰か(私またはサイトの別のメンバー)が対応するPythonプログラムを作成できます。 ゲームプレイ トーナメントランナーは、noisy-gameにあります。実行noisy-game.pyしてトーナメントを実行します。そのリポジトリを新しいサブミッションで更新し続けます。サンプルプログラムはbasic.py。 プログラムの総合スコアは、ゲームの100回以上のプレイのスコアの合計です。 ゲームは、それ自体を含む各プレイヤーに対する各プレイヤーのラウンドロビン対戦で構成されます。対戦は100ラウンドで構成されます。ラウンドは300の動きで構成され、各動きには出力'c'または'd'。 あなたの提出物は、あなた自身のものを含むすべての提出物と対戦します。各対戦は100ラウンドで構成されます。各ラウンド中、フリップ確率はから一様にランダムに選択され[0, 0.5]ます。 各ラウンドは300手で構成されます。各動きで、両方のプログラムは、試行されたすべての以前の再生、フリップが適用された後、他のプログラムが行ったすべての以前の再生、および状態変数(プログラムが必要に応じて変更できる可変リスト)を受け取ります。プログラムは動きを出力します。 移動のスコアは次のとおりです。プログラムがを再生する'c'場合、相手のプログラムは2ポイントを獲得します。プログラムが再生される場合'd'、そのプログラムは1ポイントを獲得します。 次に、各手は、フリップ確率に等しい確率で独立してフリップされ、対戦相手に見せるために保存されます。 すべてのラウンドがプレイされた後、各プレイヤーが各対戦で獲得したポイント数を合計します。次に、次のスコアリングシステムを使用して、各プレーヤーのゲームのスコアを計算します。このスコアリングは、すべての対戦が完了した後に実行されます。 得点 進化スコアリングを使用します。各プログラムは同じ重みで始まります。次に、ゲームからのポイント合計を使用して、100回の反復に対して、次のように重みが更新されます。 各プログラムの新しいウェイトは、前のウェイトと平均ポイント合計の積に比例し、相手のウェイトで重み付けされます。 …

24
ドミノを描いて
チャレンジ 2桁の0-9を入力として、2つの面にこれらの数のピップ(ドット)を持つドミノ(ダブルナインドミノセットから)を出力します。10の可能な面は次のようになります(パイプで区切られています): | | o| o|o o|o o|o o o|o o o|o o o|o o o | o | | o | | o | | o |o o|o o o | |o |o |o o|o o|o o o|o o o|o o o|o o o または別の行に: ----- o ----- o …

30
ヤッツィースモールストレート検出
ゲームYahtzeeでは、プレイヤーは6つのサイコロを5つ振り、ポイントを獲得するために特定の手を作成しようとします。そのようなハンドの1つは小さなストレートです。4つの連続した数字で、必ずしも順番に並んでいるとは限りません。三つの可能な小型のストレートがあり1, 2, 3, 4、2, 3, 4, 5と3, 4, 5, 6。 たとえば[3, 5, 6, 1, 4]、小さな直線が含まれてい[3, 4, 5, 6]ます。 入力 ヤッツィーハンドを表す、それぞれ1〜6の5つの整数のソートされていないリスト。 出力 手に小さなストレートが含まれる場合は真実の値、それ以外の場合は偽の値。 テストケース 真実: [[1, 2, 3, 3, 4], [1, 2, 3, 4, 5], [3, 5, 6, 1, 4], [1, 5, 3, 4, 6], [4, 5, 2, 3, 5], [1, …

28
パワーボール番号を選択してください!
パワーボールは、現在のジャックポット(2016年1月11日現在)が過去最大の宝くじ賞金であり、約15億ドル(米ドル)であるため、最近注目を集めているアメリカの宝くじです。)であるます。 パワーボールプレーヤーは、69個の白いボールから5つの異なる番号を選択し、26個の赤いボールから1つの「パワーボール」を選択します。彼らは勝つ彼らの5つの白いボールの選択肢は、任意の順序で描かれたものと一致した場合にジャックポットを、そして彼らは正しい「パワーボール」の数を選択した場合。 したがって、ジャックポットを獲得する可能性は1 (69 choose 5)*(26 choose 1)または((69*68*67*66*65)/(5*4*3*2*1))*26であり、これは292,201,338に1です 最新の抽選で誰もジャックポットを獲得しませんでした2016年1月9日のが、おそらく2016年1月13日午後10時59分(ET)に誰かが次の抽選に勝つでしょう。 チャレンジ 入力を行わず、1から69までの5つの異なる乱数を出力し、次に1から26までの1つのランダムな「パワーボール」番号を出力する、パワーボールの描画をシミュレートするプログラムまたは関数を作成します。初期番号)。 「Powerball」番号は常に出力の最後の番号である必要がありますが、最初の5つの番号の順序は重要ではありません。 6つの数値は、スペースで区切られた、または改行で区切られた10進数で出力される必要があり、オプションの単一の末尾の改行があります。コンマ、角括弧、およびその他の文字は出力に使用できません。 したがって、これらは有効な出力になります(最後の図面の番号を使用): 32 16 19 57 34 13 32 16 19 57 34 13 すべての292201338の可能な結果は、均一な確率で可能になるはずです。組み込みの擬似乱数ジェネレータを使用し、それらがこの標準を満たしていると仮定することができます。 Python 2または3で機能する、参照されていない参照実装です。 import random print(' '.join(map(str, random.sample(range(1,70), 5) + [random.randint(1, 26)]))) バイト単位の最短コードが優先されます。 私はパワーボールと提携しておらず、実際にプレイすることを提案していないことに注意してください。しかし、ここのプログラムのいずれかによって生成された数字から何かを獲得した場合、私たちはそれについて聞いてみたいと確信しています。:D

1
マインスイーパソルバー
マインスイーパフィールドは既に生成されていますが、PCGが爆発する前に、生成された地雷を掃く必要があります! あなたの仕事は、「Working Minesweeper」の承認されたソリューションのわずかに修正されたバージョンと互換性のあるマインスイーパソルバーを作成することです(アクションはスペースで区切られ、より大きなフィールドを可能にします)。 入力:マインスイーパフィールド、スペースで区切られたフィールド。最初の行は、鉱山の総数を示しています。 x:そのまま !:フラグ 桁:そのフィールドの周囲の地雷の数 例: 10 0 0 1 x x x x x 0 0 2 x x x x x 0 0 2 ! x x x x 0 0 1 2 x x x x 0 0 0 1 x x x x 1 …

15
メルキーを遊ぼう!
メルキー Mölkkyはフィンランドの投げゲームです。プレーヤーは木製ピン(「メルキー」とも呼ばれます)を使用して、1〜12の数字でマークされたスローイングピンとほぼ同じ寸法の木製ピンを倒します。ピンの初期位置は次のとおりです。 (07)(09)(08) (05)(11)(12)(06) (03)(10)(04) (01)(02) この説明と以下のルールはウィキペディアに基づいています。 簡略化されたMölkkyルール 1本のピンをノックすると、ピンにマークされたポイントの数が決まります。 ノッキング2つの以上のピンのピンの数は上ノックスコア(例えば、3つのピンスコア3点にわたってノッキング)。 ゲームの目的は、正確に50ポイントに到達することです。スコアを25ポイントに戻すと、50を超えるスコアがペナルティになります。 この課題のために、ピンは常に上記の正確な順序であると仮定します。(実際のゲームでは、ピンは着地した場所に投げるたびに再び立ち上がります。) 他のすべてのMölkkyルールは無視され、1人のプレーヤーのみが考慮されます。 入力 12個のブール値のリストの空でないリスト。ブール値の各リストは、スローの結果を表します。ピンがノックオーバーされた場合は1、そうでない場合は0です。:ブール値は、左上から右下へのピンの正確な順序で与えられている7、9、8、5、11、12、6、3、10、4、1、2。 出力 すべての後のスコアは、ルールを適用して算出、入力に記載のスロー1、2及び3。 詳細な例 次の入力を考えてみましょう。 // 07 09 08 05 11 12 06 03 10 04 01 02 [ [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], // scores 5 …
33 code-golf  game  binary 

29
ドル紙幣オークション
これは、ゲーム理論におけるドル札オークションゲームのKOTHチャレンジです。その中で、ドルは最高入札者に売られています。入札単価は5¢単位で上昇し、敗者も入札単価を支払います。損失を削減するために、両プレイヤーは入札戦争をドルの価値をはるかに超えてエスカレートするという考え方です。 ボットがそれよりも賢いことを望みましょう。 net.ramenchef.dollarauction.DollarBidderクラスを拡張して、このゲームをプレイするボットを作成します。nextBid他のボットの以前の入札に基づいて、ボットの次の入札を返すメソッドを実装する必要があります。必要に応じて、このnewAuctionメソッドを使用して、対戦相手のボットのクラスで各オークションをリセットすることもできます。 public abstract class DollarBidder { /** * Used by the runner to keep track of scores. */ long score = 0; /** * (Optional) Prepare for the next auction. * * @param opponent The class of the opponent's bot. */ public void newAuction(Class<? extends DollarBidder> opponent) {} …

15
マナはどれくらい必要ですか?
ダンジョンマスターは、1987年にアタリSTでリリースされた最初のリアルタイムロールプレイングゲームの1つでした。当時のエキサイティングなものの中でも、ルーン文字に基づいたかなり洗練されたスペルシステムを提供していました。 今日のあなたの仕事は、ダンジョンマスターで特定の呪文を唱えるのに必要なマナポイントの数を評価するプログラムまたは関数を書くことです。 「スペルキャスト」システムは、上の図の右上のシアンのボックスです。 スペル、ルーン、マナ ダンジョンマスタースペルは、2〜4個のルーンで構成され、次のカテゴリからこの順番で選択されます。 電力(必須) 元素の影響(必須) フォーム(オプション) クラス/アライメント(オプション) 有効なスペルは次のいずれかであることを意味します。 パワー+エレメンタルインフルエンス パワー+エレメンタルインフルエンス+フォーム パワー+エレメンタルインフルエンス+フォーム+クラス/アライメント 各カテゴリには6つのルーンが含まれ、各ルーンには関連する基本マナコストがあります。 ============================================================================= | Power | Rune | Lo | Um | On | Ee | Pal | Mon | | +-----------+------+------+------+------+------+------+ | | Base cost | 1 | 2 | 3 | 4 | 5 | 6 …

10
マインスイーパボードを確認する
目標は、完成した掃海艇ボードが有効かどうかを確認することです。これは、各数値が、対角線を含む隣接するセル内の地雷の正しいカウントであることを意味します。ボードはラップアラウンドしません。 通常どおり、関数またはプログラムを指定する必要があり、バイト単位の最短コードが優先されます。 マインスイーパを生成、解決、および完全に実装するための過去の課題も参照してください。 入力: このような単一の文字列:02X2 13X2 X211。 マインスイーパボードの行は、スペースで区切って指定します。したがって、上記は3x4ボードを表します。 02X2 13X2 X211 :各セルは文字であるX鉱山のために、または数0による8。 すべての行の長さは同じです。 少なくとも3行3列です。 入力はスペースで開始または終了しませんが、必要に応じて改行を最後に含めることができます。 出力: 一貫Truthy正しいボード上、および一貫性のFalseyの間違ったボード上の値。一貫性とは、すべてのTruthy出力が同じで、すべてのFalsey出力が同じであることを意味します。 テストケース 各行は個別のテストケースです。 True: 02X2 13X2 X211 XXXX XXXX XXXX XXXX XX4X2 5X6X4 XX6XX 4XX54 2X4XX False: 02X2 13X2 X212 XXXX XXXX X7XX XXXX XX5X2 5X6X4 XX6XX 4XX54 2X5XX

30
最初の価格の密封入札オークション
最終結果 競争は終わりました。おめでとうございますhard_coded! 興味深い事実: 40920のオークションのうち31600(77.2%)で、最初のラウンドの勝者がそのオークションで最も多くのラウンドを獲得しました。 例えば、ボットが競争に含まれている場合は、トップ9の場所は点を除いて変更されませんAverageMineし、heuristその位置を入れ替えます。 オークションの上位10件: [2, 2, 3, 3] 16637 [0, 3, 3, 4] 7186 [1, 3, 3, 3] 6217 [1, 2, 3, 4] 4561 [0, 1, 4, 5] 1148 [0, 2, 4, 4] 1111 [2, 2, 2, 4] 765 [0, 2, 3, 5] 593 [1, 1, 4, 4] …

4
マインスイーパボードの反転
マインスイーパは人気のあるコンピューターゲームで、おそらくプレイに時間を浪費しているので、各非地雷セルがいくつの隣接地雷を持っているかのヒントに基づいて、長方形のグリッド内の地雷であるセルを明らかにしようとします。また、まだプレイしていない場合は、ここで行います。 マインスイーパグリッド(ボード)についての気の利いた数学的な事実は、次のとおりです。 ボードとその補数の鉱山総数は同じです。(証明) つまり、マインスイーパグリッドが完全に表示されている場合、そのグリッド上のすべての数値の合計、つまり鉱山の合計は、グリッドの補数の鉱山の合計、つまりすべての鉱山が置き換えられたグリッドに等しくなります非地雷とすべての非地雷が地雷に置き換えられました。 たとえば、マインスイーパグリッドの場合 **1.. 34321 *2**1 鉱山の合計は1 + 3 + 4 + 3 + 2 + 1 + 2 + 1 = 17です。 グリッドの補数は 24*** ***** 3*44* 合計で2 + 4 + 3 + 4 + 4 = 17になります。 任意のマインスイーパグリッドをテキスト形式で取り込むプログラムを作成します。ここで*は、地雷を表し、地雷は非地雷セルに隣接する地雷の数1を8表します。.または0または (スペース)を使用して、私の隣人のいないセルを選択できます。入力グリッドに正しくマークが付けられていると想定できます。つまり、各非地雷セルは、それに隣接する地雷の合計数を、直交または斜めに正確に示します。 あなたのプログラムが同じ形式でグリッドの補数を印刷する必要があります(これを用いた.、0または あなたが入力に期待されるような)。 バイト単位の最短コードが優先されます。 プログラムの代わりに、入力グリッドを文字列として受け取り、補数グリッドを出力または返す関数を作成できます。 入力または出力の末尾の改行は問題ありませんが、グリッドを形成する文字以外の文字は他にないはずです。 1×1グリッドが最小の入力であると想定できます。 テストケース 補数の補数が元のグリッドであるため、すべての入力と出力を交換できます。グリッドは、さらにテストケースのために回転させることもできます。 …

30
ロシアンルーレット、リローデッド
ロシアンルーレットで遊ぼう! 通常、これは最短のMOD 6プログラムを作成する競争になりますが、クリックするたびに勝つ可能性が低くなるため、あまり現実的ではありません。ルールは次のとおりです。 本物の6シューティングゲームをエミュレートします。 1つの弾丸が6つの部屋の1つに配置され、バレルは演奏前に1回だけ回転します。 n回目の試行で負ける可能性は1/6です。 n回試行した後 に負ける確率は1 /(6-n)です 最大で6回の試行で負けることが保証されています。 負け: テキストを表示する *BANG!* プログラムを終了します。 受賞: 「勝つ」とは、銃が発射しないことを意味しますが、弾丸はハンマーに近い1つの部屋です。 テキストを表示する *click* プログラムを終了する機能とともに、「トリガー」をユーザーに提示します(「ctrl + c」、以下を参照)。 プログラム固有: トリガーを引くことは、最初の試行を含む何らかの形式のユーザー入力です。(これは、キーストローク、マウスクリックなど何でも構いません。テキストプロンプトは必要ありません。) 終了するまで、プログラムのインスタンスは1つだけ許可されます。(プログラムの新しいインスタンスを実行することは、バレルに良いスピンを与えることに似ています。つまり、次のクリックで負ける確率は1/6にリセットされます。) 最短のコードが勝ちます! リーダーボード コードスニペットを表示 <style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; } …
32 code-golf  game  random 

20
ファロは配列をシャッフルする
A ファロshuffleが頻繁に「シャッフル」デッキにマジシャンで使用される技術です。ファロシャッフルを実行するには、まずデッキを2つの等しい半分にカットしてから、2つの半分をインターリーブします。例えば [1 2 3 4 5 6 7 8] シャローファロは [1 5 2 6 3 7 4 8] これは何回でも繰り返すことができます。興味深いことに、これを十分な回数繰り返すと、常に元の配列に戻ります。例えば: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

2
チックタックトーラスの最適ゲーム
この課題はTic Tac Toeのゲームについてですが、トーラスでプレイします。 遊び方 必要なゲームボードを作成するには、通常のTic Tac Toeゲームボードから始めます。最初に、左端と右端を結合して、シリンダーに折ります。次に、上端と下端を結合してトーラスに折ります。これは、いくつかの動きをプレイしたこのようなゲームボードの簡単な視覚化です(シックペイントスキル!)。 トーラス上のTic Tac Toeのルールは、通常のTic Tac Toeと同じです。各プレイヤーは、XとOを交互に配置します。行、列、または対角線に3つの同じシンボルがある最初のものが勝ちです。 トーラスの視覚化は非常に難しいため、ボードを紙に投影し直します。これで、通常のTic Tac Toeとしてゲームをプレイできます。唯一の違いは、壊れた対角線で3つの同じシンボルで勝つことができるということです。たとえば、プレーヤー1(X)は次のボードに勝ちます。これは、トーラスのビューを少し変更することで簡単に確認できます。 興味があれば、トーラスゲームズのトーラスでTic Tac Toeをプレイできます。Windows、Mac、Androidのバージョンがあります。 最適なゲーム この課題では、最適なゲームに興味がありました。最適なゲームとは、両方のプレイヤーが最適な戦略をプレイするゲームです。通常のTic Tac Toeボードでは、最適なゲームは常に引き分けになります。トーラスボードでは、常に最初のプレイヤーが勝ちます。実際、トーラスボードでのゲームは引き分けに終わることはありません(プレイヤーが最適でない場合も)。 最適な戦略は本当に簡単です。 シンボルを配置して勝つことができるなら、それをしてください。 それ以外の場合、対戦相手が1つの行/列/対角線に2つのシンボルを持っている場合は、ブロックしようとします。それ以外の場合は、必要なことを行います。 それ以外の場合は、必要なことを行います。 最適なゲームはすべて7つの動きで構成されており、これらの動きは次のように説明できます。 プレーヤー1は、ボード上の任意の場所にXを配置します(9つの選択肢) プレイヤー2はボード上の任意の場所にOを配置します(8つの選択肢) プレーヤー1は、ボード上の任意の場所にXを配置します(7つの選択肢) プレイヤー2の移動は強制される可能性があり(1選択肢)、そうでない場合はOを任意の場所に配置します(6選択肢) プレイヤー1の移動が強制されます(1選択肢) プレイヤー2はフォークに引っ掛かる(プレイヤー1は2つの異なる方法で勝つことができる)ので、プレイヤー2はプレイヤー1を1つの方法でブロックする必要がある(2つの選択肢) プレイヤー1が最後の動きを決めて勝ちます(1選択肢) 予想されるボードには、9 * 8 * 1 * 6 * 1 * 2 * 1 + 9 * …

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