2012-04-30 11 views
2

私は鉱山を開発しており、鉱山を割り当てていますが、鉱山が既に鉱山のある場所に行くのを防ぐアルゴリズムを作成することはできません。これまで:VB.NETの位置確認

ます。Public Sub initflags()

Dim line, column As Integer 
    For line = 0 To 9 
     For column = 0 To 9 
      mat(line, column) = 0 
     Next 
    Next 
    Dim numbandeiras As Integer 
    Dim r, c As Integer 

    Do Until numbandeiras = 34 



     Randomize() 

     line = Int(Rnd() * 10) 
     column = Int(Rnd() * 10) 
     r = line 
     c = column 
     If r And c = 1 Then 


      mat(line, column) = 0 
     Else 
      numbandeiras = numbandeiras + 1 

      Call avisinhos() 

      mat(line, column) = 1 
     End If 


    Loop 

End Sub 

は、誰かが私を助けてもらえますか? よろしくお願いします。

+0

まず.NETは高度に「オブジェクト指向」です。だから、あなたは「Mine」クラスを作成する必要があります。この鉱山クラスには、グリッドマトリックス内の位置と 'myMine.isSet(x、y)as boolean'などのプロパティが含まれます。関数wocoultuldはあなたのグリッドから2つのパラマットxとyをとり、その鉱山(またはあなたの鉱山の 'List Collection'または' stack'を望むなら、他のもの)がそのX、Y内に存在する場合にtrueまたはfalseを返します座標。さもなければスパゲッティコードで終わり、それを更新しようとするか、エンハンスすると完全な悪夢になるでしょう。 – ppumkin

答えて

1

最も簡単な方法は、例えば、設定する前にチェックすることです:

if mat(line, column) = 0 then 
    numbandeiras = numbandeiras + 1 

    avisinhos() 

    mat(line, column) = 1 
end if 
+0

はい、ありがとう、それは働いた;) – joao

0

あなたはいくつかの並べ替えのアレイ内のすべての配置「地雷」を格納する必要があります。あなたがそれらの鉱山で何かをしたいなら、これは最終的には良いです。あなたが鉱山をオブジェクトとして持っていれば、彼らはもっと良いものになります。今は死んでいるか、生きているか、 "?" MSのようなバージョン。

ちょうど私の2セントです。

関連する問題