添加基础文件
							parent
							
								
									be44a69100
								
							
						
					
					
						commit
						71d17de0e7
					
				| 
						 | 
					@ -14,7 +14,7 @@ project ("mazzGame")
 | 
				
			||||||
aux_source_directory(${PROJECT_SOURCE_DIR}/src sourceCodeList)
 | 
					aux_source_directory(${PROJECT_SOURCE_DIR}/src sourceCodeList)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 将源代码添加到此项目的可执行文件。
 | 
					# 将源代码添加到此项目的可执行文件。
 | 
				
			||||||
add_executable (mazzGame ${sourceCodeList})
 | 
					add_executable (mazzGame ${sourceCodeList} "src/Maze.cpp")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					#include "Config.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ConfigReader::ConfigReader()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ConfigReader::~ConfigReader()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ConfigReader::load(std::string& path)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ConfigData::ConfigData()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ConfigData::~ConfigData()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ConfigData::setSymbol(char wall, char empty, char player, char monster, char trap, char exit)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include<string>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ConfigReader
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						ConfigReader();
 | 
				
			||||||
 | 
						~ConfigReader();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void load(std::string& path);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ConfigData
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						ConfigData();
 | 
				
			||||||
 | 
						~ConfigData();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void setSymbol(char wall, char empty, char player, char monster,char trap, char exit);
 | 
				
			||||||
 | 
						void getSymbol(char& wall, char& empty, char& player, char& monster, char& trap, char& exit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void setDiffculty(int level);
 | 
				
			||||||
 | 
						int getDiffculty();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						char m_wall, m_empty, m_player, m_monster, m_trap, m_exit;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						int m_monsterAILevel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					#include "Game.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Game::Game()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Game::~Game()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Game::loadConfig(const std::string& filePath)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "Config.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Game
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ConfigReader m_config;
 | 
				
			||||||
 | 
						ConfigData m_configData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool m_isRunning = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						Game();
 | 
				
			||||||
 | 
						~Game();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void loadConfig(const std::string& filePath,ConfigData& data);
 | 
				
			||||||
 | 
						void initMaze(ConfigData data);
 | 
				
			||||||
 | 
						void run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					#include "Maze.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Maze::Maze()
 | 
				
			||||||
 | 
						:width(0),height(0)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Maze::~Maze()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Maze::setMazeSymbols(char wall, char empty, char player, char monster, char trap, char exit)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					#include<string>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct Position {
 | 
				
			||||||
 | 
						int x, y;
 | 
				
			||||||
 | 
						bool operator==(const Position& other) const {
 | 
				
			||||||
 | 
							return x == other.x && y == other.y;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 用于存储字符符号
 | 
				
			||||||
 | 
					struct MazeSymbols {
 | 
				
			||||||
 | 
						char wall, empty, player, monster, trap, exit;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Maze
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						Maze();
 | 
				
			||||||
 | 
						~Maze();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void setMazeSymbols(char wall, char empty, char player, char monster, char trap, char exit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void generate(int w, int h, const MazeSymbols& sym);
 | 
				
			||||||
 | 
						void draw(const Position& playerPos, const std::vector<Position>& monsterPos) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool isWalkable(const Position& p) const;
 | 
				
			||||||
 | 
						bool isExit(const Position& p) const;
 | 
				
			||||||
 | 
						bool checkTrap(const Position& p) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						int m_width, m_height;
 | 
				
			||||||
 | 
						std::vector<std::string> m_grid;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					[Symbols]
 | 
				
			||||||
 | 
					Wall = #
 | 
				
			||||||
 | 
					Player = @
 | 
				
			||||||
 | 
					Monster = M
 | 
				
			||||||
 | 
					Trap = X
 | 
				
			||||||
 | 
					Exit = E
 | 
				
			||||||
 | 
					Empty = .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Difficulty]
 | 
				
			||||||
 | 
					# 0: 随机移动,1: BFS偏向,2: A*精确追踪
 | 
				
			||||||
 | 
					MonsterAI = 1
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					#include "main.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						std::cout << "Hello CMake." << std::endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Game game;
 | 
				
			||||||
 | 
						game.loadConfig("config.txt");
 | 
				
			||||||
 | 
						game.initMaze();
 | 
				
			||||||
 | 
						game.run();
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "Game.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <iostream>
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: 在此处引用程序需要的其他标头。
 | 
					// TODO: 在此处引用程序需要的其他标头。
 | 
				
			||||||
| 
						 | 
					@ -1,12 +0,0 @@
 | 
				
			||||||
// mazzGame.cpp: 定义应用程序的入口点。
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "mazzGame.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int main()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	std::cout << "Hello CMake." << std::endl;
 | 
					 | 
				
			||||||
	return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue