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

ボードゲームを含む課題のため。

1
Connect 4の勝者を決定する
部分的に塗りつぶされたConnect 4グリッド(7x6)が表示されます。 O X O X X O X O O X O X O X X O X X X O O X O O O X X O X (入力は1Dまたは2D配列として、また文字または数字などとして与えることができます。) と仮定する Xがゲームを開始しました。 誰もまだ勝ちません。 プレイヤーは今までうまくプレイできなかったかもしれませんが、今後は両方とも最適な戦略を採用します。 入力グリッドに問題はありません。 どのプレイヤーが勝つ(または引き分け)を示す単一の値を出力する必要があります コードゴルフチャレンジ; 最短のコードが優先されます。プログラムは、妥当な時間で実際に出力を計算する必要はありませんが、有限の時間で出力が正しく取得されることを証明できるはずです。

5
Antichessをプレイ!
https://en.wikipedia.org/wiki/Losing_chess これは基本的にチェストーナメントですが、アンチチェス用です;) アンチチェスは、発明された多くのチェスのバリエーションの 1つです。目標は、すべてのピースを失うことです(これは少し奇妙に思えるかもしれませんが、理由によりアンチチェスと呼ばれます)。 ルール アンチチェスのルールは標準チェスと非常に似ていますが、いくつかのかなり小さな違いがあります。上記の目標は、すべてのピースを失うことです。これを実現するために、対戦相手が自分のピースの1つをキャプチャする機会がある場合、それは彼が行うことができる唯一の動きです。1ターンで彼に複数のチャンスを与えた場合、他のプレイヤーは自分のターンを選択できます。変更されたもう1つのことは、王には特別な力がないことです-あなたのように相手をチェックメイトすることができず、あなたに彼を強制的にチェックすることはできません。 標準ゲームに対する次の変更も適用されます(ゲームの簡素化に役立ちます)。 入場者は無視されます。 キャスリングはできません。 50手ルールは、(引き分けで試合終了を意味する)に自動的に適用されます。 ポーンは、昇格先を選択できます。 プレイヤーが移動するのに2秒以上かかる場合、ゲームに負けます。 無効な動きを返すと、ゲームに負けます。 勝つためには、対戦相手がすべてのピースをキャプチャする必要があります。 ホワイトがゲームを開始します。 白はフィールドの「下部」に配置され(y = 0)、黒は上部に配置されます(y = 7)。 ボット以外のリソース(インターネット、ファイル、他のボットなど)へのアクセスは禁止されています。 得点 勝つと3ポイント、引き分け1ポイント、0ポイントを失います。 各サブミッションは、他のサブミッションと10回対戦します(白で5回、黒で5回)。 ボットを書く コントローラーコードはこちら:https : //github.com/JJ-Atkinson/SimpleAntichessKOTH ボットはJavaまたはGroovyで作成できます。ボットを作成するには、Playerクラスを拡張する必要があります。プレーヤークラスには1つの抽象メソッドがありMove getMove(Board board, Player enemy, Set<Move> validMoves)ます。 便利なメソッドの簡単な概要を次に示します。 Player: List<Piece> getPieces(Board board):ボード上のすべてのピースを返却します。 PieceUpgradeType pieceUpgradeType:ポーンの1つがボードの最後に達した場合、これをアップグレードするピースのタイプに定義する必要があります。あなたは、の選択肢を持っているROOK、KNIGHT、QUEEN、BISHOP、とKING。 Board: Field getFieldAtLoc(Location loc):Fieldその場所に戻ります。これにはマッチングgetAt方法があるため、groovyを使用している場合は記述できますboard[loc]。 Field getFieldAtLoc(int x, int …


