• 検索結果がありません。

対戦型2048プログラムの作成

N/A
N/A
Protected

Academic year: 2021

シェア "対戦型2048プログラムの作成"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

対戦型

2048

プログラムの作成

八木原 勇太

1,a) 概要:対戦型2048は、一人用のパズルゲームである2048のルールを変更し、二人用にした ものである。夏のプログラミング・シンポジウム2015で、対戦型2048のプログラム作成・ 対戦会が「お題」のひとつとして選ばれた。また、サンプルとしてMiniMaxPlayerという、 ミニマックス法を用いた対戦プログラムが提供されており、比較的単純なプログラムであり ながら高得点を安定して出す傾向がある。 一方、オリジナルルールの2048には、効率良く大きな数値のパネルを作るための戦略がい くつか知られている。そこで、サンプルプログラムのMiniMaxPlayerに既存の戦略を取る ようなロジックを組み込み、より強いプログラムの作成を試みた。 キーワード:夏のプログラミング・シンポジウム,対戦型2048

1.

対戦型 2048 のルール

対戦型2048は、一人用のパズルゲームである 2048[1]のルールを変更し、二人用にしたものであ る。数字の書かれたタイルを任意の位置に置ける ようにし、タイルを置く側を攻撃側、上下左右に タイルを動かす側を守備側とする。二人で攻撃・ 守備を1回ずつ行い、ゲームオーバー時点でのス コアの高い方を勝ちとする。

2.

人間がプレーする際の戦略

オリジナルルールの2048には、以下のような戦 略が知られている。 (1)数値の大きなタイルを上下左右いずれか一方 の端に降順に並べ、可能な限り動かさないで おく (2)数値の大きな同一のタイルが盤面上に複数存 在する場合は、速やかに合体させる 1 キヤノンソフトウェア株式会社 a) [email protected] 例えば1024を作るには512のタイルを2つ作 る必要があるが、512のタイル2つが離れ離れに なると、それらを合体させることは難しい。そこ で、2つ目の512を作成した直後に合体できるよう に、256を1つ目の512の隣の升で作成する。256 を作成するときも同様に作成直後合体できるよう、 128を256の隣の升で作成する。 このように逆算していくと、図1のように数値 の大きなタイルが降順に並んでいる形が理想の状 態になる。これが先に述べた戦略である。

3.

MiniMaxPlayer

の分析

MiniMaxPlayerは、ミニマックス法を使用した 対戦型2048のサンプルプログラムである。評価関 数としてスコア値をそのまま使用しており、2手 先まで先読みを行っている。 MiniMaxPlayerを守備側で動作させると、スコ ア値を高くするために、同数値のタイルをできる だけ合体させるように振舞う。つまり先に述べた 戦略(2)を行うが、戦略(1)のロジックは無いた

夏のプログラミング・シンポジウム「プログラム詠み会」 2015.9.4-6

33

(2)

1 1024のタイルの作成手順 め、最大数値のパネルが盤面中央を動き回ること が多い。最大数値のパネルは最優先で合体させて いるが、2番目・3番目のパネルは合体できずに盤 面に複数残ったままになっている状態がしばしば 見受けられる。 そこで、MiniMaxPlayerに戦略(1)を行うよう なロジックを加えることで、より強いプログラム になると考えた。

4.

プログラムの実装

MiniMaxPlayerの基本部分はそのまま流用し、 評価関数に「最大数値のタイルが四隅のいずれか にある場合は、その数値の2倍をスコアに加算す る」というロジックを加えた。この2倍という数 値に特に根拠は無いが、元のMiniMaxPlayerと変 更後のプログラムで数値を変えながら何度か対戦 させ、スコアが良かったときの値を採用した。 戦略(1)のロジックとしてはまだ不十分である が、シンポジウム期間内に実装することはできな かった。また、攻撃側の改善は特に何もできず、 四隅に最大数値のタイルを置くスタイル以外の 相手に対してはこのロジックは全く意味が無い (MiniMaxPlayerとほぼ同じ動作になる)。 二日目に行われた対戦会では、寺田先生のプロ グラムに僅差で勝利し、準優勝することができた。

5.

まとめ

オリジナルルールの2048で用いられている戦略 を対戦型2048に(部分的に)適用した。まだ実装 は不完全で十分な検証もできていないが、大きく 間違ってはいないと考えられる。 謝辞 対戦型2048ルールの考案および対戦サー バをご提供いただいた寺田先生に感謝いたします。 参考文献 [1] Gabriele Cirulli, 2048, http://gabrielecirulli.github.io/2048

夏のプログラミング・シンポジウム「プログラム詠み会」 2015.9.4-6

34

図 1 1024 のタイルの作成手順 め、最大数値のパネルが盤面中央を動き回ること が多い。最大数値のパネルは最優先で合体させて いるが、 2 番目・ 3 番目のパネルは合体できずに盤 面に複数残ったままになっている状態がしばしば 見受けられる。 そこで、 MiniMaxPlayer に戦略 (1) を行うよう なロジックを加えることで、より強いプログラム になると考えた。 4

参照

関連したドキュメント

(2)施設一体型小中一貫校の候補校        施設一体型小中一貫校の対象となる学校の選定にあたっては、平成 26 年 3

に文化庁が策定した「文化財活用・理解促進戦略プログラム 2020 」では、文化財を貴重 な地域・観光資源として活用するための取組みとして、平成 32

つまり、p 型の語が p 型の語を修飾するという関係になっている。しかし、p 型の語同士の Merge

借受人は、第 18

また、当会の理事である近畿大学の山口健太郎先生より「新型コロナウイルスに対する感染防止 対策に関する実態調査」 を全国のホームホスピスへ 6 月に実施、 正会員

スピーカは「プラントの状況(現状)」「進展予測,復旧戦術」「戦術の進捗状 況」について,見直した 3 種類の

積極的一般予防は,この観点で不法な犯行に対する反作用の説明原則をな

 かつての広葉樹は薪炭林としての活用が主で、20〜40年の周期