2012-04-01 11 views
0

私は割り当てられていて、アルゴリズムに関するいくつかのポインタが必要でした。 異なるイメージを表すテキストファイルが表示されます。空白はピクセルがオンになっていない場所で、 '&'はオンピクセルを表します。ファイル文字解析を実装する

目的は、100x100のイメージテキストファイルを与えて、オブジェクトがそこにある確率を分析し、それがファイル上のどこの座標であるかを計算することです。

私はある種の文字分析を使用する必要があることを知っていますが、私は一度に10x10グリッドを確認し、いくつのピクセルがあるかを分析し、オブジェクトがそこにあることを確かめなければならないと感じます。 (これは、多かれ少なかれピクセルがオンになり、オブジェクトがまだ存在するためです)

ありがとうございます。

+0

「オブジェクト」とは何ですか? –

+0

ピクセル上に&文字で構成される小さい画像 – user1306387

答えて

0

私はあなたの質問を正しく理解していると思います。答えを変える一つのことは、あらかじめオブジェクトを知っているかどうかです。あなたが任意のパターンを探しているなら、やや困難ですが、まだ実行可能です。何がどのように見えるかを知るオブジェクトを見つけるには、ループのために入れ子になり、2D配列をしっかりと理解する必要があります。テキストファイルの各行を引っ張って '&'を検索することができます。 1つを見つけたら、それは最初の '&'に相対的な位置に基づいて残りのパターンを探し始めます。

たとえば、左上から右下に対角線を検索する場合は、最初の「&」になるまで続けます。その後、セルを1列上と1行下に見ます。それがアンパサンドでもある場合は、対角線があることがわかります。そうでない場合は、最初の '&'の後に続けてください。

for (int c = 0; c < textArray.length; c++) 
{ 
    for (int i = 0; i < textArray[c].length; i++) 
    { 
     Look at the character 
     If it is '&' 
      Look for the next character and so forth 
      If the pattern is there 
       return true 
    } 
} 

アルゴリズムがローリングするのに役立つかどうかを確認してください。境界外の例外と戦うためには、配列内の有効な境界を確認する必要があります。

+0

これで、ファイルの内容が2D配列に格納されるようになりました。私が今問題になっているのは、100x100アレイで10x10の正方形をどのようにチェックできるかを試してみることです。問題は各ブロックについていく方法です。ありがとう – user1306387

+0

Okだから擬似コードは次のようになります: 10000文字の空白文字を含むファイルを読み込みます一部および(100x100) ループを使用して特定のパターンのオブジェクトが存在するかどうかを調べる 座標を 私は本当にこの問題に進む方法を理解できません、私のループはこのようです: 'code' for(int i = 0; i user1306387

+0

私はあなたの割合を心配する必要はありません。このアプリケーションでは、どちらかがパターンであるか、そうではありません。基本的に、 '&'が見つかった場合は、パターンの次の '&'がどこにあるのかを調べます。それもあれば、3番目の '&'を探してください。そうでなければ、それはパターンではないことを知っているので、普通のように見える。また、質問を編集し、得たコードや擬似コードを含めることもできます。それはコメントに詰め込まれていないときにそれを見ることははるかに簡単です。あなたはうまくやっている、ちょうど行くよ! – Gilbrilthor