質問: ### 前提・実現したいこと 私はWPF(C#)でオセロを開発しています。 しかし、作成していく中でオセロの駒を返す動作の作り方や考え方が分からなくなってしまい詰まってしまいました。 どうか、考え方をご教授してくださいませんでしょうか? ### 発生している問題・エラーメッセージ ``` エラーメッセージ ``` ### 該当のソースコード ``` ここにご自身が実行したソースコードを書いてください ``` ### 試したこと 駒の配置は、1個ずつブロックで配置しました。 ### 補足情報(言語/FW/ツール等のバージョンなど) C#で作成しています。
回答: 基本中の基本の考え方から説明します。 仕様をコードに落とし込んでいくときに、 最低限どんな情報があれば成立するのか、**抽象化**します。 現実世界のリバーシには、盤や駒の材質や重さなどもありますが、 駒の8×8の**位置**と、白か黒かの色、より本質的には、 先手後手の**先後**の情報だけあればゲームは成立します。 そこで、プログラムでその情報を表現することを考えます。 さしあたり、**配列**にするのが一番シンプルでしょう。 **二次元配列**で、白、黒、未配置、の3つの値を持たせます。 そして、次に打ちたい場所が未配置なら打てるとか、 ひっくり返せる駒を調べるなど、リバーシの操作はどれも、 この**配列とIF文の分岐とFor文の繰り返し**で実現できます。 なお、長くなるので省略しますが、オブジェクト指向で組むなら、 ひとつの駒をひとつのオブジェクトにするような組み方も可能です。