Compare commits

..

No commits in common. "main" and "v0.1" have entirely different histories.
main ... v0.1

9 changed files with 21 additions and 73 deletions

View File

@ -19,7 +19,7 @@ MazeData ConfigReader::getSymbols() const
{
return symbols;
}
void ConfigReader::setSymbols(MazeData value)
void ConfigReader::setSymbols(MazeData &value)
{
symbols = value;
}
@ -87,14 +87,14 @@ bool ConfigReader::load(const std::string &path)
else if (section == "Difficulty")
{
if (key == "MonsterAI")
symbols.setDifficulty(std::stoi(value));
difficulty = std::stoi(value);
}
else if (section == "Maze")
{
if (key == "Width")
symbols.setMazeWidth(std::stoi(value));
mazeWidth = std::stoi(value);
else if (key == "Height")
symbols.setMazeHeight(std::stoi(value));
mazeHeight = std::stoi(value);
}
}

View File

@ -1,4 +1,4 @@
#pragma once
#pragma once
#include "MazeData.h"
#include <string>
@ -12,7 +12,7 @@ public:
bool load(const std::string &path);
MazeData getSymbols() const;
void setSymbols(MazeData value);
void setSymbols(MazeData &value);
int getDifficulty();
int getMazeHeight();

View File

@ -14,18 +14,12 @@ void Game::loadConfig(const std::string &filePath)
{
m_config.setSymbols(m_mazeData);
m_config.load(filePath);
m_mazeData = m_config.getSymbols();
}
void Game::initMaze()
{
m_maze.setMazeData(m_mazeData);
m_maze.generate();
}
void Game::run()
{
Position player(1, 1);
std::vector<Position> monster{Position(2, 2), Position(4, 4)};
m_maze.draw(player,monster);
}
void Game::printConfig()

View File

@ -1,8 +1,8 @@
#pragma once
#pragma once
#include "Config.h"
#include "MazeData.h"
#include "Maze.h"
#include <string>
@ -11,7 +11,6 @@ class Game
private:
ConfigReader m_config;
MazeData m_mazeData;
Maze m_maze;
bool m_isRunning = true;

View File

@ -1,4 +1,4 @@
#include "Maze.h"
#include "Maze.h"
#include <algorithm>
#include <iostream>
@ -20,17 +20,15 @@ Maze::~Maze()
{
}
void Maze::setMazeData(const MazeData &data)
void Maze::setMazeData(MazeData &data)
{
m_symbols = data;
}
void Maze::generate()
void Maze::generate(int w, int h, const MazeData &sym)
{
int mazeWidth = m_symbols.getMazeWidth();
int mazeHeight = m_symbols.getMazeHeight();
m_width = (mazeWidth % 2 == 0) ? mazeWidth + 1 : mazeWidth;
m_height = (mazeHeight % 2 == 0) ? mazeHeight + 1 : mazeHeight;
m_symbols = sym;
m_width = (w % 2 == 0) ? w + 1 : w;
m_height = (h % 2 == 0) ? h + 1 : h;
m_grid.assign(m_height, std::string(m_width, m_symbols.getWall()));
std::vector<std::vector<Cell>> cells(m_height, std::vector<Cell>(m_width));

View File

@ -1,4 +1,4 @@
#pragma once
#pragma once
#include "MazeData.h"
@ -20,9 +20,9 @@ public:
Maze();
~Maze();
void setMazeData(const MazeData &data);
void setMazeData(MazeData &data);
void generate();
void generate(int w, int h, const MazeData &sym);
void draw(const Position &playerPos, const std::vector<Position> &monsterPos) const;
bool isWalkable(const Position &p) const;

View File

@ -1,4 +1,4 @@
#include "MazeData.h"
#include "MazeData.h"
MazeData::MazeData()
{
@ -66,34 +66,4 @@ char MazeData::getExit() const
void MazeData::setExit(char value)
{
exit = value;
}
int MazeData::getDifficulty() const
{
return m_difficulty;
}
void MazeData::setDifficulty(int value)
{
m_difficulty = value;
}
int MazeData::getMazeWidth() const
{
return m_mazeWidth;
}
void MazeData::setMazeWidth(int value)
{
m_mazeWidth = value;
}
int MazeData::getMazeHeight() const
{
return m_mazeHeight;
}
void MazeData::setMazeHeight(int value)
{
m_mazeHeight = value;
}
}

View File

@ -1,4 +1,4 @@
#pragma once
#pragma once
class MazeData
{
@ -30,14 +30,6 @@ public:
void setExit(char value);
int getDifficulty() const;
void setDifficulty(int value);
int getMazeWidth() const;
void setMazeWidth(int value);
int getMazeHeight() const;
void setMazeHeight(int value);
private:
char wall;
char empty;
@ -45,9 +37,4 @@ private:
char monster;
char trap;
char exit;
int m_difficulty = 0; // 怪物AI难度
int m_mazeWidth = 21;
int m_mazeHeight = 21;
};

View File

@ -11,7 +11,7 @@ int main()
Game game;
game.loadConfig("config.ini");
//game.printConfig();
game.printConfig();
game.initMaze();
game.run();
system("pause");