2016-05-10 8 views
-5

を検索:クロスワードのC# - algorthmは、私がこの条件にC#でクロスワードをプログラムしたい

  1. 言葉を繰り返すことはできません。
  2. 単語は水平に配置できますが、左から右にのみ実行できます。
  3. 単語は垂直に配置できますが、高から低までしか実行できません。
  4. 水平ワードは、1つ以上の垂直ワードと交差する必要があります。
  5. 縦の単語は、1つ以上の横の単語と交差する必要があります。
  6. 各単語はスペースまたはグリッドエッジで区切る必要があります。

フィールドサイズは指定されていません。単語リストを考慮すると、アルゴリズムは最良のクロスワード出力を見つけ、フィールドサイズは最小にすべきである。私の問題は変数のフィールドサイズです。どのようにアルゴリズムがどのように見えるかを考えてみましょう。

+0

の前に何かを試してみて、あなたは具体的な問題を抱えているときに掲示ここに頼みますコード。 http://stackoverflow.com/help/how-to-ask – Gusman

答えて

-1

これは非常に広い質問です。私は、ソリューションのコーディングを開始する前に、設計について考えておく必要があると思います。あなたが解決する必要があります

いくつかの可能なサブ問題:

  1. あなたは、あなた自身を作るか、またはオンラインから何かを使用しますが、単語の一部のデータストアが必要になりますか?
  2. これらの単語の中の文字を確認するためには、単語が共通の文字を持つようにする必要があります。
  3. 単語の長さを測定し、互いの上を行き来する(交差しない限り!)か、画面内に収まるようにする。有効であることを確認するたびにこれらのルールを再テストする必要があります
  4. グリッドをnxn配列として保存することができます。対角線を使用しないでください。
  5. 単語を左から右に、または上から下に移動するには、開始文字のインデックスが必ず末尾の文字より小さいことを確認する必要があります。
  6. おそらく、また、グリッド全体での単語のさえ間隔があることを確認するために、行ごとに単語や列の数を格納する必要があります
+0

説明なしでdownvoteをありがとう、常に貴重です。 – dahui

関連する問題