2015-11-19 85 views
0

我正在研究一個穿越迷宮的程序。我堅持我的邏輯,我想創建一個簡單的if語句來比較我的當前位置下面的字符是'#'(牆)還是'。'。 (可用空間)。我知道沒有比較原始類型的真正方法,但我需要幫助解決方案,所以我不會再繼續盯着這個小時。我想過使用ASCII值,但我不太確定這是否適用於2d int數組。任何幫助。謝謝!編輯: 下面是我所遍歷的迷宮。我想我不清楚我的意圖。我想比較一下,看看我當前的座標(這將是一個int [row] [col])到'#'或'。'的迷宮片段。比較2d int數組與字符的最佳方法?

# # # # # # # # # # # # 
# . . . # . . . . . . # 
. . # . # . # # # # . # 
# # # . # . . . . # . # 
# . . . . # # # . # . . 
# # # # . # . # . # . # 
# . . # . # . # . # . # 
# # . # . # . # . # . # 
# . . . . . . . . # . # 
# # # # # # . # # # . # 
# . . . . . . # . . . # 
# # # # # # # # # # # # 
+0

所以你的2d int數組保存各種字符的ASCII值?我們可以看到2d int數組是什麼樣子的例子嗎? – gonzo

+0

爲什麼不使用2d字符數組,而不是如果你存儲的是實際的字符? – whaleberg

+0

是什麼讓你認爲你不能比較不同基元類型的變量? –

回答

1

我不明白你的問題。您發佈的代碼絕對沒問題。比較兩種物品是你可以做的最基本的事情,沒有什麼不好的。 可以比較charbyteshortintlongdoublefloat==沒有任何問題。 char是內部編號。即使是這樣的絕對是可能的:

int i = 20 + 'A'; // Will be 85 as 'A' has the value 65 in ASCII 
char c = 'A' + 2; // Will be 'C' or 67 (position of C in ASCII) 
if(c == '#') { /* Do something */ } // Will execute if c is # 

您是不是要找你不應該用==比較對象呢?因爲這不會像你所期望的那樣。