三子棋,c语言小游戏,欢迎指导与借鉴

#include <stdio.h>
#include <stdlib.h>
#include<windows.h>
#include<time.h>
//头文件
void mulu();
void game();
void qige();
void wanjiazou(char arr[3][3]);
void ai(char arr[3][3]);
int panduan(char arr[3][3]);
void q(char arr[3][3]);
void w(char arr[3][3]);
void e(char arr[3][3]);
int bu(char arr[3][3]);
int brr[3][3]= {0};
int ying(char arr[3][3]);
int test1=0,test2=0,test3=0;

//函数名
int main()
{
    mulu();
    game();

    return 0;
}
// 主函数
void mulu()
{
    int a;

    printf("欢迎来到摇明白牌三子棋,18岁以下自行离开;\n出品人:不要皮蛋不要粥\n感谢朱大队长的友情帮助!!!");
    Sleep(3000);
    system("cls");

    printf("玩游戏,请输入1\n怕了,请输入2\n");
en:
    scanf("%d",&a);
    if(a==2)
    {
        printf("你清高,了不起,,,哈哈!!1\n该玩还得玩\n");
        Sleep(3000);
    }
    if(a!=2&&a!=1)
    {
        printf("听不懂是吧?\n输入1或2\n");
        goto en;
    }
    system("cls");
}
void game()
{
    int i,j,test=0,a,t;
    char arr[3][3];
o:
    for(i=0; i<=2; i++)
    {
        for(j=0; j<=2; j++)
        {
            arr[i][j]=' ';
        }

    }
    printf("鸡汤来咯、\输入你要想下的棋的坐标\n如;2 1\为第二行第一个\n");
    while(1)
    {
        qige(arr);
        wanjiazou(arr);
        test=panduan(arr);
        if(test==1)
            break;
        system("cls");
        ai(arr);
        test=panduan(arr);
        if(test==1)
            break;
    }
    printf("再来,输入1\n我不行了,我认输,输入0退出\n");
p:
    scanf("%d",&a);
    if(a==1)
    {
        test1=0;
        test2=0;
        test=0;
        for(i=0; i<=2; i++)
        {
            for(j=0; j<=2; j++)
            {
                brr[i][j]=0;
            }
        }
        goto o;
    }
    else if(a==0)
    {
        srand((unsigned)time(NULL));
        t=rand()%6;
        if(t==1)
        {
            printf("穿过挪威的森林 让我走进你的梦里 夕阳落在我的铠甲 王子不一定骑着白马 next to meet you \n");
        }
        else if(t==2)
        {
            printf("原来,这世间最残忍的离别,只是看着你离开,却无法挽留");
        }
        else if(t==3)
        {
            printf("你的身影是帆,我的目光是河流,多少次想挽留你,终不能够");
        }
        else if(t==4)
        {
            printf("At the end of the story, my sweetheart is from afar");
        }
        else if(t==5)
        {
            printf("All you want and wish is well.所想所愿,一切安好");
        }
        else if(t==6)
        {
            printf("where there is a will, there is a way.");
        }
    }
    else
    {
        printf("咋了?神志不清了?输个1或0都理解不了了?\n");
        goto p;
    }
}
void qige(char arr[3][3])
{
    printf(" %c | %c | %c \n",arr[0][0],arr[0][1],arr[0][2]);
    printf("------------\n");
    printf(" %c | %c | %c \n",arr[1][0],arr[1][1],arr[1][2]);
    printf("------------\n");
    printf(" %c | %c | %c \n",arr[2][0],arr[2][1],arr[2][2]);
}
void wanjiazou(char arr[3][3])
{
    int a,b;
ea:
    scanf("%d %d",&a,&b);
    if(1<=a&&a<=3&&b<=3&&b>=1)
    {
        if(arr[a-1][b-1]==' ')
            arr[a-1][b-1]='@';
        else
        {
            printf("我就没见过三子棋还能吃人家字的,,,\n");
            goto  ea;
        }

    }
    else
    {
        printf("请输入正确的格式行数空格列数\n");

        goto ea;

    }
}
int panduan(char arr[3][3])
{
    int i;
    for(i=0; i<=2; i++)
    {
        if(arr[i][0]==arr[i][1]&&arr[i][1]==arr[i][2]&&arr[i][0]!=' ')
        {
            if(arr[i][1]=='@')
            {

                printf("不愧是双料高级特工,你赢了、\n");

                return 1;
            }
            else   if(arr[i][1]=='#')
            {

                printf("我实在是没想到你会输\n");

                return 1;
            }

        }
        if(arr[0][i]==arr[1][i]&&arr[1][i]==arr[2][i]&&arr[0][i]!=' ')
        {
            if(arr[1][i]=='@')
            {

                printf("不愧是双料高级特工,你赢了、\n");

                return 1;
            }
            else   if(arr[1][i]=='#')
            {

                printf("我懂,你故意输的,对不对?\n");

                return 1;
            }

        }

    }
    if((arr[0][0]==arr[1][1]&&arr[1][1]==arr[2][2]&&arr[1][1]!=' ')||(arr[0][2]==arr[1][1]&&arr[1][1]==arr[2][0]&&arr[1][1]!=' '))
    {
        if(arr[1][1]=='@')
        {

            printf("不愧是双料高级特工,你赢了、\n");

            return 1;
        }
        else   if(arr[1][1]=='#')
        {

            printf("好不容易认真一次,你却输的这么彻底,炒!!!!\n");

            return 1;
        }

    }
    if(arr[0][0]!=' '&&arr[0][1]!=' '&&arr[0][2]!=' '&&arr[1][0]!=' '&&arr[1][1]!=' '&&arr[1][2]!=' '&&arr[2][0]!=' '&&arr[2][1]!=' '&&arr[2][2]!=' ')
    {

        printf("平局了,让你先手还赢不了,憨憨!\n");
        return 1;
    }
    return 0;
}
void ai(char arr[3][3])
{

    if(test1==0&&(arr[0][0]=='@'||arr[0][2]=='@'||arr[2][0]=='@'||arr[2][2]=='@'))
    {
        test1=1;
    }

    else  if(test1==0&&(arr[1][1]=='@'))
    {
        test1=2;
    }
    else if(test1==0&&(arr[0][1]=='@'||arr[1][0]=='@'||arr[1][2]=='@'||arr[2][1]))
    {
        test1=3;
    }

    if(test1==1)
        q(arr);
    else if(test1==2)
        w(arr);
    else if(test1==3)
        e(arr);

}
void q(char arr[3][3])
{
    int t=0;
    t=ying(arr);

    if (t==0)
        t=bu(arr);
    if(t==0)
    {


        if(arr[1][1]==' ')
        {
            arr[1][1]='#';
        }
        else
        {
            if((arr[0][1]=='@'||arr[1][0]=='@'||arr[1][2]=='@'||arr[2][1]=='@')||test2==1)
            {
                test2++;
                if(arr[0][2]==' ')
                {
                    arr[0][2]='#';
                }
                else if(arr[0][0]==' ')
                {
                    arr[0][0]='#';
                }
                else if(arr[2][1]==' ')
                {
                    arr[2][1]='#';
                }
                else if(arr[2][2]==' ')
                {
                    arr[2][2]='#';
                }
            }
            else
            {

                if(arr[0][1]==' ')
                {
                    arr[0][1]='#';
                }
                else if(arr[1][0]==' ')
                {
                    arr[1][0]='#';
                }
                else if(arr[1][2]==' ')
                {
                    arr[1][2]='#';
                }
                else if(arr[2][1]==' ')
                {
                    arr[2][1]='#';
                }
            }

        }

    }
}
void w(char arr[3][3])
{
    int t=0;
    t=ying(arr);
    if (t==0)
        t=bu(arr);
    if(t==0)
    {

        if((arr[0][1]!='@'&&arr[1][0]!='@'&&arr[1][2]!='@'&&arr[2][1]!='@'))
        {

            if(arr[0][0]==' ')
            {
                arr[0][0]='#';
            }
            else if(arr[0][2]==' ')
            {
                arr[0][2]='#';
            }
            else if(arr[2][0]==' ')
            {
                arr[2][0]='#';
            }
            else if(arr[2][2]==' ')
            {
                arr[2][2]='#';
            }

        }
        else
        {
            if(arr[0][1]==' ')
            {
                arr[0][1]='#';
            }
            else if(arr[1][0]==' ')
            {
                arr[1][0]='#';
            }
            else if(arr[1][2]==' ')
            {
                arr[1][2]='#';
            }
            else if(arr[2][1]==' ')
            {
                arr[2][1]='#';
            }
        }
    }
}
void e(char arr[3][3])
{
    int t=0;
    t=ying(arr);
    if (t==0)
        t=bu(arr);
    if(t==0&&arr[1][1]==' ')
    {
        arr[1][1]='#';
    }
    else if(t==0)
    {

        if((arr[0][0]!='@'&&arr[0][2]!='@'&&arr[2][0]!='@'&&arr[2][2]!='@'))
        {

            if(arr[0][0]==' ')
            {
                arr[0][0]='#';
            }
            else if(arr[0][2]==' ')
            {
                arr[0][2]='#';
            }
            else if(arr[2][0]==' ')
            {
                arr[2][0]='#';
            }
            else if(arr[2][2]==' ')
            {
                arr[2][2]='#';
            }

        }
        else
        {
            if(arr[0][1]==' ')
            {
                arr[0][1]='#';
            }
            else if(arr[1][0]==' ')
            {
                arr[1][0]='#';
            }
            else if(arr[1][2]==' ')
            {
                arr[1][2]='#';
            }
            else if(arr[2][1]==' ')
            {
                arr[2][1]='#';
            }
        }
    }
}
int bu(char arr[3][3])
{
   if((arr[0][0]==' ')&&((arr[0][1]==arr[0][2]&&arr[0][1]=='@')||(arr[1][0]==arr[2][0]&&arr[1][0]=='@')||(arr[1][1]==arr[2][2]&&arr[1][1]=='@')))
    {
        arr[0][0]='#';
        return 1;
    }
    else if((arr[0][1]==' ')&&((arr[0][0]==arr[0][2]&&arr[0][0]=='@')||(arr[1][1]==arr[2][1]&&arr[1][1]=='@')))
    {
        arr[0][1]='#';
        return 1;
    }
    else if((arr[0][2]==' ')&&((arr[0][1]==arr[0][0]&&arr[0][0]=='@')||(arr[1][1]==arr[2][0]&&arr[1][1]=='@')||(arr[1][2]==arr[2][2]&&arr[1][2]=='@')))
    {
        arr[0][2]='#';
        return 1;
    }
    else if((arr[1][0]==' ')&&((arr[1][1]==arr[1][2]&&arr[1][1]=='@')||(arr[0][0]==arr[2][0]&&arr[0][0]=='@')))
    {
        arr[1][0]='#';
        return 1;
    }
    else if((arr[1][1]==' ')&&((arr[0][0]==arr[2][2]&&arr[0][0]=='@')||(arr[0][1]==arr[2][1]&&arr[0][1]=='@')||(arr[0][2]==arr[2][0]&&arr[0][2]=='@')||(arr[1][0]==arr[1][2]&&arr[1][0]=='@')))
    {
        arr[1][1]='#';
        return 1;
    }
    else if((arr[1][2]==' ')&&((arr[1][0]==arr[1][1]&&arr[1][0]=='@')||(arr[0][2]==arr[2][2]&&arr[2][2]=='@')))
    {
        arr[1][2]='#';
        return 1;
    }
    else if((arr[2][0]==' ')&&((arr[2][1]==arr[2][2]&&arr[2][1]=='@')||(arr[0][0]==arr[1][0]&&arr[0][0]=='@')||(arr[1][1]==arr[0][2]&&arr[1][1]=='@')))
    {
        arr[2][0]='#';
        return 1;
    }
    else if((arr[2][1]==' ')&&((arr[2][0]==arr[2][2]&&arr[2][0]=='@')||(arr[1][1]==arr[0][1]&&arr[1][1]=='@')))
    {
        arr[2][1]='#';
        return 1;
    }
    else if((arr[2][2]==' ')&&((arr[2][0]==arr[2][1]&&arr[2][0]=='#')||(arr[1][1]==arr[0][0]&&arr[0][0]=='#')||(arr[0][2]==arr[1][2]&&arr[0][2]=='#')))
    {
        arr[2][2]='#';
        return 1;
    }
    return 0;
}

