Arantium Maestum

プログラミング、囲碁、読書の話題

Clojureで囲碁対局サイトを作ってみたい

Clojureで中規模なWebアプリ開発を個人プロジェクトとしてやってみたい。中規模のイメージとしてはTODOアプリ以上、eコマースサイト(これって死語?)未満。

というわけで、囲碁対局サイトを作ってみようと思う。

データベースは当然として、ユーザ認証、ウェブソケット、Clojurescriptを使った動的なフロントエンドあたりを盛り込んでいく。

LuminusやArachneのような、複数のライブラリを統合するようなフレームワークは極力使わず、ある程度低レベルなライブラリをいじりながら作る。

とりあえず使うのがほぼ決定なライブラリとしてはring, compojure, hiccup, garden, reagentあたり。re-frameはどうしよう。web socketはsenteを使うのもアリか。デプロイはとりあえずHerokuかなぁ。

作りたいものを思いつくままにとりあえず書き出してみると:

  • 現在進行中の対局リスト
  • 現在参加可能な対局リスト
  • ログイン中のユーザリスト
  • ユーザに対する対局申し込みと承認・拒否
  • 対局ボードの対局・閲覧モード
  • 終局後の判定システム
  • 対局中・感想戦用のコメントシステム
  • 過去の棋譜のログ閲覧とエキスポート機能
  • 各種AI(まあ初めはGNU GoとFuegoあたり)の追加
  • 自分の対局成績の閲覧と分析
  • バイル対応のレスポンシブデザイン(スマホだとタップ一回はズームとか?)

あとは自分でAI実装してみたり、詰碁やらの問題集機能をつけてみたり、と色々やれることは多そう。

まあボード実装してオープンソースAIにつなげればとりあえずは自分で使えるようになるから、そうやってモチベーションを維持してぼちぼちと進めていこう。進めていければいいな。