zoukankan      html  css  js  c++  java
  • Tic-Tac-Toe-(暴力模拟)

    https://ac.nowcoder.com/acm/contest/847/B

    #include<algorithm>
    #include<cstring>
    #include<iostream>
    #include<math.h>
    #include<string>
    #include<stdio.h>
    #include<map>
    #include<queue>
    #define ll long long
    #define inf 0x3f3f3f3f
    using namespace std;
    
    char a[3][5];
    int t;
    
    bool check()
    {
        int num1=0,num2=0;///白子数,空位数
        for(int i=0;i<3;i++)///横的
        {
            num1=0;num2=0;
            for(int j=0;j<3;j++)
            {
                if( a[i][j]=='W' )
                    num1++;
                else if( a[i][j]=='#' )
                    num2++;
                else
                    break;
            }
            if(num1==2 && num2==1)
                return true;
        }
    
        for(int j=0;j<3;j++)///竖的
        {
            num1=num2=0;
            for(int i=0;i<3;i++)
            {
                if( a[i][j]=='W' )
                    num1++;
                else if( a[i][j]=='#' )
                    num2++;
                else
                    break;
            }
            if(num1==2 && num2==1)
                return true;
        }
        num1=num2=0;
        for(int i=0;i<3;i++)///左上到左下
        {
            if( a[i][i]=='W' )
                   num1++;
            else if( a[i][i]=='#' )
                num2++;
            else
                break;
        }
        if(num1==2 && num2==1)
            return true;
        num1=num2=0;
        for(int i=0;i<3;i++)///左下到右上
        {
            if(i==0)
            {
                if( a[2][0]=='W' )
                    num1++;
                else if( a[2][0]=='#' )
                    num2++;
                else if( a[2][0]=='B')
                    break;
            }
            if(i==1)
            {
                if( a[1][1]=='W' )
                    num1++;
                else if( a[1][1]=='#' )
                    num2++;
                else if( a[1][1]=='B')
                    break;
            }
            if(i==2)
            {
                if( a[0][2]=='W' )
                    num1++;
                else if( a[0][2]=='#' )
                    num2++;
                else if( a[0][2]=='B')
                    break;
            }
        }
        if(num1==2 && num2==1)
            return true;
        return false;
    }
    
    
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            int flag;
            flag=0;
            for(int i=0;i<3;i++)
                scanf("%s",a[i]);
            if(check())///正常情况下一步能赢
            {
                for(int i=0;i<3&&flag==0;i++)
                {
                    for(int j=0;j<3&&flag==0;j++)
                    {
                        if( a[i][j]=='W' )
                        {
                            a[i][j]='#';
                            if(!check())
                                flag=1;///存在某种情况被拿了之后不能赢
                            a[i][j]='W';
                        }
                    }
                }
                if(flag==0)
                    printf("Alice
    ");
                else
                    printf("Emmm
    ");
            }
            else
            {
                printf("Bob
    ");
            }
        }
        return 0;
    }
  • 相关阅读:
    毕设进度2020.02.06
    毕设进度2020.02.05
    毕设进度2020.02.04
    学习进度2020.02.03
    学习进度2020.02.02
    学习进度2020.02.01
    毕设之路:本周计划(五)2019.11.18——2019.11.23
    毕设之路:本周计划(四)2019.11.11——2019.11.17
    洛谷P2015 二叉苹果树
    洛谷P1131 [ZJOI2007]时态同步
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/10806946.html
Copyright © 2011-2022 走看看