From e758c9a1c5f0234470af99ebe669fcfaf0095794 Mon Sep 17 00:00:00 2001 From: David Wilson Date: Wed, 17 Dec 2003 01:44:03 +0000 Subject: [PATCH] Class for statistical Foot Ranking model --- stepmania/src/FootModel.cpp | 39 ++++++++++++++++++++++++++++++++++++ stepmania/src/FootModel.h | 40 +++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 stepmania/src/FootModel.cpp create mode 100644 stepmania/src/FootModel.h diff --git a/stepmania/src/FootModel.cpp b/stepmania/src/FootModel.cpp new file mode 100644 index 0000000000..c2fef5b319 --- /dev/null +++ b/stepmania/src/FootModel.cpp @@ -0,0 +1,39 @@ +#include "global.h" +/* +----------------------------------------------------------------------------- + Class: FootModel + + Desc: See header. + + Copyright (c) 2003 by the person(s) listed below. All rights reserved. + David Wilson +----------------------------------------------------------------------------- +*/ +#include "Steps.h" +#include "FootModel.h" + + +FootModel::FootModel(Steps* model) +{ + //Define and Init Non-Radar Values + double SV; + double ChaosSquare; + SV = model->GetRadarValues()[RADAR_STREAM] * model->GetRadarValues()[RADAR_VOLTAGE]; + ChaosSquare = model->GetRadarValues()[RADAR_CHAOS] * model->GetRadarValues()[RADAR_CHAOS]; + + m_predictedMeter = BETA_ZERO; + m_predictedMeter += STREAM * model->GetRadarValues()[RADAR_STREAM]; + m_predictedMeter += VOLTAGE * model->GetRadarValues()[RADAR_VOLTAGE]; + m_predictedMeter += AIR * model->GetRadarValues()[RADAR_AIR]; + m_predictedMeter += FREEZE * model->GetRadarValues()[RADAR_FREEZE]; + m_predictedMeter += CHAOS * model->GetRadarValues()[RADAR_CHAOS]; + m_predictedMeter += SXV * SV; + m_predictedMeter += CSQUARE * ChaosSquare; + if (model->GetDifficulty() == DIFFICULTY_HARD) m_predictedMeter += HEAVY; + if (model->GetDifficulty() == DIFFICULTY_EASY) m_predictedMeter += LIGHT; +} + +FootModel::GetPMeter() +{ + return m_predictedMeter; +} \ No newline at end of file diff --git a/stepmania/src/FootModel.h b/stepmania/src/FootModel.h new file mode 100644 index 0000000000..711063211f --- /dev/null +++ b/stepmania/src/FootModel.h @@ -0,0 +1,40 @@ +#ifndef FOOTMODEL_H +#define FOOTMODEL_H +/* +----------------------------------------------------------------------------- + File: FootModel.h + + Desc: Holds the equation for the statistical model for determining foot + ranking from Groove Radar and difficulty + + Copyright (c) 2003 by the person(s) listed below. All rights reserved. + David Wilson +----------------------------------------------------------------------------- +*/ +/* +Meter = 0.775 + 10.1 Stream + 5.27 Voltage - 0.905 Air - 1.10 Freeze + + 2.86 Chaos + 0.722 Heavy - 0.877 Light - 6.35 SV Interaction + - 2.58 CSQ +*/ +class FootModel +{ +private: + + //Model Coefficients + #define BETA_ZERO (0.775) + #define STREAM (10.1) + #define VOLTAGE (5.27) + #define AIR (-0.905) + #define FREEZE (-1.10) + #define CHAOS (2.86) + #define HEAVY (0.722) + #define LIGHT (-0.877) + #define SXV (-6.35) // Square/Voltage Interaction Varible + #define CSQUARE (-2.58) + double m_predictedMeter; + +public: + FootModel(Steps* model); + double GetPMeter; +}; +#endif \ No newline at end of file