近年、様々な子どものためのプログラミング教材・プラットフォームが開発されています。プログラミングは自分の思考をコンピュータに理解できる形に言語化するいいトレーニング機会ですが、十分に思考をアウトプットできるようになるために必要な文法や環境構築に十分な時間をかける必要があります。そこで、リバーシというゲームの人工知能を構築・強化するという教材を開発しました。 本プログラムではリバーシを実際に対戦することで、自分の中の思考を明確化させ、Javascriptという広く実用されている言語をそのまま用いて、その思考を言語化します。また、各々が作成した人工知能同士を対戦させることで、実装のフィードバックを得ながらさらなる強化を試行錯誤していきます。
以下にワークショップで使うプログラムのサンプルを掲載しています。
学生はこの中の「自分のAI」を少しずつ改善していくことで強いプログラム作りを目指します。 例えば高校生が30分程度で調整した例として以下のようなものがあります。Factor_NumOfDiscs = 2.0 var eval_board = [ [ 10, 1, 4, 4, 1, 10,], [ 1, 1, 5, 5, 1, 1,], [ 4, 5, 6, 6, 5, 4,], [ 4, 5, 6, 6, 5, 4,], [ 1, 1, 5, 5, 1, 1,], [ 10, 1, 4, 4, 1, 10,], ];この場合だと、隅を重要視して、その周辺の評価値を下げるというアイデアに到達していることが分かります。また Factor_NumOfDiscsについては序盤・中盤は小さいほうが筋よく打つが、最終盤は多く返したほしいため、そのバランスを加味して2.0という値に調整しています。
2018年3月20日に広尾学園で約30名の学生を対象に本プログラムを用いた2時間の講座を行いました。2名ペアの作業を行い全部で14個のプログラムができ、最後に500回の総当たり戦を行いました。以下の図はその時の結果でそれぞれの組み合わせに対する勝率(行が黒、列が白番)とイロレーティングを表示しています。参考にCPU2~6も参戦しています。学生が作ったプログラムはおよそ600~1100にレーティングが推移しており、それぞれの30分程度の最適化によって強さや相性に違いがでていることがわかります。
本講座においてアンケートで以下のようなフィードバックが得られました。
オセロ連盟、メガハウス、ニチガスの協力・後援をうけて、ニチガス 本社会議室で『リバーシ×プログラミング』として小中学生の親子10組を対象に行いました。 詳しくは コエテコの記事でレポートされています。
Kodoキッズステーションのオンラインプログラミング合宿としてリバーシ×プログラミングを各教室・自宅をつなぎオンラインで行いました。 Kodoキッズステーションでレポートされています。