ピースの基本クラスがあります
class piece;
および派生オブジェクトを含む配列
piece* board[8][8];
仮想機能による利点、クリーンなデザイン。欠点は、ボード内のピースを見つけたり、ピースを比較したりする必要がある場合、動的キャスト (または typeid) に戻さなければならないことです。これは醜く、何百万ものリクエストを行うとパフォーマンスが低下する可能性があります。
一方、ピースを識別するためのタイプフィールドを持つ単一ピースクラスの配列を作成すると、この問題は発生しません (そして、より高速になるはずです) が、非常に醜い switch ステートメントを作成する必要があります。ピースの数は有限であり、私自身がそれほど多くの切り替えを行っているとは思わないので、最終的にはこれがより良い選択になる可能性があると思いますが、どう思いますか?
これは楽しみのためです(ビットボードはありません)。
==
いくつかの回答を読んで、演算子のオーバーロード ( 、!=
、 ...) にのみ型フィールドを使用すると、両方の単語を最大限に活用できると思います。
boost::variant
見た目もとても面白いです。