2011-03-02 44 views
0

我需要幫助/提示在C.製作一個簡單的棋盤

打印棋盤我想打印一個4x4的棋盤是這樣的:

+----+ 
| | 
| | 
| | 
+----+ 

當然那是隻有1x1的,但我不知道如何做一個4x4的。

我知道我必須使用某種嵌套for循環來做到這一點。我也必須將它存儲在一個數組中。所有我是這樣的:

#include <stdio.h> 
#include <string.h> 

char board[4][4]; 

int main() { 

    for (int i = 0; i < 4; i++) { 
     for (j = 0; j < 4; j++) { 
      board[i][j] = 
     } 
    } 

我不知道我怎麼會去在板上存儲一個1x1盒[1] [1],然後再在板[2] [2] ...你得到的想法...你們可以請幫助我如何做到這一點?

在此先感謝!

+1

你只是想打印出網格,還是將它存儲爲值? – Rob 2011-03-02 05:25:26

+0

@Rob我想打印網格,但也將其存儲在數組中。 這只是我正在開發的一個程序的一部分,所以如果我要實現一個控制檯輸入,並把它放到板子上[2] [2],你知道我的意思嗎? – Watabou 2011-03-02 05:29:13

+0

你的數組是[4] [4],但你會引用從0到4的'i'和'j'值,這會推動你越過數組邊界,所以你會寫入內存中擁有。 – fbrereto 2011-03-02 05:35:41

回答

2

考慮,對於每一行,你將打印+,然後每列----+(或|和空格):

+----+----+----+ ... ----+ 
| | | | ...  | 
. 
. 
. 
| | | | ...  | 
+----+----+----+ ... ----+ 
| | | | ...  | 

等。

還要考慮是否需要存儲板狀態板畫在你的陣列。董事會的狀態將更容易分析(並使用更少的內存)。當您需要「漂亮地打印」電路板時,可以從生成電路板狀態陣列的圖形

+0

好的,我該怎麼辦? – Watabou 2011-03-02 05:48:25

+0

哦,我想存儲板狀態。這是因爲如果用戶輸入2,3我想讓它登上[2] [3],然後可能會更改該特定的框。 – Watabou 2011-03-02 06:17:47

1

甲板是這樣的:

+---+---+ 
| | | 
+---+---+ 
| | | 

我首先打印多個分離器元件:

while(i < n){ 
    printf("+---"); 
    i++; 
} 
printf("+\n"); 

比幾個小區:

while(i < n){ 
printf("| %c ", currcell); 
    i++; 
} 
printf("|\n") 

其中char curcell將是您的board[i],[j] - 默認情況下爲空白。

對不起,如果它看起來不夠清楚,我很新編程。