dポイントプレゼントキャンペーン実施中!

五目並べで
5つ並べば1を返すプログラムを組みたいのですが
どのようにすればいいのかわかりません
N[8][8]=1のとき黒、=2のとき白と設定して碁盤を組んでます
よろしくお願いします

A 回答 (2件)

五目並べプログラムには、



 ・禁じ手などを考慮した黒(白)の「手を思考する」部分。
 ・手順毎に、勝敗(5つ並んだか)を「判定する」部分。

が必要と思います。

>5つ並べば1を返すプログラムを組みたいのですが、どのようにすればいいのかわかりません

 ・黒白の手順が一手一手進む中で「5つ並べば」、という「判定する」部分ですね。

(手の思考を経て)手順が進んでいる → 「手を思考する」部分はできている。
-------------------------------------
「手を思考する」部分には、「ここに打てば○つ並ぶ」という思考部分がありますよね。

★そこの○を5にしたものを、「判定する」部分に流用するだけ、と思いますが・・。

てか、「手を思考する」部分ができていれば、今回の質問は発生しなかったはず・・。

う~ん、質問主旨が判らなくなってきた。
-------------------------------------
《具体的に書かれた部分を基に、「補足」をお願いします》

>N[8][8]=1のとき黒、=2のとき白と設定して碁盤を組んでます

 ・なにを「基」として、= 1 や = 2 になるのですか?。
 ・「碁盤を組んで」とは、「手順を進めて」のことですか?。
 ・碁盤は、何路盤ですか?(0~8の9路盤?)。
    • good
    • 3

わからないのはどの部分でしょうか。


単純に「同じ値がn個並んでいるか確認」という処理を考えればよいです。
以下には両方を同時に行う処理概要を記載していますが、「白だけ」「黒だけ」を確認する処理であれば比較的簡単にできます。

>=1のとき黒、=2のとき白と設定
では足りないので、
a.マスに碁を置いていない時を「0」とする。
b.比較対照の初期値として「0」を入れておく。
c.並んでいる数のカウンタ(count)を0にしておく。
d.横一列(縦一列)を最初から最後まで見ていく。
 →比較対照とN[][]の値が一致しなかったら、N[][]の値を比較対照に代入し、countを1にする。
  (0の場合は比較対象外のためカウントしない)
 →比較対象の値とN[][]の値が「0以外で」一致したらcountを+1する。
  →countが5になったら終了し、比較対照に入れている値を返す(これで、ついでに黒/白の判定もできる)
e.d.を縦一列(横一列)分繰り返す。
f.同様に、斜め(左上~右下、左下~右上)についても行う。
g.5個連続でなければ0(五つ並んでいない)を返して終了。

#
斜めについてはあえて書きません。
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!