The Battle for Wesnoth  1.15.2+dev
markov_generator.hpp
Go to the documentation of this file.
1 /*
2  Copyright (C) 2003 - 2018 by David White <dave@whitevine.net>
3  Part of the Battle for Wesnoth Project https://www.wesnoth.org/
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY.
11 
12  See the COPYING file for more details.
13 */
14 
15 #pragma once
16 
17 #include "utils/name_generator.hpp"
18 #include <map>
19 #include <vector>
20 
21 typedef std::map<std::u32string, std::u32string> markov_prefix_map;
22 
25  std::size_t chain_size_, max_len_;
26 public:
27  markov_generator(const std::vector<std::string>& items, std::size_t chain_size, std::size_t max_len);
28  std::string generate() const override;
29 };
markov_generator(const std::vector< std::string > &items, std::size_t chain_size, std::size_t max_len)
const std::vector< std::string > items
std::size_t chain_size_
markov_prefix_map prefixes_
std::map< std::u32string, std::u32string > markov_prefix_map
std::string generate() const override