スマレジエンジニアyushiのブログ

スマレジエンジニアのブログ

【将棋盤 第10回】今後実装したい機能を考える

コツコツ将棋盤を作ってます。

使用技術

  • Vue.js3
  • Vite
  • SCSS

yushi-dev.hatenablog.com

公開ページ

https://nek0meshi.github.io/shogi-board/

だんだんそれっぽく動くようになってきたので、今回は今後実装したい機能を書き出してみました。

今後について

将棋盤を過去9回に渡って作ってきました。

まだ完成には程遠いものの、なんとなくそれっぽく動くようになってきており、 主だった目標だったComposition APIの利用も一応は果たしました。

というところで、今回は改めて、今後何を実装していきたいかを考え直すことにしました。

githubのissueにも書き出しています。

https://github.com/nek0meshi/shogi-board/labels/enhancement

将棋のルールを実現するために、最低限必要な機能

実のところ、そもそも将棋のルールがまだ最低限も実現しきれていません。

  • 勝敗判定
  • 歩・香・桂は、前に進めるマスにしかおけない
  • 二歩
  • 千日手
  • 入玉による勝敗判定

この辺りは最低限ですが、結構大変になりそうです。

棋譜・履歴管理

今の所は一度指したら「戻る」とかができないです。操作ミスなどもありえますし、これは入れておきたい機能です。

関連して、棋譜データの入出力・再現の機能が欲しいです。

棋譜とは、将棋の指し始めから終わりの記録のことです。これについては一般的なフォーマットがあるようです。

今は現在の駒の情報しか管理できていないですが、棋譜をベースに、一局の好きな時点をいつでも再現できるようにしたいなと思います。

UI/UXの改善

これについてはいくらでも改善の余地があるのだと思います。

具体的な例としては、Drag & Dropで駒を動かせるようにする、とかでしょうか。

コンピュータ対局機能

せっかくなのでこんな機能ができたら嬉しいです。

強いコンピュータを作るにはあまりにも知識が足りません。

しかし最低限でいうと、合法手(ルールに則った指し方)をランダムで指すだけでも、自動で対局できる機能は作れるはずです。

これくらいはやってみたいなと思います。

まとめ

ちょっと満足してしまってもいたんですが、改めて書き出してみると実現できていない機能がたくさんありました。

のんびり作業を進めていこうと思います。