将二维数组中的字符移动到位置C ++

时间:2017-10-04 19:29:54

标签: c++ arrays multidimensional-array indexing

我正在制作一个模仿飞机飞来飞去的程序。我目前有一个打印得很好的2D数组。我想要的是将飞机设置在用户定义的位置,让它们全部飞到用户定义的目的地。例如,它们可以设置在10x10网格上的任何位置,然后全部飞到定义的位置,然后飞回到它们开始的位置。

这是2D网格:

#include <iostream>
#include <iomanip>

void printLine(){ std::cout << "--------------------------------------------
-------" << std::endl; }

int main(){

const int WIDTH = 10;
const int LENGTH = 10;
char chars[WIDTH][LENGTH] = {};
//chars[0][0] = 'P';
//chars[4][4] = 'P';

printLine();
for(int i = 0; i < WIDTH; ++i){

    for(int j = 0; j < LENGTH; ++j){

    std::cout << "|" << std::setw(5) << chars[i][j] << std::setw(5) << ' ';

    }

   std::cout << "|" << std::endl;
   printLine();

 }

 return 0;

}

我知道我需要通过使用std :: cin扫描用户输入来检索平面的位置但是我对使平面移动然后重新打印2D网格以观察它们的最佳方法感到困惑在码头四处走动。每次飞机移动时,我都不需要将它放在终端中,只需重新打印即可。我最初想过只是尝试将飞机的位置与目的地匹配并保持有罪(X,Y)值,直到它们匹配,但我不确定如何在代码中正确解决这个问题,这不仅仅是一个黑客的工作。我也想尝试避免碰撞,但我认为让移动功能起作用是第一步然后处理碰撞。如果有人有任何建议他们可以给我如何构建我上面描述的代码,将非常感激。

0 个答案:

没有答案