计蒜客 15499 阿里的新游戏 题解

题意

阿里九游开放平台近日上架了一款新的益智类游戏——成三棋。成三棋是我国非常古老的一个双人棋类游戏,成三棋的棋盘上有很多条线段,只能在线段交叉点上放入棋子。如果一条线段上的三个交叉点都被同一玩家的棋子占据的话,则称这条线段被该玩家 成三。现在,小红和小明两人在游戏平台上下棋,其中小红的棋子是黑色的。请你帮小红计算他成三的线段数。

思路

存下黑棋的横纵坐标,枚举线段进行判定

代码

#include 
int x[9],y[9];
int main()
{
    int n,m,cnt,ans,xx,yy;
    scanf("%d%d",&n,&m);
    for(int i=0;iscanf("%d%d",&x[i],&y[i]);
    ans=0;
    cnt=0;
    for(int i=0;iif(x[i]==-3)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(x[i]==-2)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(x[i]==-1)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(x[i]==3)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(x[i]==2)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(x[i]==1)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(y[i]==-3)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(y[i]==-2)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(y[i]==-1)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(y[i]==3)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(y[i]==2)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(y[i]==1)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(x[i]==0&&y[i]<0)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(x[i]==0&&y[i]>0)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(y[i]==0&&x[i]>0)
            cnt++;
    if(cnt==3)
        ans++;
    cnt=0;
    for(int i=0;iif(y[i]==0&&x[i]<0)
            cnt++;
    if(cnt==3)
        ans++;
    for(int i=0;iscanf("%d%d",&xx,&yy);
    printf("%d\n",ans);
    return 0;
}

你可能感兴趣的:(计蒜客)