From 4a98d250d76448a4942c422b655036c8d802dc0a Mon Sep 17 00:00:00 2001 From: Benjamin Kraft Date: Thu, 26 Jan 2023 10:42:53 +0100 Subject: [PATCH] spectators calculate --- src/Queue.h | 4 ++-- src/Spectator.cpp | 28 +++++++++++++++++++++++++++- src/Spectator.h | 2 +- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/Queue.h b/src/Queue.h index 12e8c49..7af3a49 100644 --- a/src/Queue.h +++ b/src/Queue.h @@ -7,7 +7,7 @@ #include #include #include -#include +#include #define MAX_QUEUE_SIZE 100 @@ -62,7 +62,7 @@ public: template class EventQueue : protected Queue{ - std::unordered_set *> listeners; + std::set *> listeners; void update() override { EventType * event = this->pop(); diff --git a/src/Spectator.cpp b/src/Spectator.cpp index 44160e7..df597cb 100644 --- a/src/Spectator.cpp +++ b/src/Spectator.cpp @@ -4,11 +4,19 @@ #include "Game.h" void Spectator::OnWallJumped(WallJumpEvent *event) { + float timeDiff = Game::instance->eTime - event->time; + if (timeDiff > 2){ + currentMessage = "Ignored event"; + return; + } + currentMessage = "Calculating prime..."; + int prime = getHighPrime(); + currentMessage = std::to_string(prime); } void Spectator::OnWallCrashed(WallCrashEvent *event) { - + currentMessage = "Crash!"; } @@ -41,4 +49,22 @@ void Spectator::draw(QPainter &painter) const { painter.restore(); } +int Spectator::getHighPrime() { + int val = 100'000'000; + int start = int(Game::Random(val, val * 1.5)); + for (int i = start; i < start + 100; i++){ + bool isPrime = true; + for (int j = 3; j < i; j++){ + if (i % j == 0){ + isPrime = false; + break; + } + } + if (isPrime){ + return i; + } + } + return 2; +} + diff --git a/src/Spectator.h b/src/Spectator.h index 43d6009..5d480de 100644 --- a/src/Spectator.h +++ b/src/Spectator.h @@ -7,7 +7,7 @@ protected: void OnWallJumped(WallJumpEvent * event) override; void OnWallCrashed(WallCrashEvent * event) override; std::string currentMessage; - + static int getHighPrime(); public: QPoint pos; QSize size;