用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;
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



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

C语言写五子棋棋子输入到棋盘的代码,参考代码
https://blog.csdn.net/qq_52145272/article/details/120378297

你题目的解答代码如下:

#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?"●":"○");
        //让用户输入坐标
        scanf("%d%d", &y, &x);
        //判断坐标是否合法:
        //(1)是否越界
        if (y<0 || y>14 || x<0 || x>14)
        {
            continue;
        }
        //(2)输入坐标是否已经有棋子
        if (CHESS[y][x]!=0)
        {
            continue;
        }
        //根据坐标和当前的颜色修改CHESS内容
        CHESS[y][x] = currentColor>0?1:2;
        //切换颜色控制变量currentColor
        currentColor = !currentColor;
    }
}
void showChess( char chess[15][15])
{
    int j,i;
    for(j = 0; j < 15; j++){
        for(i = 0; i < 15; i++)
        {
            if (chess[j][i]==1)
                printf("●");
            else if (chess[j][i]==2)
                printf("○");
            else
                printf("·");
        }
        printf("\n");
    }
}

如有帮助,望采纳!谢谢!

img