2015-11-19 49 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 # 

您是不是要找你不应该用==比较对象呢?因为这不会像你所期望的那样。