gpt4 book ai didi

c++ - 四向等价

转载 作者:太空宇宙 更新时间:2023-11-04 16:02:44 26 4
gpt4 key购买 nike

如何检查四个变量之间的相等性?这是一个 3D 井字游戏。

if (b[0][0] == b[1][0] == b[2][0] == p) { line += 1; }

这不起作用,因为等效是从左到右的。我不想执行以下任一操作:

if (b[0][0] == p && b[1][0] == p && b[2][0] == p) { line += 1; }
if ((b[0][0] == b[1][0]) && (b[1][0] == b[2][0]) && (b[2][0] == p)) { line += 1; }

所有变量都是整数,正如我所知道的 bool 值,我可以只使用 &&。有没有更好的办法?我考虑过:

if ((b[0][0] + b[1][0] + b[2][0]) == (3 * p)) { line += 1; }

因为 p 将是三个值之一(0 既不代表 X 也不代表 O,1 代表 X,2 代表 O),它只需要将 O 的值更改为 4 或一些不可能的值用三个 1、0 或它们的组合实现。但它缺乏技巧。

最佳答案

由于问题中的 4 个变量中有 3 个属于一个对象,因此您可以创建一个方法来将其全部包装起来。像 bool isValid(int *A, int val) {...} 然后在你的语句中使用它像 if (isValid(b, p)) {...}/。该名称是任意的,因为没有给出更广泛的上下文。

关于c++ - 四向等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40682302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com