井字棋-c++

井字棋判断输赢

题目描述
KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。

输入描述:
三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。
输出描述:
如果KiKi获胜,输出“KiKi wins!”;
如果BoBo获胜,输出“BoBo wins!”;
如果没有获胜,输出“No winner!”。
示例1
输入

K O B
O K B
B O K

输出

KiKi wins!

解法一:暴力枚举法

#include<iostream>
#include<string>

using namespace std;

int main()
{
    string a[9];
    for(int i=0;i!=9;++i)
        cin>>a[i];
    if(a[0]==a[1] && a[0]==a[2] && a[0]!="O")
    {
        if(a[0]=="K")
            cout<<"KiKi wins!"<<endl;
        else
            cout<<"BoBo wins!";
    }
    else if(a[3]==a[4]&& a[3]==a[5] && a[3]!="O")
    {
        if(a[3]=="K")
            cout<<"KiKi wins!"<<endl;
        else
            cout<<"BoBo wins!";
    }
    else if(a[6]==a[7]&& a[6]==a[8] && a[6]!="O")
    {
        if(a[6]=="K")
            cout<<"KiKi wins!"<<endl;
        else
            cout<<"BoBo wins!";
    }
    else if(a[0]==a[3]&& a[0]==a[6] && a[0]!="O")
    {
        if(a[0]=="K")
            cout<<"KiKi wins!"<<endl;
        else
            cout<<"BoBo wins!";
    }
    else if(a[1]==a[4]&& a[1]==a[7] && a[1]!="O")
    {
        if(a[1]=="K")
            cout<<"KiKi wins!"<<endl;
        else
            cout<<"BoBo wins!";
    }
    else if(a[2]==a[5]&& a[2]==a[8] && a[2]!="O")
    {
        if(a[2]=="K")
            cout<<"KiKi wins!"<<endl;
        else
            cout<<"BoBo wins!";
    }
    else if(a[0]==a[4]&& a[0]==a[8] && a[0]!="O")
    {
        if(a[0]=="K")
            cout<<"KiKi wins!"<<endl;
        else
            cout<<"BoBo wins!";
    }
    else if(a[2]==a[4]&& a[2]==a[6] && a[2]!="O")
    {
        if(a[2]=="K")
            cout<<"KiKi wins!";
        else
            cout<<"BoBo wins!";
    }
    else
        cout<<"No winner!"<<endl;
    return 0;
}

暂时想不出别的方法,后续待更新🐖。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&twelve

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值