💬

10/24 コンピュータ対戦をつくるには

2022/10/24に公開

全体のながれ

コンピュータ対戦を作るには

ルール
○が人間で始まったら✕はコンピュータ
そのゲームが終わり次のゲームに進むとき(勝負がつくまたは引き分け)は
次は○がコンピュータで✕は人間
と、順番を入れ替える

どちらの順なのかを制御する

Form1クラスとDocumentクラス、どちらで制御するのか考えてみよう。

これまでも、Form1クラスは表現・表示する役割、Documentクラスは「ボードの状態を記憶」や「○✕順の記憶」をしていることから、今回も、どちら側からスタートするかを表示するのはForm1クラス、どちら側の順からスタートするのかを記憶しているのがDocumentクラスとします。

人間かコンピュータかの状態を覚えるならbool型の変数をDocumentに用意して、覚えておくのがよい。
それを表示するのはForm1クラスの方。
よって、Documentクラス側に、どちら側の順番なのかを他のクラスに教える関数が必要。

【実習】

Document側にどちら側か覚えるbool型の変数、bool bTurnを作り、その値を公開するgetTurn関数を作りましょう。
Form1の上に
○はあなたの番です か ○はコンピュータの番です 
を、表示しましょう。

Discussion