宣布枚举以及是否在其元素上
Declared enum and IF on its elements
我正在从事蛇游戏。虽然我有一个小问题。我用可能的方向创建了枚举:
enum Direction{
n = 0, // north
e = 1, // east
s = 2, // south
w = 3 // west
};
,然后我创建了一个更改的函数,基于先前的方向将改变它。(例如,如果您转到右/向东,则不能切换到左/西):
void ChangeDirection(char key){
switch (key){
case 'w':
if (Direction != 2)
Direction = 0;
break;
case 'd':
if (Direction != 3)
Direction = 1;
break;
case 's':
if (Direction != 0)
Direction = 2;
break;
case 'a':
if (Direction != 1)
Direction = 3;
break;
}
但是我的IF显然不起作用;发生以下错误:
在'!='令牌之前预期的主要表达
有人可以帮忙吗?如何重新排列它工作?为什么不起作用?谢谢!
Direction CurrentDir = e; // somewhere in the code
// ....
//another place in the code, so on..
CurrentDir = s;
//....
void ChangeDirection(char key){
switch (key){
case 'w':
if (CurrentDir != s)
CurrentDir = n;
break;
case 'd':
if (CurrentDir != w)
CurrentDir = e;
break;
// so on ..
}
相关文章:
- 是否可以在c++中处理字符串流中的各个元素
- C++默认情况下,指针类型数组的元素是否保证初始化为 nullptr?
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 是否可以使用 new 指定具有宏常量的动态分配数组的元素?
- C++:带有大括号初始化列表的函数调用表达式 - 标准是否规定在单个元素列表的微不足道的情况下忽略大括号?
- 如何知道地图中的最后一个元素是否被删除?
- 检查 TinyXML 中的元素是否存在
- 经过最后一个数组元素末尾的指针是否应该等于超过整个数组末尾的指针?
- 是否需要 mutex() 来安全地同时访问具有 2 个线程的数组的不同元素?
- 是否有用于元素部分移位的 simd 指令/内在/内置指令?
- 是否有具有外部元素分配的序列容器(在 STL 中)?
- C++:是否可以编写一个函数,将不同类型的元素附加到变体数组中?
- 数组对象的生存期是否在重用其元素存储时结束?
- 擦除是否删除 stl 无序列图元素使用的堆内存
- 调用 erase() 函数是否也会在擦除元素之前更改迭代器值?
- 是否有一个 std::set 函数来确定不超过数字 x 的最大元素?
- 除了 std::vector 之外,是否有一个 std 容器不会复制和销毁作为类的元素?
- 是否可以使用宏来访问动态数组或向量中的元素或为其赋值
- 如果我在相应 char 数组的声明中为其提供额外的元素,是否会自动设置 NULL?
- 使用 at() 访问 std::map 元素是否比运算符 [] 慢?