回答編集履歴
1
盤全体を走査する必要がないことについて詳細を追加
answer
CHANGED
@@ -23,4 +23,12 @@
|
|
23
23
|
|
24
24
|
----
|
25
25
|
|
26
|
-
質問の趣旨から外れた余談ですが、質問の事例がいわゆる五目並べ (交互に一手づつ石を置く) なのだとしたら今打った石を含む並びだけチェックすれば良く、盤全体を走査する必要はありません。
|
26
|
+
質問の趣旨から外れた余談ですが、質問の事例がいわゆる五目並べ (交互に一手づつ石を置く) なのだとしたら今打った石を含む並びだけチェックすれば良く、盤全体を走査する必要はありません。
|
27
|
+
|
28
|
+
今打った石を `@` で表すとすると下図の青塗りの範囲だけ調べて五個以上が並んでいるかを調べれば十分です。
|
29
|
+
|
30
|
+

|
31
|
+
|
32
|
+
今打った手を含まない部分で五個の並びが無いことは過去の手番におけるチェックでわかっているからです。
|
33
|
+
|
34
|
+
プログラム的にはチェック以外の部分も少し構成を変更する必要がありますのでここではコードは示しません。 質問者がこの考え方を元に記述を試みた上でどうしてもわからないところがあるようなら別の質問として投稿してください。
|