2012-11-07 23 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「',但也許這太荒謬了。 –