Problem1365--3*3九宫格棋盘游戏

1365: 3*3九宫格棋盘游戏

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 33  Solved: 5
[Submit] [Status] [Web Board] [Creator:]

Description

有一个3*3的九宫格,玩家和电脑对弈。
规则是谁最先在一行或者一列,或者对角线占满3个位置,判赢。
如果双方都没有一行或一列或对角线连成一条线,那么游戏继续直到棋盘放满,最后统计双方有两子相连的个数,个数多的赢,一样就平局。
玩家下的棋用 * ,电脑用@表示。
游戏开始,玩家输入下棋的坐标,例如
输入:1 2,表示玩家下棋在第一行第二列的位置,接下来电脑下,电脑会按照游戏规则寻找最佳位置
1)如果在那一行上有两个元素,则在剩余的位置下子
2)如果在列上有两个元素,则在剩余位置下子
3)判断主对角线是否有两个元素,则在剩余位置下
4)判断副对角线主对角线是否有两个元素,则在剩余位置下
5)如果没有两个子相连的情况,就随便下了
接下来判断胜负,没有结果则玩家继续下,直到游戏有结果输出。最后输出棋盘和结果,结果有三种可能:恭喜你赢了。很遗憾,你输了。平局
例如:玩家输入如下
1 2
2 2
3 3
1 1
2 3
3 1
最后输出
 -------
| @ * @ |
| @ * * |
| * @ * |
 -------
平局


本程序不要求提交到OJ系统,请自行在本地实现。



Input

1 2
2 2
3 3
1 1
2 3
3 1


Output

 -------
| @ * @ |
| @ * * |
| * @ * |
 -------
平局

Sample Input

1 2
2 2
3 3
1 1
2 3
3 1

Sample Output

 -------
| @ * @ |
| @ * * |
| * @ * |
 -------
平局

HINT

棋盘输出格式如下
char arr[3][3];
void print()  /*打印棋盘*/
{
    int i,j;
    cout<<" -------"<<endl;
    for (i = 0;i<3;++i)
    {
        cout<<"| ";
        for (j = 0;j<3;++j)
            cout<<arr[i][j]<<' ';
        cout<<"| ";
        cout<<endl;
    }
    cout<<" -------"<<endl;
}


Source/Category

 

[Submit] [Status]