zoukankan      html  css  js  c++  java
  • P1838 三子棋I

    题目描述

    小a和uim喜欢互相切磋三子棋。三子棋大家都玩过是吗?就是在九宫格里面OOXX(别想歪了),谁连成3个就赢了。

    由于小a比较愚蠢,uim总是让他先。

    我们用9个数字表示棋盘位置:

    123 456 789 所有的棋谱都是已经结束的棋局,要么一方获胜,要么平局。

    今天,他们下了一下午的棋,小a为了提高技术,录下了很多棋谱。他想知道,一盘棋结束时,到底是谁赢。

    输入输出格式

    输入格式:

    一行,一串数字,表示落子的地点。小a总是先下

    输出格式:

    一行,如果小a赢,输出“xiaoa wins.”。如果uim赢,输出“uim wins.”。如果平局,输出“drew.”

    输入输出样例

    输入样例#1:
    5237649
    
    输出样例#1:
    xiaoa wins.
    
    输入样例#2:
    539128647
    输出样例#2:
    drew.

    没啥好说的,就是每走一步就判断一下。
    #include<iostream>
    #include<cstdio>
    #include<string.h>
    #include<algorithm>
    #include<math.h>
    using namespace std;
    int    a[10];
    int  n,t=0;
    void check()
    {
        if((a[1]==a[2]&&a[2]==a[3])||(a[1]==a[4]&&a[4]==a[7])||(a[1]==a[5]&&a[5]==a[9]))
            {
                int o=a[1];
                if(o==1)
                {
                    printf("xiaoa wins.");
                    exit(0);
                }else if(o==2)
                {
                    printf("uim wins.");
                    exit(0);
                }
            }else
        if((a[6]==a[3]&&a[6]==a[9])||(a[6]==a[5]&&a[6]==a[4]))
        {
            int o=a[6];
                if(o==1)
                {
                    printf("xiaoa wins.");
                    exit(0);
                }else if(o==2)
                {
                    printf("uim wins.");
                    exit(0);
                }
        }else
        if((a[8]==a[7]&&a[8]==a[9])||(a[8]==a[5]&&a[5]==a[2]))
        {
            int o=a[8];
                if(o==1)
                {
                    printf("xiaoa wins.");
                    exit(0);
                }else if(o==2)
                {
                    printf("uim wins.");
                    exit(0);
                }
        }else
        if((a[7]==a[5]&&a[5]==a[3]))
        {
            int o=a[7];
                if(o==1)
                {
                    printf("xiaoa wins.");
                    exit(0);
                }else if(o==2)
                {
                    printf("uim wins.");
                    exit(0);
                }
        }
    }
    int main()
    {
        char  c;
        while(scanf("%c",&c))
        {
            n=c-'0';
            if(c=='
    ')    break;
            t++;
            if(t%2)    a[n]=1;
            else a[n]=2;
            check();
        }
        cout<<"drew.";
        return 0;
    } 
     
  • 相关阅读:
    第一章复习(已完结)
    复习——第二章(施工完成,哪里总结的不全或是有问题欢迎指出)
    实验九
    实验五
    实验四
    实验三
    实验二
    实验一
    汇编语言第二章
    【C# 大写金额转阿拉伯数字】大写金额转数值
  • 原文地址:https://www.cnblogs.com/CLGYPYJ/p/7341395.html
Copyright © 2011-2022 走看看