spectators calculate

main
Benjamin Kraft 2 years ago
parent 4d448de222
commit 4a98d250d7
  1. 4
      src/Queue.h
  2. 28
      src/Spectator.cpp
  3. 2
      src/Spectator.h

@ -7,7 +7,7 @@
#include <thread>
#include <QApplication>
#include <mutex>
#include <unordered_set>
#include <set>
#define MAX_QUEUE_SIZE 100
@ -62,7 +62,7 @@ public:
template <typename EventType>
class EventQueue : protected Queue<EventType>{
std::unordered_set<Listener<EventType> *> listeners;
std::set<Listener<EventType> *> listeners;
void update() override {
EventType * event = this->pop();

@ -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;
}

@ -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;

Loading…
Cancel
Save