1
ハルマの最短2プレイヤーゲーム
Chessでは、Fool's Mateを使用して4移動(各2回)した後にゲームを終了することができます。 あなたの目標は、Fool's Mate of Halmaを見つけることです。これは、プレイするターン数を最小限に抑えるHalmaの2人用ゲームです。 10 56を超えるボードステートがあり、分岐係数が1000を超えているのを見てきたので、最適なソリューションが見つかる可能性は誰にもありません。代わりに、できる限り最適なソリューションを見つけようとしています。 移動のリストと、それらの移動の生成に使用したコードを送信する必要があります。 ゲームの説明 HalmaはChinese Checkersに似ていますが、16 * 16の正方形のボードでプレイします。 最初、ボードは次のようになります。 ゲームの目的は、すべてのピースを対戦相手のピースの開始位置に移動することです。 プレーヤーのターンで、彼/彼女は以下を行うことができます。 ターンを渡す 自分の作品の1つを隣接する空きスペースに移動します。隣接するスペースには対角線が含まれます。 彼/彼女の作品のいずれかを取り、何度でも次の操作を行います。隣接する作品の上に作品をジャンプし、飛び越えた作品の反対側のスペースに着地します。 次に、2番目のタイプの移動を説明する例を示します。 ルール ゲームが終了する合法的な動きのリストを提出してください。 リストの生成に使用したコードを送信します。 他の人のコードからより良い結果を得る場合、コメントで結果を投稿するか、新しい結果で投稿を編集してください。 各移動はNone、ターンを通過するか(x1,y1,x2,y2)、ピースを移動する必要があります。移動するピース(x1,y1)の座標とそのピースの移動(x2,y2)先です(ジャンプ移動の場合、中間座標は無視します)。座標(0,0)は左上隅から始まります。x座標は右に増加し、y座標は下に増加します。移動は改行で区切る必要があります。 このpythonスクリプトを使用して、移動を確認できます。でpython halma_verify.py < file移動を確認するために使用しfileます。 最短リストが勝ちます。

2
次の動きは?
この課題は、書くことですミニマックス関数の出力に、お好みの言語での次の最善手のNxNのゲーム三目並べ与えられた現在のボードの状態を。ボード入力は、Matrix、2D Collection、またはユーザーにとって理にかなっているものの、ルールを順守するものとして受け入れることができます。出力はされて次善の動きのためのは、それが現在で回す誰でも、Xが起動していると考えられています。 Minimaxアルゴリズムの簡単な背景 ミニマックスアルゴリズムの基本的な考え方は、考えられるすべての結果をDAGとして列挙し、最初の動きによってキー付けされた一連の動きがプレーヤーに与える利益によってそれらを重み付けすることです。可能なすべての結果は、最初の動きによって「バケット化」され、すべての結果の合計に基づいてスコアリングされます(損失の場合は-1、同点の場合は0、勝利の場合は1)。複数のプレイヤーがプレイする必要がある実装では、プレイヤーによるすべての可能な動きと、対戦者によるすべての可能な反応も列挙します。たとえば、三目並べのゲーム(最初の動きの後)では、8つの可能な最初の動きがあり、次のターンだけを分析するときはすべて同じように見えるかもしれません。しかし、最終的な結果をもたらす可能性のある一連の動きごとに考えられるすべての結果を反復処理し、それらをすべて合計することにより、 tic-tac-toeの観点から見たmini-maxアルゴリズムのより詳細で詳細なコンテキストの概要については、http://neverstopbuilding.com/minimaxを参照してください。 XKCD(3x3ソリューションのみ) ルール 任意の言語を使用できますが、外部ミニマックスライブラリは許可されていません。 出力は、次の最適な動きを示す座標(0-n、0-n)または数値(1-n * n)にすることができます。 これに加えて、ベストケースシナリオが勝利ではなく損失または同点である場合を特定できる必要があります。 あなたが損失や同点を示す方法は、あなた次第です。 入力は従来のXとOを使用する必要があり、Xが最初に移動すると想定する必要があります。空白は何でも表すことができます。 プログラムに入力される入力には、n個のOとn + 1個のXがあると仮定できます。言い換えると、整形式のボードを取得していると仮定できます。 ボードの現在の状態がプログラムへの唯一の入力である必要があります。再帰を使用している場合、入力要件を容易にするためにヘルパーメソッドを作成する必要があります。詳細については、https://codegolf.stackexchange.com/a/92851/59376を参照してください。 10> = n> = 1の値をサポートする必要があります。プログラムがn> 10で「タイムアウト」になった場合、一部の言語の処理能力が大幅に低いため(特にWebに面したコンソールを使用しているため)、これも受け入れられます。 審査 これはコードゴルフであるため、プログラムの最小バイト数が優先され、標準的な抜け穴は一般的に許可されません。 同点の場合、最大の「n」をサポートするプログラムが勝ちます。 入力例 2x2 [[X,O] [-,-]] 出力: 2または[0,1](3または[1,1]も間違いなく正しいでしょう)(使用した形式を簡単に説明できる限り、場所の表示の任意の形式) 3x3 [[X,O,X] [O,X,-] [-,-,-]] 出力: -1(損失) 繰り返しますが、必要な入力形式はすべて許可されますが、XとOを使用する必要があります。提供される例は、単にその形式に制約することを意図したものではなく、単に刺激を与えるためのものです。

