if (aCHAR == '字符' || '另一个字符') 问题

发布于 2024-11-04 14:45:31 字数 646 浏览 0 评论 0原文

你好,所以我试图检查字符串中的某个字符,以确保它不是 \、=、| 等,如果不是,则用“玩家”字符替换空格,但该函数每次都返回 true,即使如果 char newLoc 等于 ''(空):

screen.get_contents 返回一个充满字符串的向量容器,并且
sprite.get_location 返回一个包含两个数字的 int 数组,[0] 代表 X,[1] 代表 Y。

bool check_collision(Sprite& sprite,int X, int Y, Screen& screen) 
    {
    ////////////////////// check whats already there /////
        char newLoc = screen.get_contents(sprite.get_location()[0]+Y,sprite.get_location()[1]+X);
        if (newLoc == '|' || '/' || '_' || '=' || 'X' || 'x' )
            return true;
        else
            return false;
    };

有什么问题吗? 谢谢!!

Hi so i'm trying to check a certain character in a string to make sure it's not a \,=,|, etc. and replacing the space with the "player" character if it's not but the function is returning true everytime, even if char newLoc is equal to '' (empty):

screen.get_contents returns a vector container full of strins, and
sprite.get_location returns an int array with two number, [0] representing X, [1] is Y.

bool check_collision(Sprite& sprite,int X, int Y, Screen& screen) 
    {
    ////////////////////// check whats already there /////
        char newLoc = screen.get_contents(sprite.get_location()[0]+Y,sprite.get_location()[1]+X);
        if (newLoc == '|' || '/' || '_' || '=' || 'X' || 'x' )
            return true;
        else
            return false;
    };

what is the problem? Thanks!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

近箐 2024-11-11 14:45:31

您需要:

if (newLoc == '|' || newLoc == '/' || ...)

您所写的内容相当于:

if (newLoc == ('|' || '/' || ...))

相当于:

if (newLoc == 1)

请注意,更简洁的编写方式可能是:

switch (newLoc)
{
case '|':
case '/':
...
    return true;

default:
    return false;
}

You need:

if (newLoc == '|' || newLoc == '/' || ...)

What you have written is equivalent to:

if (newLoc == ('|' || '/' || ...))

which is equivalent to:

if (newLoc == 1)

Note that a cleaner way of writing this might be:

switch (newLoc)
{
case '|':
case '/':
...
    return true;

default:
    return false;
}
凡尘雨 2024-11-11 14:45:31
newLoc == '|' || '/' || '_' || '=' || 'X' || 'x'

不起作用,你必须这样做:

newloc == '|' || newloc == '/' || etc...

但这更容易阅读:

switch (newloc):
    case '|':
    case '/':
    case '_':
    case '=':
    case 'X':
    case 'x':
        return true;
    default:
        return false;
newLoc == '|' || '/' || '_' || '=' || 'X' || 'x'

doesn't work, you must do it like this:

newloc == '|' || newloc == '/' || etc...

However this is more easy to read:

switch (newloc):
    case '|':
    case '/':
    case '_':
    case '=':
    case 'X':
    case 'x':
        return true;
    default:
        return false;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文