C语言五子棋(人人对战|可回放)

这是一个使用C语言编写的五子棋游戏程序,支持双人对战,允许玩家通过键盘输入坐标进行游戏。游戏提供棋盘显示、回放功能,并在一方连成五子时判断游戏结束,显示胜者和游戏步数、时间。
摘要由CSDN通过智能技术生成

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
int main()
{

    int i, j;
    int k = 0;
    int m = 0;
    int n = 0;
    long t;
    time_t t1, t2;
    int qipan[16][16];
    char op;
    char ed;
    char de; 
begin:
    printf("\n*五子棋游戏\n");
    printf("\n");
    printf("*规则:\n");
    printf("\n");
    printf("1.本游戏为双人对战,通过键盘下棋子\n");
    printf("\n");
    printf("2.棋盘大小为16*16,请以x,y的形式下棋子\n");
    printf("\n");
    printf("*按回车键开始游戏:");
    fflush(stdin);
    ed = getchar();
    if (('\n' == ed))
    {
        system("cls");
        goto start;
    }
    else
    {
        system("cls");
        goto begin;
    }
start:
    FILE* fp = NULL;
    fp=fopen("c:\\cfiles\\main.txt", "wt + ");
    fclose(fp);
    fp = NULL;
    t1 = time(0);
    int color = 0;
    int iT = 0, jT = 0, cT = 0;
    int colorF = 0;
    for (i = 0; i < 16; i++)
        for (j = 0; j < 16; j++)
            qipan[i][j] = 2;
    for (i = 1; i <= 16; i++)
    {
        if (i == 1)
        {
            if (qipan[i - 1][0] == 2)
                printf("┌ ");

            for (j = 2; j <= 15; j++)
            {
                if (qipan[i - 1][j - 1] == 2)
                    printf("┬ ");
            }

            if (qipan[i - 1][j - 1] == 2)
                printf("┐ ");
                printf("\n");
        }
        if (i <= 15 && i >= 2)
        {
            if (qipan[i - 1][0] == 2)
                printf("├ ");
            for (j = 2; j <= 15; j++)
            {
                if (qipan[i - 1][j - 1] == 2)
                    printf("┼ ");
            }
            if (qipan[i - 1][j - 1] == 2)
                printf("┤ ");

            printf("\n");
        }
        if (i == 16)
        {
            if (qipan[i - 1][0] == 2)
                printf("└ ");

            for (j = 2; j <= 15; j++)
            {
                if (qipan[i - 1][j - 1] == 2)
                    printf("┴ ");
            }
            if (qipan[i - 1][j - 1] == 2)
                printf("┘ ");

            printf("\n");
        }

    }
    printf("*黑棋得分:");
    printf("%d\n", m);
    printf("*白棋得分:");
    printf("%d\n\n", n);
    while (1)
    {
        printf("*请输入棋子位置: ");
        scanf("%d,%d", &i, &j);
        FILE* fp = NULL;
        fp=fopen("c:\\cfiles\\main.txt", "at+");
        fprintf(fp, "%d %d\n", i, j);
        fclose(fp);
        fp = NULL;
        k++;
        if (i < 1 || i >16 || j < 1 || j>16)
        {
            printf("\n*超出棋盘范围,请重新输入!\n");
            k--;
            continue;
        }

        if ((2 != qipan[i - 1][j - 1]))
        {
            printf("\n*该位置已有棋子!\n");
            k--;
            fflush(stdin);
            continue;
        }

        color = (color + 1) % 2;
        qipan[i - 1][j - 1] = color;

        system("cls");
        for (i = 1; i <= 16; i++)
        {
            if (i == 1)
            {
                if (qipan[i - 1][0] == 1)
                    printf("○");
                if (qipan[i - 1][0] == 0)
                    printf("●");
                if (qipan[i - 1][0] == 2)
                    printf("┌ ");
                for (j = 2; j <= 15; j++)
     

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值