int ying(char arr[3][3])
{
    if((arr[0][0]==' ')&&((arr[0][1]==arr[0][2]&&arr[0][1]=='#')||(arr[1][0]==arr[2][0]&&arr[1][0]=='#')||(arr[1][1]==arr[2][2]&&arr[1][1]=='#')))
    {
        arr[0][0]='#';
        return 1;
    }
    else if((arr[0][1]==' ')&&((arr[0][0]==arr[0][2]&&arr[0][0]=='#')||(arr[1][1]==arr[2][1]&&arr[1][1]=='#')))
    {
        arr[0][1]='#';
        return 1;
    }
    else if((arr[0][2]==' ')&&((arr[0][1]==arr[0][0]&&arr[0][0]=='#')||(arr[1][1]==arr[2][0]&&arr[1][1]=='#')||(arr[1][2]==arr[2][2]&&arr[1][2]=='#')))
    {
        arr[0][2]='#';
        return 1;
    }
    else if((arr[1][0]==' ')&&((arr[1][1]==arr[1][2]&&arr[1][1]=='#')||(arr[0][0]==arr[2][0]&&arr[0][0]=='#')))
    {
        arr[1][0]='#';
        return 1;
    }
    else if((arr[1][1]==' ')&&((arr[0][0]==arr[2][2]&&arr[0][0]=='#')||(arr[0][1]==arr[2][1]&&arr[0][1]=='#')||(arr[0][2]==arr[2][0]&&arr[0][2]=='#')||(arr[1][0]==arr[1][2]&&arr[1][0]=='#')))
    {
        arr[1][1]='#';
        return 1;
    }
    else if((arr[1][2]==' ')&&((arr[1][0]==arr[1][1]&&arr[1][0]=='#')||(arr[0][2]==arr[2][2]&&arr[2][2]=='#')))
    {
        arr[1][2]='#';
        return 1;
    }
    else if((arr[2][0]==' ')&&((arr[2][1]==arr[2][2]&&arr[2][1]=='#')||(arr[0][0]==arr[1][0]&&arr[0][0]=='#')||(arr[1][1]==arr[0][2]&&arr[1][1]=='#')))
    {
        arr[2][0]='#';
        return 1;
    }
    else if((arr[2][1]==' ')&&((arr[2][0]==arr[2][2]&&arr[2][0]=='#')||(arr[1][1]==arr[0][1]&&arr[1][1]=='#')))
    {
        arr[2][1]='#';
        return 1;
    }
    else if((arr[2][2]==' ')&&((arr[2][0]==arr[2][1]&&arr[2][0]=='#')||(arr[1][1]==arr[0][0]&&arr[0][0]=='#')||(arr[0][2]==arr[1][2]&&arr[0][2]=='#')))
    {
        arr[2][2]='#';
        return 1;
    }
    return 0;
}
//函数体
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值