Pythonプログラミングで

リバーシを作る

Stage 5 石を裏返す機能を実装する

5-1 石を裏返す機能をデザインする

みなさんお待ちかね、石を裏返す機能です。

いよっ、待ってました!!

お世辞はその辺にしていただいて、早速デザインしていきましょう。とりあえず今のところ我々が使えそうなカードは turnjudge がメインです。

~~~~~~~~~~~~~~~

では turnjudge をどう使えば石を裏返せるでしょうかね。

それがわかんねーからこれ見てんだよ

まあその通りなのですが、とりあえず turnjudge がどういうメソッドだったか思い出してみましょう。

あれって「[row, col] のマスに石を置いたら direction の方向に石を裏返すことができるか」を判断するメソッドでしたよね。ということは、実はまだ [row, col] のマスに石を置けるか確認してないんですよ。

へ?

例えばこんな場合考えてみてください。

UNAVAILABLE

この状態で黒が f5 のマスに石を置こうとしているとします。置けますか?

おけるよそりゃ

では turnjudge(player=BLACK, row=5-1, col=f-1, direction=[-1, 0]) ってしたらどうでしょう?ちなみに [-1, 0] って上方向ですよ。

False 出てくるな

ということで、まずは「石を置くことができるか判別する」機能を搭載してあげなければいけませんね。

~~~~~~~~~~~~~~~

石が置けるとわかったら、turnjudge が True と言っている方向の相手の石を裏返します。これは普通に while ループで「自分の石にぶつからない間は裏返す」ってしておけばいいんじゃないでしょうか。

テキトーやな

いいんですよ。今回はまだ着想段階ですから。次回しっかりコーディングしますので、その時にちゃんと考えましょう。

NEXT 5-2 石を裏返す機能を実装する