gpt4 book ai didi

c++ - 如何在 C++ 中表达一系列数组位置?

转载 作者:行者123 更新时间:2023-11-28 02:53:03 24 4
gpt4 key购买 nike

我该如何表达:

    From Array[0-9][0-9] print Player
From Array[0-9][10-79] print blankSpace
From Array[10-19[0-29] print blankSpace
From Array[10-19][30-39] print tree1

等等。

如果不是很明显,我正在尝试打印一个游戏 map ,您可以通过将其移动到“图 block ”上来控制玩家(如果您愿意,每个图 block 等于 10x10 的数组位置或字符空间)但我不能似乎找不到任何方法来“选择”数组中的一系列位置,而不仅仅是两个位置。

如果我说 [0][9] 作为玩家示例,它会在那个位置打印玩家角色,但看到我正在打印 char 类型。它只会等于'!'例如。例如,我打算打印一个正方形的 '!',它会占用 10x10 个字符。

然后使用我的逻辑,如果我可以“选择”一系列数组位置,我可以使用 Player() 函数打印出构成我的整体角色外观的预定义字符数组。 blankSpaces 和 tree1 等也是如此。

任何对我的失败逻辑的帮助/批评/讽刺玩笑都将不胜感激。

最佳答案

好吧,没有内置的方法可以像您描述的那样处理范围,但是有循环,非常接近:-)

for (int j = 0; j != 10; ++j) {
for (int i = 0; i != 10; ++i) {
PrintPlayerAt(j, i);
}
}

不过,看起来您最终将“重绘”整个矩形区域,并且使光标在(我假设是控制台/命令行)窗口中跳来跳去并非易事。所以我建议将您的逻辑从面向对象的“打印 this *此处*”更改为面向位置的“当我们这里时,打印this . 一些伪代码来澄清:

for (int j = 0; j != 20; ++j) {
for (int i = 0; i != 80; ++i) {
if ((0 <= j && j < 10) && (0 <= i && i < 10)) {
PrintPlayer();
}
else if ((10 <= j && j < 20) && (30 <= i && i < 40)) {
PrintTree();
}
// ...
else {
PrintBlankSpace();
}
}
}

关于c++ - 如何在 C++ 中表达一系列数组位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com