gpt4 book ai didi

c++ - 如何检查数组中的每个元素?

转载 作者:行者123 更新时间:2023-11-28 02:31:48 25 4
gpt4 key购买 nike

我正在尝试从迷宫游戏的 txt 字 rune 件中分析已放入我的数组中的每个元素。必须检查数组,这样我们才能确定迷宫中墙壁的位置、玩家、幽灵、 key 和梯子、入口等。所以我需要检查某些字符(例如#、P、K、D、G , E).我不确定如何设置它?

以下是获取地板文件并将每个角色放置在名为 tiles 的数组中的函数。

const int ROWS = 20;

void Floor::Read (const char * filename)
{
size_t row = 0;
ifstream input(filename);

while (row < ROWS && input >> tiles[row++]);

}
void Game::readFloors()
{
m_floor[0].Read("FloorA.txt");
m_floor[1].Read("FloorB.txt");
m_floor[2].Read("FloorC.txt");

}

然后这是其中一个楼层的每个字符的样子:

##############################
# K #
# ############## ### ### # #
# K # # #C# #K# # #
# ######### # A # # # # # # #
# K # # # #
# ############D#####D####### #
# #
# C G C #
# #
# ######D##############D#### #
# # C #K# # #
# #### ######## # # # #
# #K # # ### # # #### #
# # ## # #### # # # # # #
E # ## # # ### # # #### # #
# # # #K D # #
# #D#### ################### #
# K #
##############################

包含上述函数使用的两个类的头文件:

class Floor {
char tiles[20][30];
void printToScreen();
public:
Floor();
void Read (const char * filename);
};

class Game {
private:
Floor m_floor [3];
vector<Character> characters;
public:
void readFloors();
};

寻找类似的问题,但大多数都没有分析许多不同的选项。感谢您的帮助!

最佳答案

我组装了一个简单的阅读器,可以将 map (基于您的示例)放入您可以处理的矩阵中。

#include <iostream>
#include <fstream>
#include <string>

std::ifstream f("/path/../txt.txt");
std::string str;

int cols = 0;
int rows = 0;

char mat[100][100];

int main(){
int line = 0;
while(std::getline(f, str)){
const char * chars = str.c_str();
for(int i=0; i<str.length(); i++){
mat[line][i] = chars[i];
}

cols = str.length();
line++;
rows++;
}

for(int i=0; i<line; i++){
for(int j=0; j<rows; j++){
std::cout<<mat[i][j]<<" ";
}
std::cout<<std::endl;
}
std::cout<<"Cols: "<<cols<<" Rows: "<<rows;
return 0;
}

这样,只需进行简单的字符比较,就可以通过两点坐标获得每个玩家、墙 block 等的位置。

关于c++ - 如何检查数组中的每个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28785691/

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