再学一道算法题: 井字棋

简介: 再学一道算法题: 井字棋

井字棋
分数 20
作者 紫泉
单位 贵州工程应用技术学院
大佬和小白玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。

输入格式:
三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为D代表大佬玩家的棋子,为O表示没有棋子,为X代表小白玩家的棋子。

输出格式:
如果大佬获胜,输出“姜还是老的辣!”;
如果小白获胜,输出“长江后浪推前浪!”;
如果没有获胜,输出“再来一局!”。

输入样例:
D O X
O D X
X O D
输出样例:
在这里给出相应的输出。例如:

姜还是老的辣!

#include<cmath>
#include<algorithm>
using namespace std;
char a[3][3];


int main()
{
    int f = 0;
    for (int i = 0; i < 3; ++i)
        for (int j = 0; j < 3; ++j)
            cin >> a[i][j];
    if ((a[0][0] == a[1][1] && a[0][0] == a[2][2]) || (a[0][2] == a[1][1] && a[0][2] == a[2][0]))
    {
        f = 1;
        if (a[1][1] == 'D')cout << "姜还是老的辣!";
        if (a[1][1] == 'X')cout << "长江后浪推前浪!";
        if (a[1][1] == 'O')f = 0;
    }
    else
    {
        if (f == 1)return 0;
        else
        {
            for (int i = 0; i < 3; ++i)
            {
                char c = a[i][0];
                if (a[i][1] == c && a[i][2] == c)
                {
                    f = 1;
                    if (c == 'D')cout << "姜还是老的辣!";
                    if (c == 'X')cout << "长江后浪推前浪!";
                    if (c == 'O')f = 0;
                }
            }
            if (f == 0)
            {
                for (int i = 0; i < 3; ++i)
                {
                    char c = a[0][i];
                    if (a[1][i] == c && a[2][i] == c)
                    {
                        f = 1;
                        if (c == 'D')cout << "姜还是老的辣!";
                        if (c == 'X')cout << "长江后浪推前浪!";
                        if (c == 'O')f = 0;
                    }
                }
                if (f == 0)
                    cout << "再来一局!";
            }
        }
    }
    return 0;
}
相关文章
再学一道算法题: 九宫格输入法
再学一道算法题: 九宫格输入法
|
存储 算法
再学一道算法题:PAT排名汇总 (排序+存储)
再学一道算法题:PAT排名汇总 (排序+存储)
再学一道算法题: 寻找大富翁
再学一道算法题: 寻找大富翁
|
存储 算法
再学一道算法题: 最长连续递增子序列
再学一道算法题: 最长连续递增子序列
再学一道算法题: 朋友(map)
再学一道算法题: 朋友(map)
再学一道算法题: 两个有序序列的中位数
再学一道算法题: 两个有序序列的中位数
再学一道算法题: 两个有序序列的中位数
再学一道算法题: 最大子列和问题
再学一道算法题: 最大子列和问题
再学一道算法题: 最大子列和问题
再学一道算法题: 二分法求多项式单根
再学一道算法题: 二分法求多项式单根
再学一道算法题: 二分法求多项式单根
再学一道算法题: 食物链(带权并查集)
再学一道算法题: 食物链(带权并查集)
再学一道算法题: 食物链(带权并查集)
|
人工智能 监控 算法
再学一道算法题:监控
再学一道算法题:监控