2012-05-01 82 views
1

所以我正在開發一個掃雷遊戲和IM分配的地雷,但我一定要檢查到哪裏都是在煤礦開始,以產生的數字。問題是,當我驗證列和線時,我需要程序不要退出遊戲領域。驗證Gamefield VB.NET

這裏是我的代碼看起來像現在:

Public Sub avisinhos(ByVal line, ByVal column) 
    If mat(line, column) = 0 Then 
     mat(line, column) = -1 
     numbandeiras = numbandeiras + 1 
    End If 
    For auxlinha = -1 To 1 
     For auxcolumn = -1 To 1 

     Next 
    Next 
End Sub 

如何創建一個IF函數來驗證我沒有走出遊戲領域的? 最好的問候,joao。

回答

1

僞代碼

int linestart = -1; 
int lineend = 1; 
int colstart = -1; 
int colend = 1; 

Assuming a 10 x 10 grid (zero based) 

if line < 2 linestart = 0 
if line > 8 lineend = 0 
if column < 2 colstart = 0 
if column > 8 colend = 0 

For auxlinha = linestart To lineend 
    For auxcolumn = colstart To colend 
    // check 
    Next  
Next 

個人雖然我不會與循環打擾,他們增加極少沒什麼

HasMineAbove =(行> 1)和(gamefield [-1行,列] = MinePresentValue

將是我的做法,這樣做的盡在其中。

且不說巨大的潛在的混亂時auxlinha和auxcolumn均爲零...

+0

非常感謝,我會盡力實現它。 – joao

1

我不知道到底是什麼代碼在說什麼。由於您使用縮寫和所有小寫名稱,所以這有點神祕。你可能想更全面地嘗試駝峯規則和拼寫出來的話,智能感知是你的朋友。 =)

但編碼風格不談,如果通過值範圍有限的嘗試循環,可以保持使用模運算符(%)的界限值。例如,如果需要讓你0-7之間的值和你最終值12,只取8〜環模量回範圍內爲4值:

12 % 8 = 4 
9 % 8 = 1 
15 % 8 = 7 
24 % 8 = 0 

我意識到這並不能回答你的具體問題,但這是一個方便的技術可能會發現有用的。

+0

是啊,儘管它沒有直接回答我的問題,它可以幫助我一些其他的編碼,編碼風格的提示將是有用的,所以謝謝你。問候,joao。 – joao

+0

我很高興我能幫上忙。 =) – BlazeCell