C++ 检查Tic-Tac-Toe中的Win

C++ 检查Tic-Tac-Toe中的Win,c++,tic-tac-toe,C++,Tic Tac Toe,你好,我17岁,正在学习如何编码。我在调试这段代码时遇到困难,希望能得到一些帮助 bool checkifwin(char grid[3][3], char player) { if (checkverticle(char grid[3][3], char player) || checkhorizontal(char grid[3][3], char player) || checkdiagonal( grid[3][3], player)

你好,我17岁,正在学习如何编码。我在调试这段代码时遇到困难,希望能得到一些帮助

bool checkifwin(char grid[3][3], char player)
{
    if (checkverticle(char grid[3][3], char player) 
        || checkhorizontal(char grid[3][3], char player)
        || checkdiagonal( grid[3][3], player) 
       return true;
    else
       return false;
};

它在char之前表示预期的主表达式。

调用函数时不需要给出类型名

if (checkverticle(char grid[3][3], char player) // Remove char here and in other cases
关于你得到的错误-

checkverticle( grid[3][3] ... )

这里
grid[3][3]
为您提供该索引处的字符。您真正想要传递的是
grid
本身,正如其他人所建议的那样。当然,要小心有效的数组索引。

调用函数时不需要给出类型名

if (checkverticle(char grid[3][3], char player) // Remove char here and in other cases
关于你得到的错误-

checkverticle( grid[3][3] ... )
这里
grid[3][3]
为您提供该索引处的字符。您真正想要传递的是
grid
本身,正如其他人所建议的那样。当然,要小心有效的数组索引。

checkverticle()是对函数的调用,而不是声明,因此不需要“char”

只是一些编码建议。我认为:

bool func()
{
    if (expr)
        return true;
    else
        return false;
}
这不是很好的风格。我建议将其重构为:

bool func()
{
    bool result = false; // This just makes it clear the expected default.
    // You could even go as far as
    // bool result = expr  or event return expr; - although I suggest sticking with a
    // variable in case you need to debug.
    result = expr; // e.g. result = checkVert() || checkHoriz() || checkDiag();
    return result;
}
checkverticle()是对函数的调用,而不是声明,因此不需要“char”

只是一些编码建议。我认为:

bool func()
{
    if (expr)
        return true;
    else
        return false;
}
这不是很好的风格。我建议将其重构为:

bool func()
{
    bool result = false; // This just makes it clear the expected default.
    // You could even go as far as
    // bool result = expr  or event return expr; - although I suggest sticking with a
    // variable in case you need to debug.
    result = expr; // e.g. result = checkVert() || checkHoriz() || checkDiag();
    return result;
}

您正在尝试将类型声明作为参数传递。请尝试以下方法:

bool checkifwin(char grid[3][3], char player)
{
  return checkverticle(grid], player) || 
    checkhorizontal(grid, player) || 
    checkdiagonal(grid, player;

};

您正在尝试将类型声明作为参数传递。请尝试以下方法:

bool checkifwin(char grid[3][3], char player)
{
  return checkverticle(grid], player) || 
    checkhorizontal(grid, player) || 
    checkdiagonal(grid, player;

};

可能是打字错误,但您的
if
语句后缺少一个右括号。只是装腔作势——您拼错了垂直。很抱歉,这让我很困扰:/n函数或方法声明的右大括号后不需要分号。(然而,类声明需要它们…)可能是一个拼写错误,但在
if
语句后缺少一个结束括号。只是装饰性的——您拼错了垂直。很抱歉,这让我很困扰:/n函数或方法声明的右大括号后不需要分号。(类声明需要它们,但是…)哦,好的,我去掉了那些类型名,但是现在它说从'char'到'char(*)的转换无效[3]“对不起,我认为这可能与其他代码有关,所以我会发布这个调用的函数。好的,我去掉了那些类型名,但是现在它说从'char'到'char(*)的转换无效[3]“对不起,我认为这可能与其他代码有关,因此我将发布此代码调用的函数