【发布时间】:2016-01-31 20:23:50
【问题描述】:
我正在尝试创建一个 C++ 程序,该程序将在 4x4 网格上移动 X 并显示每个移动。我们不允许使用数组,因为我们还没有学会如何使用。我知道我应该使用 16 个 if/else 语句,但我不确定从那里该做什么。我知道有一种比列出每个可能的选项更简单的方法,因为这将花费很长时间!!!我该怎么办???
编辑:只允许上/下/左/右移动。我的意思是显示每个动作它首先应该显示用户的起点(我已经设置)然后它应该打印带有连续动作的网格,包括所有先前的动作,直到它到达终点。
【问题讨论】:
-
4x4 = 16,对吗? ;) 所以我认为你应该这样做,不管这种教学方法有多么可疑……数组才是真正的解决方案。
-
X 应该以什么模式移动? (是否应该根据用户输入一次向上/向下/向左/向右移动一个单元格?)网格上是否还有其他需要显示的内容?
-
您不必使用数组。仅检查您的移动是否可能在该区域之外结束,并拒绝这些移动。
if ((new_x>=0) || (new_x<=3) || (new_y>=0) || (new_y<=3)) { ..do_move..};从确定的位置开始。移动会将坐标移动某个固定值。就是这样。 -
有趣的是这是一个 C++ 问题,那么你可以创建一个
class X,有两个成员int x和int y,以及一个移动方法move(int dx, int dy),和一个whereAmI()方法打印出位置。将网格栅格化为二维数组听起来不太对。 -
@user3528438 如果他们还没有学过数组,很可能他们还没有学过类;)
标签: c++ function loops if-statement