3
文字列内のパターンを検索
この挑戦では、あなたの仕事は、与えられた構造を持つ部分文字列を見つけることです。 入力 入力は、空ではない2つの英数字文字列、パターン p、およびテキスト tです。の考え方は、の各文字がp連続して空でない部分文字列を表し、その部分文字列tが隣り合って出現し、pそれらの連結を表すことです。同一の文字は同一の部分文字列に対応します。たとえば、パターンaaは空でない正方形(短い文字列をそれ自体に連結することによって取得される文字列)を表します。したがって、パターンaaは部分文字列byebyeとa一致し、それぞれ一致しbyeます。 出力 テキストtにp一致する部分文字列が含まれている場合、出力はその部分文字列になり、の文字に:対応する文字列の間にコロンが挿入されますp。例えば、我々が持っている場合t = byebyenowとp = aa、その後、bye:bye許容出力されます。一致する部分文字列にはいくつかの選択肢がありますが、そのうちの1つだけを出力します。 t一致する部分文字列が含まれていない場合、出力は悲しい顔になり:(ます。 規則と説明 の異なる文字はp同一の部分文字列に対応できるためp = aba、文字列と一致できますAAA。文字は空でない文字列に対応する必要があることに注意してください。特に、pがより長い場合t、出力はでなければなりません:(。 完全なプログラムまたは関数を記述できます。また、2つの入力の順序を変更することもできます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース 形式で与えられますpattern text -> output。他の受け入れ可能な出力が存在する可能性があることに注意してください。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

4
Three Men's Morrisでさらに2つの動きで勝つことができますか?
報奨金 No. 1(授与) 最初の有効な回答には50人の担当者を投入します No. 2(授与) 最短の有効な回答を得るために、さらに100人の担当者を投入します。 No. 3(提出用にオープン) 有効な回答が大幅に短くなった最初の回答には200人の担当者を投入します。重要なのは、現在の最短回答の最大45%(564バイトx 0.45 = 最大254バイト)です。 ゲーム 古典的なゲーム「Nine Men's Morris」または単に「Mill」を覚えていますか?Three Men's Morrisと呼ばれるバリエーションがあり、これは変更可能な三目並べのようなものです。 ルール これはゲームのブランクボードです。 a b c 1 [ ]–[ ]–[ ] | \ | / | 2 [ ]–[ ]–[ ] | / | \ | 3 [ ]–[ ]–[ ] [ …

5
WythoffのNimを完璧にプレイする
あなたの目標は、Wythoff's Nimのゲームに最適なプレイヤーを書くことです。 ワイソフのニムのルール WythoffのNimは、2つの同じカウンターの山でプレイされる決定論的な2プレイヤーゲームです。プレイヤーは交互にターンし、次のいずれかを行います。 最初のパイルから1つ以上のカウンターを削除します 2番目のパイルから1つ以上のカウンターを削除します 最初のパイルと2番目のパイルの両方から、等しい数のカウンター(1つ以上)を削除します。 もちろん、パイルは負になることはできませんが、0にすることはできます。最後のカウンターをすべて削除したプレイヤーがゲームに勝ちます。 より幾何学的に考えるために、このアプレットでプレイできるゲームの同等の定式化を以下に示します。単一の女王は、コーナーが左下にある4分の1の無限チェス盤の正方形から始まります。プレイヤーは交互にクイーンを移動します。クイーンはチェスのクイーンのように移動しますが、3方向に制限されます。 ダウン 左 斜め下および左 クイーンをコーナーに移動する人が勝ちます。 クイーンの座標(コーナー(0,0))をそれぞれのパイルのサイズに関連付けると、両方のゲームが同じであることが簡単にわかります。 完璧なプレイ (完璧なプレーと勝利の動きの概念に精通している場合は、これをスキップできます。) WythoffのNimは有限で決定的なゲームであるため、完全なプレイという概念があります。完璧なプレーヤーとは、常に理論的に勝ったポジションから勝つ戦略です。つまり、勝利を保証する戦略が存在するポジションです。 勝利戦略となるには、移動したばかりのプレーヤーの理論上の勝利位置に常に移動するように移動するだけで十分です。これらの最初の勝利ポジション(コールドポジションとも呼ばれ(0,0), (1,2), (2,1), (3,5), (5,3)ます)はです。Wythoff's Nimの勝利戦略を見つけるアルゴリズムの説明と、勝利ポジションを生成する公式については、Wikipediaの記事を参照してください。 プログラム要件 プログラムや関数を書くと、入力として位置を取り、その動きの後の位置の形で勝ちの動きを出力します。最少バイトが勝ちます。 勝ち手が存在しない場合、つまりポジションが理論上の損失である場合、プログラムはその旨を示し、没収する必要があります。 プログラムは妥当な時間内に実行する必要があります。したがって、指数関数的再帰ゲームツリー検索では十分ではありません。戦略を事前に計算してハードコーディングしたい場合は、問題ありません。 入力 (i,j)杭のサイズを表す、それぞれ最大で1組の負でない数99。これは、2つの数字、タプル、リスト、または任意のコンテナにすることができます。 出力 移動後の位置を、再び2つの数字またはそのコンテナーとして印刷または出力します。これは勝ちのポジションへの合法的な動きでなければなりません。このような動きが複数ある場合、どれでも構いませんが、1つだけです。 勝つ動きがない場合は、出力でこれを示す必要があります。任意の出力は次のようにFalse、None0、または(-1,-1)それは法的な位置ではありません、すべて負け入力のための同じである限り、行います。 実行例 f(5,0) = (0,0) f(2,2) = (1,2) # Or (2,1) or (0,0) f(1,2) = False f(13,9) = (13,8) …

1
カタンの開拓者-最長の道!
これは、カタンの開拓者の終盤ボードです。 バックグラウンド: 道路(長い棒の部分)と集落(および都市)は、小さな小屋によってレンダリングされます。次のスキームを使用して、これらのピースの配置をエンコードします。上から、道路を配置できる行の水平頂点とエッジがあります。次に、道路のみの列などがあります。赤にR、オレンジにO、青にBを使用し、_を使用しない場合、写真のボードは次のようにエンコードされます。 ________RR_R_ __R_ __RR_R_RRR_____R_ B___R _B_________B__OO_OOR_ B__B_R BB_BBB_____B____RR_R_ OBB_O OO__BB_BB__OOO_OO O_O_ _O_OOO_O_____ このようなボードが入力文字列になります。どんな手紙でも[A-Z]もプレーヤーの色を示すことができますが、最大4色(空を含む)があります。それ以外の場合、ボードは入植者の規則に従って有効であることが保証されます。 各色には、最大で2つの連続した道路網があり、他のプレイヤーの居住地/都市(頂点の建物)によって分割される場合と分割されない場合があります。サンプル画像の右側のオレンジ色の集落が赤い道路をバラバラにしているのを見てください。 各道路網には、少なくとも1つの集落があることが保証されています。 すべての集落と都市は、少なくとも 、最も近い他の集落/都市(あなたのものまたはそうでないもの)から 2つの端 1人のプレイヤーは、ゲームボード上に15の道路しか持てません。 カタン愛好家の場合:この問題の目的のために集落と都市の区別はないため、入力文字列では区別しません。 これはすべて、「入力」文字列を指定するためのものです。 最長の道: 入植者では、プレイヤーは「最長の道」を持つことで2つの勝利ポイントを獲得します。これは次のように定義されます:開始地点から終了地点までの最長の連続した単一の経路(道路で測定)。敵の集落または都市によって分割されない。特定の開始点から特定の終了点までのパスをトレースできる限り、サイクルは問題ありません。したがって、6本の道路と分岐する1本の道路のループは長さ7ですが、反対側の6本の道路ループから分岐する2本のループはまだ7の価値しかありません。 例のマップでは、右側の赤い道路は4の価値しかありません。ボードの右側のオレンジの集落によって彼が切り離されているためです(そのため、集落はまったく含まれません)。青には長さ13の道路があり、オレンジには長さ12の道路があります。赤の一番上の道路は、その隣の2つの単一道路に接続していないため、7の価値があります。 出力: 最長の道路(同点の場合は複数になる可能性があります)があり、その後に空白またはアンダースコアで区切られた道路があるすべてのプレイヤーは、その道路の長さのベース10でカウントされます。 したがって、サンプルボードの出力は次のようになります。 B 13 問題ステートメント: プログラムまたは関数を記述し、STDIN経由で、または関数への文字列引数として入力ボードを受け取ります。関数は、上記の出力を文字列として返すか、STDOUT(または最も近い代替)に出力します。オプションで、出力に単一の末尾の改行を含めることができます。 これはcode-golfで、最短のプログラムが勝ちます。もちろん、標準的な抜け穴は禁止されています。

7
振動の平等
on [l, r]から始まる、時間単位ごとに1単位の速度で、2つの整数点間で振動するオブジェクトがあります。あなたが仮定することができます。たとえば、オブジェクトがで振動する場合、次のようになります。lt=0l < r[3, 6] t=0 -> 3 t=1 -> 4 t=2 -> 5 t=3 -> 6 t=4 -> 5 t=6 -> 4 t=7 -> 3 t=8 -> 4 しかし、オブジェクトは継続的に振動するため、ともt=0.5 -> 3.5ありt=3.7 -> 5.3ます。 、の間[l1, r1]で振動する2つのオブジェクトが与えられた[l2, r2]場合t、2つのオブジェクトが同じ位置を共有するような時間が存在するかどうかを判断します。l1, r1, l2, r2任意の便利な形式でテイクを作成し、真実/偽の値を出力します。 真実の入力: [[3, 6], [3, 6]] [[3, 6], [4, 8]] …
15 code-golf  array-manipulation  decision-problem  code-golf  math  number-theory  palindrome  integer-partitions  code-golf  math  decision-problem  geometry  code-golf  string  random  code-golf  ascii-art  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  code-golf  graphical-output  code-golf  number-theory  primes  integer  factoring  code-golf  sequence  array-manipulation  integer  code-golf  array-manipulation  matrix  code-golf  sequence  binary  code-golf  game  cellular-automata  game-of-life  binary-matrix  code-golf  string  ascii-art  code-golf  random  generation  logic  code-golf  string  code-golf  code-golf  sequence  array-manipulation  random  apl  code-golf  code-golf  sequence  primes  code-golf  math  sequence  integer  code-golf  number  arithmetic  array-manipulation  decision-problem  code-golf  ascii-art  number  code-golf  restricted-source  quine  code-golf  chess  board-game  code-golf  math  sequence  code-golf  number  sequence  kolmogorov-complexity  code-golf  number  sequence  arithmetic  code-golf  math  number  alphabet  code-golf  ascii-art  classification  statistics  apl  code-golf  array-manipulation  matrix  code-golf  string  kolmogorov-complexity  code-golf  sequence  binary  base-conversion  binary-matrix  code-golf  string  classification  code-golf  tips  python  code-golf  combinatorics  binary  subsequence  restricted-time  code-golf  number  number-theory  code-golf  math  number  complex-numbers  code-golf  string  code-golf  string  code-golf  string  random  game  king-of-the-hill  python  code-golf  number  sequence  code-golf  number  sequence  code-golf  code-golf  math  number  array-manipulation  code-golf  array-manipulation  decision-problem  code-golf  string  code-golf  sequence  integer 

14
[N]とM反復の再帰的に連結された累積和
2つの正の整数NをM取得し[N]、M反復での連結累積和を作成します。最後の反復の結果を出力します。 連結累積合計の定義: 数字Nから始めてシーケンスを定義するX = [N] 追加Xの累積和X 手順を2 M回繰り返します。 ベクトルの累積合計X = [x1, x2, x3, x4]は次のとおり[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]です。 例N = 1とM = 4: P =累積和関数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

15
三目並べ-XまたはO?
バックグラウンド Tic-Tac-Toeに慣れている場合は、「タスク」に進んでください(ほとんどの人はそう思います!) 三目並べは有名な二人用ゲームです。それは、2人のプレイヤーによって徐々に満たされる3x3ボードで構成されます(以下の説明)。最初のプレイヤーはキャラクターXを使用し、他のプレイヤーはを使用しますO。勝者は、水平、垂直、または斜めに3つの連続した同一の文字(XまたはO)を最初に獲得します。ボードがいっぱいになり、上記のように3人の連続キャラクターを獲得できなかった場合、ゲームは同点で終了します。プレーヤーのいずれかが合計9回未満の動きで勝った場合、ゲームの終わりに空のスポットがあるかもしれないことに注意してください(これはタイの場合には起こりえません)。 仕事 ゲームの終わりにTic-Tac-Toeボード(文字列、マトリックス、9つの順序付けられた値のフラットリスト、その他の適切な形式)が与えられたら、誰がゲームに勝つかを決定します。 入力は、一意の一貫した値で構成されますX。1つはO、もう1つは空のスポットを表します。 プログラムは、3つの異なる一貫した空でない値を出力できる必要があります。1つはX勝ち、もう1つは勝ち、もう1つOはプレイヤーが同点の場合です。 回答にこれらの値を指定してください。入力が有効なTic-Tac-Toeボードであると想定できます。 テストケース X、O、_ここで入力された値です。X wins、O winsおよびTieは出力用です。 X O X O X _ O _ X 出力:X wins。 X _ O X O _ X O X 出力:X wins。 X O X _ O X _ O _ 出力:O wins。 X O X O O …

1
チェッカーズ:キングミー?
チャレンジ: チェッカーボードが与えられた場合、可能な限り最小の動きを出力し(黒がまったく動かないと仮定して)、可能であれば赤の駒をキングします。 ルール: 赤の側は常に下になりますが、それらの駒はどの列からでも開始できます(王の列であっても到達する必要があります)。黒のピースは静止しているため、赤の動きの間に移動することはありませんが、キャプチャされるとボードから削除されます。ピースはボード上の任意のスペースで開始できることに注意してください。これは通常のチェッカーの再生方法ではありませんが、プログラムでこれらを解決できる必要があります。(入力5を参照)ただし、チェッカーピースは斜めにのみ移動する必要があります(入力3を参照)。最初のキャプチャーがチェーンの前方にある場合、逆方向キャプチャーが許可されます(入力7を参照)。 入力: ボードスペースが次の文字として定義されている8x8チェッカーボード(一貫性がある限り自由に代替を使用できます): 。- 空の R-赤いピース B-黒い部分 出力: ボードの一番上の列(黒の側)の王の列に入ることによって「王」になるために赤い駒が必要な動きの最小数。赤いピースをキングすることが不可能な場合は負の数(つまり、黒が最初の行全体を占める)。 入力1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …

25
チェッカーボード上のピースの数
前書き 通常のチェッカーボードには、8 x 8 = 64個の正方形が含まれています。 合計で、12個の白い部分があることがわかります。黒と白は常に同じ量のピースを持っています。ボード上にこれ以上ピースがある場合、ピースは隣接することになりますが、これはこのチャレンジでは許可されていません。物事を明確にするために、いくつかの例を示します。 このチャレンジで可能な最小のボードは3 x 3です。 ピースの最大量は2に等しいことがわかります。したがって、N = 3を指定した場合、2を出力する必要があります。入力がN = 4の場合、次の結果が得られます。 最大量も2であることがわかります。したがって、N = 4の場合、出力は2になります。以下のためにN = 5、出力は等しくなければならない5。 例 STDIN: 3 STDOUT: 2 STDIN: 4 STDOUT: 2 STDIN: 5 STDOUT: 5 STDIN: 6 STDOUT: 6 STDIN: 8 STDOUT: 12 ルール 提出は、1つの整数を取り、ボード上のピースの数を出力または返すプログラムまたは関数などでなければなりません。 入力が2以上の非負整数であると安全に仮定できます。 これはcode-golfなので、バイト数が最小のプログラムが勝ちです! ボードの左下の正方形は常に暗いことに注意してください。ピースは暗い正方形にのみ配置されます ピースで一列を占める必要があります

2
三目並べで負けない
(最良の戦略を使用する必要があるいくつかの課題が存在しますが、ここではそうではありません。たとえあなたが勝つことができたとしても、あなたはネクタイを作ることができます) チャレンジ ゲーム三目並べを再生するプログラムを作成します。負けてはいけません(したがって、引き分けか勝利によってゲームを終了する必要があります)。 許可されるI / Oメソッド 入力は現在のボードである可能性があります。2番目のプレーヤーの以前のすべての動きがエンジンでプレイされたと仮定できます。 入力は最初のプレーヤーの動きであり、関数は過去にどの動きが起こったかを保存します。この場合、関数は複数回呼び出されます(1回の移動ごとに1回)。または、複数回の機能/プログラムプロンプト入力。 あなたが最初のプレイヤーであるかどうかを追加で入力するか、最初のプレイヤーの問題と2番目のプレイヤーの問題を解決するための2つの(おそらく関連する)関数を書くことができます。プログラムでインプットメソッド2(複数呼び出し)を使用する必要がある場合、最初の呼び出しで何を渡すかを決定できます。 出力はあなたの番の後のボードかもしれません。 出力はあなたの動きかもしれません。 移動は、数値のペア(0インデックスまたは1インデックス)、0〜8の範囲の数値、または1〜9の範囲の数値として表すことができます。 ボードは、3×3配列、または長さ9の配列として表される場合があります。言語に0インデックス配列がある場合でも、1インデックスを使用できます。 グリッド上のセルは、3つの異なる値を使用してX、Oおよび空を示します。 受賞基準 各言語で最も短いコードが優先されます。

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