From aa808bf77d593f443816526bbf31b9794bfc90eb Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Thu, 4 Dec 2025 23:35:21 +0100 Subject: [PATCH] moved chance from sag to main --- game.cpp | 10 ++++++++++ rogueviz/sag/annealing.cpp | 9 --------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/game.cpp b/game.cpp index 2cf8eafe..436aa865 100644 --- a/game.cpp +++ b/game.cpp @@ -68,6 +68,16 @@ EX ld randf_from(std::mt19937& r) { EX ld hrandf() { return randf_from(hrngen); } +/** returns true with probability p */ +EX bool chance(double p) { + p *= double(hrngen.max()) + 1; + auto l = hrngen(); + auto pv = (decltype(l)) p; + if(l < pv) return true; + if(l == pv) return chance(p-pv); + return false; + } + /** Returns an integer corresponding to the current state of \link hrngen \endlink. */ EX int hrandstate() { diff --git a/rogueviz/sag/annealing.cpp b/rogueviz/sag/annealing.cpp index 56515105..ba6e6a27 100644 --- a/rogueviz/sag/annealing.cpp +++ b/rogueviz/sag/annealing.cpp @@ -20,15 +20,6 @@ long long numiter = 0; int vizsa_start; int vizsa_len = 5; -bool chance(double p) { - p *= double(hrngen.max()) + 1; - auto l = hrngen(); - auto pv = (decltype(l)) p; - if(l < pv) return true; - if(l == pv) return chance(p-pv); - return false; - } - bool twoway = false; int moves, nomoves;