OGLplus  (0.59.0) a C++ wrapper for rendering APIs

eagine/sudoku_noise.cpp

Copyright Matus Chochlik. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt

#include <eagine/main.hpp>
#include <iostream>
namespace eagine {
template <unsigned S>
void sudoku_noise(
eagine::basic_sudoku_board_traits<S> traits,
application_config& cfg) {
using namespace eagine;
auto initial = [&]() {
if(cfg.is_set("gen_one")) {
return traits.make_generator().generate_one();
} else if(cfg.is_set("gen_few")) {
return traits.make_generator().generate_few();
} else if(cfg.is_set("gen_medium")) {
return traits.make_generator().generate_medium();
} else if(cfg.is_set("gen_many")) {
return traits.make_generator().generate_many();
} else {
return traits.make_diagonal();
}
};
const auto width = extract_or(cfg.get<int>("width"), 16);
const auto height = extract_or(cfg.get<int>("height"), 8);
basic_sudoku_tiling<S> bst{traits, initial()};
bst.print(std::cout, 0, 0, width, height);
}
auto main(main_ctx& ctx) -> int {
auto& cfg = ctx.config();
const auto rank = extract_or(cfg.get<int>("rank"), 4);
switch(rank) {
case 3: {
// clang-format off
sudoku_noise<3>({
{" ","▀","▄","▖","▗","▘","▝","▚","▞"},
{"?","?","?"}, " "
}, cfg);
// clang-format on
break;
}
case 4: {
// clang-format off
sudoku_noise<4>({
{" ","▀","▄","█","▌","▐","▖","▗","▘","▙","▚","▛","▜","▝","▞","▟"},
{"?","?","?","?"}, " "
}, cfg);
// clang-format on
break;
}
default:
ctx.log()
.error("invalid rank value: ${rank}")
.arg(EAGINE_ID(rank), rank);
break;
}
return 0;
}
} // namespace eagine
Class for a single-instance object providing useful information ans services.
Definition: main_ctx.hpp:45
#define EAGINE_ID(NAME)
Macro for constructing instances of eagine::identifier.
Definition: identifier.hpp:353
Common code is placed in this namespace.
Definition: eagine.hpp:21
auto config() noexcept -> application_config &
Returns a reference to application config object.
Definition: main_ctx.hpp:98
auto log() noexcept -> logger &
Returns a reference to the root logger object.
Definition: main_ctx.hpp:88

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).