【发布时间】:2014-11-17 14:21:23
【问题描述】:
class Child:public Parent{
public:
enum Direction { Left, Right, Up, Down };
Direction direction;
void Update();
private:
int x,y;
void ChangeDirection();
void Draw();
};
我需要 Update() 函数调用 ChangeDirection() 和 Draw() 来增加和减少 xy 我所做的当前方向的值。我的问题是 y 或 x 不能是(-)值。
而且 ChangeDirection() 应该为方向数据分配一个随机方向,并且该方向必须与当前方向不同。 我能够以这种方式在同一 ChangeDirection() 函数中cout随机方向
Direction direction = static_cast<Direction>(rand() % 4);
cout << direction;
但有时它会再次打印相同的方向。现在我想要的是,方向的随机分配应该发生在 ChangeDirection() 成员函数中,不允许再次使用当前值,但它应该通过 void Draw(); 显示结果; strong> 成员函数,它增加或减少 xy 值而不让它成为 (-) 值(应该限制为 0)。 这就是我为此所做的。
if ( direction == 0 ){
cout << "Right";
x++;
}
else if (direction == 1 ){
cout << "Down";
y++;
}
else if (direction == 2 ){
cout << "Up";
y--;
}
else if (direction == 3 ){
cout << "Left";
x--;
}
Draw();
但它给出了 (-) 值。我该如何前进 ..
【问题讨论】:
-
由于您没有对 x 和 y 进行任何限制,因此它们显然可以取任何值。
-
但是我该怎么做呢?
标签: c++ class random assign non-repetitive