This commit is contained in:
Pcornat 2021-03-11 18:07:05 +01:00
parent 5d4a3a85cc
commit 927bcaff9a
No known key found for this signature in database
GPG Key ID: 873C3ACCF970C74E

View File

@ -14,31 +14,6 @@ boost::crc_32_type::value_type getCrc32(const std::string_view my_string) {
return result.checksum();
}
/**
* \brief Un nombre ressort sous la forme d'une chaîne de caractère avec les lettres de l'alphabet. A étant 1 puis B = 2, etc.
* En gros, c'est la conversion d'une base 10 vers 26.
* \tparam T
* \param n
* \param array
*/
template<typename T, std::uint32_t alphabetSize, std::array<char, alphabetSize> alphabet>
void findStringInv(const T n, char *array) {
// le nombre de lettre présent dans le nouveau mot : le nombre / 26 donnera le nombre de lettre.
const std::size_t iterLoop{ n / alphabet.size() };
for (size_t i = 0; i < iterLoop; ++i) {
array[i] = alphabet.back();
}
if (n < alphabet.size()) {
array[0] = alphabet[n - 1];
return;
}
/*while (n > 0) {
array[i] = alphabet[(--n) % alphabet.size()];
n /= alphabetSize;
++i;
}*/
}
/**
* \brief
* \tparam T
@ -255,9 +230,9 @@ int main() {
'Z' }; // taille = 26
constexpr std::size_t maxCompute = 308915776;
constexpr std::size_t maxDig = maxDigits(maxCompute);
std::array<char, maxDig> tmp{};
tmp.fill('\0');
NumberBase26<maxDig> number_base_26{ alphabet };
for (size_t i = 0; i < maxCompute; ++i, ++number_base_26) {
const auto crc = ~(getCrc32(std::string_view{ number_base_26.data.data(), maxDig }));
if (std::find(cheat_list.cbegin(), cheat_list.cend(), crc) != cheat_list.cend())