修复配置文件读取
							parent
							
								
									fbbc6e20af
								
							
						
					
					
						commit
						9cf9534657
					
				| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					out/
 | 
				
			||||||
 | 
					.vs/
 | 
				
			||||||
 | 
					.vscode/
 | 
				
			||||||
 | 
					build/
 | 
				
			||||||
 | 
					.cache/
 | 
				
			||||||
| 
						 | 
					@ -1,2 +1,5 @@
 | 
				
			||||||
out/
 | 
					mazzGame/out/
 | 
				
			||||||
.vs/
 | 
					.vs/
 | 
				
			||||||
 | 
					.vscode/
 | 
				
			||||||
 | 
					build/
 | 
				
			||||||
 | 
					.cache/
 | 
				
			||||||
| 
						 | 
					@ -13,8 +13,12 @@ project ("mazzGame")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
aux_source_directory(${PROJECT_SOURCE_DIR}/src sourceCodeList)
 | 
					aux_source_directory(${PROJECT_SOURCE_DIR}/src sourceCodeList)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 将源代码添加到此项目的可执行文件。
 | 
					# 将源代码添加到此项目的可执行文件。
 | 
				
			||||||
add_executable (mazzGame ${sourceCodeList} "src/Maze.cpp")
 | 
					add_executable (mazzGame ${sourceCodeList})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install(FILES ${CMAKE_SOURCE_DIR}/src/config.ini DESTINATION ${CMAKE_BINARY_DIR}/x64-debug/config.ini )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (CMAKE_VERSION VERSION_GREATER 3.12)
 | 
					if (CMAKE_VERSION VERSION_GREATER 3.12)
 | 
				
			||||||
  set_property(TARGET mazzGame PROPERTY CXX_STANDARD 20)
 | 
					  set_property(TARGET mazzGame PROPERTY CXX_STANDARD 20)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,6 +12,15 @@ ConfigReader::~ConfigReader()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MazeData ConfigReader::getSymbols() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return symbols;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					void ConfigReader::setSymbols(MazeData &value)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    symbols = value;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
std::string ConfigReader::trim(const std::string &s)
 | 
					std::string ConfigReader::trim(const std::string &s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    auto start = s.find_first_not_of(" \t\r\n");
 | 
					    auto start = s.find_first_not_of(" \t\r\n");
 | 
				
			||||||
| 
						 | 
					@ -21,7 +30,7 @@ std::string ConfigReader::trim(const std::string &s)
 | 
				
			||||||
    return s.substr(start, end - start + 1);
 | 
					    return s.substr(start, end - start + 1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool ConfigReader::load(std::string &path)
 | 
					bool ConfigReader::load(const std::string &path)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    std::ifstream file(path);
 | 
					    std::ifstream file(path);
 | 
				
			||||||
    if (!file.is_open())
 | 
					    if (!file.is_open())
 | 
				
			||||||
| 
						 | 
					@ -87,3 +96,16 @@ bool ConfigReader::load(std::string &path)
 | 
				
			||||||
    file.close();
 | 
					    file.close();
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ConfigReader::getDifficulty()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return difficulty;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					int ConfigReader::getMazeHeight()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return mazeHeight;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					int ConfigReader::getMazeWidth()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return mazeWidth;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,10 @@ public:
 | 
				
			||||||
    MazeData getSymbols() const;
 | 
					    MazeData getSymbols() const;
 | 
				
			||||||
    void setSymbols(MazeData &value);
 | 
					    void setSymbols(MazeData &value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int getDifficulty();
 | 
				
			||||||
 | 
					    int getMazeHeight();
 | 
				
			||||||
 | 
					    int getMazeWidth();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    std::string trim(const std::string &s);
 | 
					    std::string trim(const std::string &s);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,7 @@
 | 
				
			||||||
#include "Game.h"
 | 
					#include "Game.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Game::Game()
 | 
					Game::Game()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -8,9 +10,9 @@ Game::~Game()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Game::loadConfig(const std::string &filePath, MazeData &data)
 | 
					void Game::loadConfig(const std::string &filePath)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    m_config.setSymbols(data);
 | 
					    m_config.setSymbols(m_mazeData);
 | 
				
			||||||
    m_config.load(filePath);
 | 
					    m_config.load(filePath);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
void Game::initMaze()
 | 
					void Game::initMaze()
 | 
				
			||||||
| 
						 | 
					@ -19,3 +21,18 @@ void Game::initMaze()
 | 
				
			||||||
void Game::run()
 | 
					void Game::run()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Game::printConfig()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    auto sym = m_config.getSymbols();
 | 
				
			||||||
 | 
					    std::cout << "符号配置:\n";
 | 
				
			||||||
 | 
					    std::cout << "墙壁: " << sym.getWall() << "\n";
 | 
				
			||||||
 | 
					    std::cout << "空地: " << sym.getEmpty() << "\n";
 | 
				
			||||||
 | 
					    std::cout << "玩家: " << sym.getPlayer() << "\n";
 | 
				
			||||||
 | 
					    std::cout << "怪物: " << sym.getMonster() << "\n";
 | 
				
			||||||
 | 
					    std::cout << "陷阱: " << sym.getTrap() << "\n";
 | 
				
			||||||
 | 
					    std::cout << "出口: " << sym.getExit() << "\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    std::cout << "\n迷宫大小: " << m_config.getMazeWidth() << "x" << m_config.getMazeHeight() << "\n";
 | 
				
			||||||
 | 
					    std::cout << "怪物AI难度: " << m_config.getDifficulty() << std::endl;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
#include "Config.h"
 | 
					#include "Config.h"
 | 
				
			||||||
#include "MazeData.h"
 | 
					#include "MazeData.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Game
 | 
					class Game
 | 
				
			||||||
| 
						 | 
					@ -17,7 +18,8 @@ public:
 | 
				
			||||||
    Game();
 | 
					    Game();
 | 
				
			||||||
    ~Game();
 | 
					    ~Game();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void loadConfig(const std::string &filePath, MazeData &data);
 | 
					    void loadConfig(const std::string &filePath);
 | 
				
			||||||
 | 
					    void printConfig();
 | 
				
			||||||
    void initMaze();
 | 
					    void initMaze();
 | 
				
			||||||
    void run();
 | 
					    void run();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,16 @@
 | 
				
			||||||
#include "main.h"
 | 
					#include "main.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <windows.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main()
 | 
					int main()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SetConsoleOutputCP(CP_UTF8);
 | 
				
			||||||
 | 
					    SetConsoleCP(CP_UTF8);
 | 
				
			||||||
    std::cout << "Hello CMake." << std::endl;
 | 
					    std::cout << "Hello CMake." << std::endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Game game;
 | 
					    Game game;
 | 
				
			||||||
    game.loadConfig("config.txt");
 | 
					    game.loadConfig("F:\\mazzGame\\mazzGame\\src\\config.ini");
 | 
				
			||||||
    game.initMaze();
 | 
					    game.initMaze();
 | 
				
			||||||
    game.run();
 | 
					    game.run();
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue