如何在C中制作棋盘?

时间:2016-10-26 02:04:16

标签: c++ c xcode chess

我是C的新手,我正在尝试制作一个输出棋盘图案的程序。但是,我不明白我接下来的步骤是什么。有人可以帮我这个吗?

主:

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

int main() {
    int length,width;
    enum colors{Black,White};

    printf("Enter the length:\n");
    scanf("%d",length);
    printf("Enter the width:\n");
    scanf("%d",width);

    int board[length][width];
    createBoard(length,width);
    for(int i =0;i< sizeof(board);i++) {

        if(i%2==0) {
            // To print black
            printf("[X]");
        }
        else {
            // To print white
            printf("[ ]");
        }
    }
} //main

CreateBoard功能:

int createBoard(int len, int wid){
    bool b = false;
    for (int i = 0; i < len; i++ ) {
        for (int j = 0; j < wid; j++ ) {
            // To alternate between black and white
            if(b = false) {
                board[i][j] = board[White][Black];
                b = false;
            }
            else {
                board[i][j] = board[Black][White];
                b = true;
            }
        }
    }
    return board;
}

1 个答案:

答案 0 :(得分:1)

首先学习如何使用scanf()。

int length;

不正确:scanf(&#34;%d&#34;,长度); 正确:scanf(&#34;%d&#34;,&amp; length);

希望这会有所帮助:

#include <stdio.h>

int main(void) 
{
    int length,width,i,j;
    printf("Enter the length:\n");
    scanf("%d",&length);
    printf("Enter the width:\n");
    scanf("%d",&width);
    for(i=1;i<=length;i++)
    {
        for(j=1;j<=width;j++)
        {
            if((i+j)%2==0)
                printf("[X]");
            else printf("[ ]");
        }
        printf("\n");
    }
    return 0;
}

注意:确保长度和宽度均匀。