修复配置文件读取
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