C++ 需要用我的硬代码做一个循环
我正在编写一个迷宫算法代码,目前我已经硬编码了其中的一部分,但为了可伸缩性,我需要将其更改为一个循环。有人能帮我把这变成一个循环吗C++ 需要用我的硬代码做一个循环,c++,algorithm,function,loops,maze,C++,Algorithm,Function,Loops,Maze,我正在编写一个迷宫算法代码,目前我已经硬编码了其中的一部分,但为了可伸缩性,我需要将其更改为一个循环。有人能帮我把这变成一个循环吗 movement(x_3_vector.at(1),y_3_vector.at(1),x_4_vector.at(1),y_4_vector.at(1),"3"); movement(x_3_vector.at(2),y_3_vector.at(2),x_4_vector.at(2),y_4_vector.at(2),"3"); movement(x_3_vecto
movement(x_3_vector.at(1),y_3_vector.at(1),x_4_vector.at(1),y_4_vector.at(1),"3");
movement(x_3_vector.at(2),y_3_vector.at(2),x_4_vector.at(2),y_4_vector.at(2),"3");
movement(x_3_vector.at(3),y_3_vector.at(3),x_4_vector.at(3),y_4_vector.at(3),"3");
movement(x_3_vector.at(4),y_3_vector.at(4),x_4_vector.at(4),y_4_vector.at(4),"4");
movement(x_3_vector.at(5),y_3_vector.at(5),x_4_vector.at(5),y_4_vector.at(5),"4");
movement(x_3_vector.at(6),y_3_vector.at(6),x_4_vector.at(6),y_4_vector.at(6),"4");
movement(x_3_vector.at(7),y_3_vector.at(7),x_4_vector.at(7),y_4_vector.at(7),"4");
movement(x_3_vector.at(8),y_3_vector.at(8),x_4_vector.at(8),y_4_vector.at(8),"4");
movement(x_3_vector.at(9),y_3_vector.at(9),x_4_vector.at(9),y_4_vector.at(9),"4");
movement(x_3_vector.at(10),y_3_vector.at(10),x_4_vector.at(10),y_4_vector.at(10),"5");
movement(x_3_vector.at(11),y_3_vector.at(11),x_4_vector.at(11),y_4_vector.at(11),"5");
movement(x_3_vector.at(12),y_3_vector.at(12),x_4_vector.at(12),y_4_vector.at(12),"5");
movement(x_3_vector.at(13),y_3_vector.at(13),x_4_vector.at(13),y_4_vector.at(13),"5");
movement(x_3_vector.at(14),y_3_vector.at(14),x_4_vector.at(14),y_4_vector.at(14),"5");
movement(x_3_vector.at(15),y_3_vector.at(15),x_4_vector.at(15),y_4_vector.at(15),"5");
movement(x_3_vector.at(16),y_3_vector.at(16),x_4_vector.at(16),y_4_vector.at(16),"6");
movement(x_3_vector.at(17),y_3_vector.at(17),x_4_vector.at(17),y_4_vector.at(17),"6");
movement(x_3_vector.at(18),y_3_vector.at(18),x_4_vector.at(18),y_4_vector.at(18),"6");
movement(x_3_vector.at(19),y_3_vector.at(19),x_4_vector.at(19),y_4_vector.at(19),"6");
movement(x_3_vector.at(20),y_3_vector.at(20),x_4_vector.at(20),y_4_vector.at(20),"6");
问题是,我需要调用“移动”函数,这取决于我在迷宫中占据了多少个单元,所以有时我需要用字符串“3”调用移动函数3次,有时我需要用字符串“4”调用它6次……等等
谢谢
for(int i=1;i您当前带有循环的代码:
for (int i=1; i<=20; i++) {
movement(x_3_vector.at(i),y_3_vector.at(i),x_4_vector.at(i),y_4_vector.at(i), getParam(i));
}
// TODO: improve this function in order to reflect what the string value must be at any time
string getParam(int index) {
// TODO: make sure it's between 1-20 or whatever your constraints are
if (index >= 16) return "6";
else if (index >= 10) return "5";
else if (index >= 4) return "4";
else return "3";
}
const char* s[20] = {
"3", "3", "3",
"4", "4", "4", "4", "4", "4",
"5", "5", "5", "5", "5", "5",
"6", "6", "6", "6", "6"
};
for (int i = 0; i != 20; ++i) {
movement(x_3_vector.at(1 + i),
y_3_vector.at(1 + i),
x_4_vector.at(1 + i),
y_4_vector.at(1 + i),
s[i]);
}
你怎么知道调用了多少次?什么叫“我需要调用这个函数…有时…3次…有时6次…有时5次”?什么函数?movement
?或者一个新函数,它取代了你的硬编码值,并且本身调用了movement
?还有,这些索引意味着什么?它们总是在增加吗?最后的字符串值在做什么?对你的问题有什么重要意义吗?你可能应该编辑你的问题以保持清晰,因为我们提出你的问题不清楚。我只是修改了这个问题,这样可能更容易理解。@ShahinB:仍然不清楚如何计算“3”
。它是否取决于x\u 3\u向量的索引?内容?字符串只是在所需的“移动”数之后上升函数被调用…例如,我需要用字符串“4”调用移动六次,然后我完成了,所以我移动到下一个字符串!这并不能解决它,因为有时我需要用字符串“3”调用移动函数三次,有时我需要用字符串“4”调用它六次…等等。。。