用C语言把棋子放到五子棋棋盘中

这个是大学C语言程序设计课程的一个任务,要用C语言将棋子放入五子棋棋盘(棋盘大小15*15)中,主要用到循环控制结构,数组,函数的知识。具体要求如下:
(1)在main函数定义二维数组char CHESS[15][15],循环初始化为全0,该数组用于保存整个棋盘的棋子信息。并作为showChess()的参数用于显示棋盘界面。main函数里进行棋子坐标的输入,根据输入的坐标修改CHESS[15][15]二维数组的内容。

(2)为了让输出界面可以更新棋盘界面,需要使用无限循环令程序不会结束,每次循环之前需要调用system("cls")清空屏幕,然后再次调用showChess()显示新的界面。注意使用system("cls")时,需要#include<windows.h>。

(3)每次循环显示棋盘界面后,都使用让用户输入一个棋子坐标,每次输入后要切换棋子颜色。例如设置一个变量currentColor(该值为1表示输入黑子,为-1表示输入白子),当每次成功输入棋子后currentColor的值应切换到另一种颜色。

(4)并不是每次输入坐标都可以成功输入棋子,需要进行坐标是否合理的判断,例如判断坐标是否越界(<0或>14),以及输入的坐标是否已经有棋子。坐标不合理则不能修改CHESS[15][15]数组内容,并且颜色不改变,继续让用户输入。

代码模板如下:

#include <stdio.h>
#include <windows.h>
void showChess( char chess[15][15]);

void main()
{
char CHESS[15][15];
int j,i;
int x,y;
char currentColor = 1;//颜色控制变量
for(j = 0; j < 15; j++)
    for(i = 0; i < 15; i++)
        CHESS[j][i] = 0;

       while(1)
       {
        system("cls");
        showChess(CHESS);
         printf("\n\n请输入%s的坐标(行,列):",currentColor >0?"●":"○");
//让用户输入坐标



//判断坐标是否越界:
//(1)是否越界
//(2)输入坐标是否已经有棋子


//根据坐标和当前的颜色修改CHESS功能



//切换颜色控制变量currentColor



      }

}

棋盘代码如下:

#include <stdio.h>
void showChess();
void main()
{
        showChess();
}

void showChess()
{
    int i,j; 

    printf(" ");
    for(i = 0; i <15; i++) 
    {
        printf("%2d  ", i);
    }
    printf("\n");


    j = 0;
    i = 0; 
    printf("%2d",j);
    printf("┏");
    for(i = 1; i < 14; i++)
    {
        printf("━");
        printf("┳");
    }
    printf("━");
    printf("┓");
    printf("\n");


    for(j = 1; j < 14; j++)
    {
        printf("  ");
        for(i = 0; i < 15; i++)
        {
            printf("┃");
            printf("  ");
        }
        printf("\n");

        i = 0; 
        printf("%2d",j);
        printf("┣");
        for(i = 1; i < 14; i++)
        {
            printf("━");
            printf("╋");
        }
        printf("━");
        printf("┫");

        printf("\n");
    }


  
    printf("  ");
    for(i = 0; i < 15; i++)
    {
        printf("┃");
        printf("  ");
    }
    printf("\n");

    i = 0; 
    printf("%2d",j);
    printf("┗");
    for(i = 1; i < 14; i++)
    {
        printf("━");
        printf("┻");
    }
    printf("━");
    printf("┛");
}


最后要进行测试,需要程序运行截图:
黑子:1,2
白子:2,2
黑子:16,1 (越界,输入无效,下次应继续输入黑子)
黑子: 3,3
白子:1,2 (已有棋子,输入无效,下次应继续输入白子)
白子:4,4

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。