2012-11-07 26 views
1

我需要帮助试图生成的2D阵列(20×20网格)与0和X的2D阵列。我稍后将用图像替换这些以构建一些地图/网格。但我只需要用字符而不是整数来填充它们。C++生成具有0和X的

我有这个至今:

char array[20][20]; 

srand(time(NULL)); 

for(int i=0;i<20;i++) 
{ 
    for(int j=0;j<20;j++) { 
     array[i][j]= ((rand() % 2) == 0) ? 'O' : 'X'; 
    } 
} 

我不知道这是否格式正确,因为代码的事是古怪的我,但如果我有这个权利。当我运行它时,我该如何打印? 我无法测试它,因为我不知道如何打印出来:/ 但是我觉得我总是有错。

编辑 然后,我还需要知道如何垂直交换多维数组...仍然保持相同的值/网格设置,但基本上只是垂直反映它。没有水平,但..

+0

看起来是正确的,你可以使用std :: cout << array [i] [j]打印出来;在内部循环内部,然后在外部循环内部,你可以执行std :: cout << std :: endl;换行。 –

回答

2

你生成部分权利。至于打印,使用

for(int i = 0; i < 20; ++i) 
{ 
    for(int j = 0; j < 20; ++j) 
    { 
     std::cout << array[i][j]; 
    } 
    std::cout << "\n"; 
} 
+0

打败我吧。另外(为了OP的好处),您可以在构建它们时打印出线条。不需要单独的循环。 – John

+0

你知道你现在怎么翻转吗? xD保持相同的字母和一切?就像你会如何翻转它的纵轴? – Peanut

+0

最后我会用'std :: endl'替代''\ n“',但也许这太荒谬了。 –