読者です 読者をやめる 読者になる 読者になる

pgkuroneru’s MEMO

プログラミングで躓いたことなどについて記録していくブログ

Javaでリバーシのプログラムを作ってみる(1)

学校の課外活動にて、将来的にチームで何か作っていくにあたって、まずは一人一人でプログラムを組んでみようということになり、リバーシのプログラムを作ってみることになりました。

2017/5/21 追記 (1)と(2)の記事を統合しました。

今回作る予定のプログラムについて

大まかな概要

  • 今回は「Java」で開発します。
  • コマンドライン上で動かすシンプルなプログラム。(GUIは利用しません)
  • オブジェクト指向に沿った開発をしてみる。
  • AI(コンピュータ対戦)は、まずは搭載しない状態から始めます。(つまり簡単に言うと、AさんとBさんが、同じ画面上で交互に入力するということです。)
  • 将来的にはAIも搭載してみたい。

開発前の疑問点など

リバーシのプログラムを書いていくにあたって、事前に疑問に思っている点や悩んでいる点を、後々のためにまとめておきます。

  • 石を打った後、石を裏返す動作はどう実装するのか?
  • コマンドラインの場合、入力や実装はどう実装するか?

と書いたところ、2つぐらいしか思いつかなかった・・・。後々作っている際に色々調べつつ、作っていくことになりそうですね・・・。

購入した本

今回、リバーシのプログラムを作るにあたって、まずはサンプルを見てから自分で組むのが良いだろうかと思い、参考書を購入しました。

(1): リバーシのアルゴリズム C++&Java対応―「探索アルゴリズム」「評価関数」の設計と実装

実際にJavaでリバーシのプログラムを作ってみようか、となった時に、Amazonで調べた時に見つけたのがこの本です。

リバーシのアルゴリズム C++&Java対応―「探索アルゴリズム」「評価関数」の設計と実装 (I・O BOOKS)

リバーシのアルゴリズム C++&Java対応―「探索アルゴリズム」「評価関数」の設計と実装 (I・O BOOKS)

発行年こそ10年以上前のものですが、サンプルのプログラムも最新の環境(Windows 10)で問題なく動作したのでホッとしています。(若干処理が重たい気もしましたが・・・。)

(2): なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング

また、今回はオブジェクト指向に沿ってリバーシのプログラムを作るということで、個人的に分かりやすそうと感じた、こちらの本も購入しました。

なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング

なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング

こちらが迷った1冊です。どちらの本も少しだけ中を覗くことが出来ます。

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

2つの本の違いについては、「ASCII.jp:n冊目に読むならどのJava本?(n > 1)|最強のJava入門書はどれか?(2016年秋)」の記事中でも述べられていますので、是非参考にしてみて下さい。

まとめ

今まで基礎的なところを学習してきたものの、実践的なことが何も出来ていなかったので、今回Androidアプリ開発と同時並行で作っていく予定です。 また、タイトルが、「Javaでリバーシのプログラムを作ってみる(1)」と連載のような体裁となっていますが・・・、もしかしたらかなり変則的な記事内容になるかもしれません。 では、次回からリバーシの形を作っていきたいと思います。

tech.pgkuroneru.net