C++ - 连续3次检查

Enr*_* Jr 6 c++ search

我有这个3 x 3的char数组,它应该代表一个tic-tac-toe board,之前,我会使用一堆"if"语句来查看是否连续有3个.

... if((board [0] [0] == board [0] [1])&&(board [0] [1] == board [0] [2])){...} .. .

我意识到这是很多打字,并且非常容易出错,所以有更好的方法吗?

Tom*_*Tom 0

是的,你可以这样做

if (board[0][0]==board[0][1]==board[0][2]) {...}
Run Code Online (Sandbox Code Playgroud)

甚至可以写一个函数

inline boolean row_win(int row_num){
   return (board[row_num][0]==board[row_num][1]==board[row_num][2]);
}
Run Code Online (Sandbox Code Playgroud)

但它有隐藏的一面,如果 board[0][0]、board[0][0]、board[0][1] 等于 0,则它不会工作。

另一种方法是编写一个 for 循环,但我想这需要更多的打字。