注册 登录
编程论坛 C++教室

想编一个一条龙(井字棋)的小游戏,但不知如何比较胜负。

razielzyc 发布于 2010-11-06 12:53, 765 次点击
下面的是我初步编的代码,要想在游戏中决出胜负的话,就要在bool中把胜负写成三种类型。(横,竖,斜)
但本人实在不太清楚要如何写出这3个部分并把他们加到main中并提示结果。还请各位大师指点一二了。
#include <iostream>,
using namespace std;



bool checkWin(char symbol, char board[3][3])
{

}



void displayGrid(char game[3][3])
{
  cout << game[0][0] << '|' << game[0][1] << '|' << game[0][2] << endl;
  cout << "-+-+-" << endl;
  cout << game[1][0] << '|' << game[1][1] << '|' << game[1][2] << endl;
  cout << "-+-+-" << endl;
  cout << game[2][0] << '|' << game[2][1] << '|' << game[2][2] << endl;
}



int main()
{
  char gameGrid[3][3] = {{'X','O','O '},      
                         {' ','X','X'},      
                         {'X','O','X '}};   
                        
  char player1 = 'X';
  char player2 = 'O';

  cout << "The position is: " << endl;
  displayGrid(gameGrid);
  
  
  return 0;
}
2 回复
#2
无名可用2010-11-07 13:43
遍历整个棋盘,遇到棋子就对它的横.竖.斜三个方向相邻的格子判断一下是否为相同的棋子

例如
for(int i=0;i<height;i++)
{
    for(int j=0;j<width;j++)
    {
        if(map[i][j].是棋子)
        {
            ///横向查看
             if(不出界)
            {
                if(map[i][j-1].是该类型的棋子 && map[i][j+1].是该类型的棋子)
                {
                    该方获胜;
                    break;
                }
            }
            ///纵向查看
            ///斜向查看
        }
    }
}
希望对你有帮助
#3
razielzyc2010-11-09 12:50
回复 2楼 无名可用
虽然方法用的不太一样,但谢谢你的回答。
1