HH_Knight 2020-03-31 00:11 采纳率: 0%
浏览 135

求助大佬。非常感谢。

你已经两个月没有出门了,无聊到自己和自己玩“一键三连”的游戏。这个游戏很简单,你制作了规格为4×4的棋盘,一开始棋盘中所有格子都是空的,全为‘.’,紧接着你一人分饰两角,一个画‘x’填到一个为空的格子里,另一个画‘o’填到另一个为空的格子,这个过程交替进行。如果一方先使横的、竖的或斜的有连续的三个格子都是属于自己的标记,那么就赢了。

你刚刚看完一个视频,现在准备开始玩“一键三连”,于是你拿出了很久之前的棋盘,它可能下过,也可能没有(即全部填‘.’),但保证此时没有达到画‘o’的胜局。你选择在一个为空的格子里画‘x’后马上停止,看看是否能构成画‘x’的胜局。

输入格式:
输入共四行四列,表示由“.”(表示空的),“x”(小写字母x)或“o”(小写字母o)组成棋盘。

输出格式:
如果你一键三连了,输出“YES”,否则输出“NO”。

输入样例1:
xx..
.oo.
x...
oox.

输出样例1:
YES

输入样例2:
x.ox
ox..
x.o.
oo.x

输出样例2:
NO

  • 写回答

1条回答 默认 最新

  • 大佬下手轻点 2020-03-31 11:20
    关注

    我理解是X玩家再走一步胜利就是YES否则就是NO

    #include <bits/stdc++.h>
    using namespace std;
    char mp[10][10];
    bool check(){
        for (int i = 0; i < 2; ++i){
                for (int j = 0; j < 2; ++j){
                       if (mp[i][j] == mp[i + 1][j] == mp[i + 2][j] == 'x')//行{
                            return true;
                        }
                        if (mp[i][j] == mp[i + 1][j + 1] == mp[i + 2][j + 2] == 'x')//斜{
                            return true;
                        }
                        if (mp[i][j] == mp[i][j + 1] == mp[i][j + 2] == 'x')//竖{
                            return true;
                        }
                    }
            }
            return false;
    }
    int main(){
        for (int i = 0; i < 4; ++i){
                for (int j = 0; j < 4; ++j) cin >> mp[i][j];
            }
            for (int i = 0; i < 4; ++i){
                for (int j = 0; j < 4; ++j){
                        if (mp[i][j] == '.'){
                                mp[i][j] = 'x';
                                    if (check()) {
                                        cout << "YES";
                                            return 0;
                                    }
                                    else{
                                        mp[i][j] = '.';
                                    }
                            }
                    }
            }
            cout << "NO";
            return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何用数码管显示学号(相关搜索:单片机)
  • ¥15 错误于library(org.Hs.eg.db): 不存在叫‘org.Hs.eg.db’这个名称的程序包,如何解决?
  • ¥60 求一个图片处理程序,要求将图像大小跟现实生活中的大小按比例联系起来的
  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题