diff options
Diffstat (limited to 'src/tool/moneycount/main.cpp')
-rw-r--r-- | src/tool/moneycount/main.cpp | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/src/tool/moneycount/main.cpp b/src/tool/moneycount/main.cpp deleted file mode 100644 index 2c3d56c..0000000 --- a/src/tool/moneycount/main.cpp +++ /dev/null @@ -1,180 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <fstream> -#include <iostream> -#include <vector> -#include <algorithm> -#include <cmath> - -#include "mmo.hpp" -#include "athena_text.hpp" -#include "inf.hpp" - -#define ATHENA_FILE "save/athena.txt" -#define ACCREG_FILE "save/accreg.txt" - -std::vector<int> values; - -void countAthena() -{ - int total = 0; - std::string input; - std::ifstream fp(ATHENA_FILE); - char *buffer = new char[65536]; - - while (fp.good()) - { - std::getline(fp,input); - mmo_charstatus *thisChar = new struct mmo_charstatus; - - strcpy(buffer,input.c_str()); - - if (mmo_char_fromstr(buffer, thisChar)) - { - total++; - values.push_back(thisChar->zeny); - } - - delete thisChar; - } - - - std::cout << "Parsed a total of " << total << " lines in " << ATHENA_FILE << std::endl << std::endl; - - delete [] buffer; - fp.close(); -} - -void countAccReg() -{ - int total = 0; - std::ifstream fp(ACCREG_FILE); - char *buffer = new char[65536]; - while (fp.good()) - { - std::string line; - std::getline(fp, line); - struct accreg *reg = new struct accreg; - - strcpy(buffer, line.c_str()); - - if (accreg_fromstr(buffer, reg)) - { - total++; - for (int i = 0; i < reg->reg_num; i++) - { - if (strcmp(reg->reg[i].str,"#BankAccount") == 0) - { - values.push_back(reg->reg[i].value); - } - } - } - - delete reg; - } - - std::cout << "Parsed a total of " << total << " lines in " << ACCREG_FILE << std::endl << std::endl; - - delete [] buffer; - fp.close(); -} - -stlplus::inf stdDevTotal(0); -stlplus::inf sum(0); -stlplus::inf mean(0); - -bool lessthan (int i,int j) { return (i<j); } -void findstddev(int i) { stdDevTotal += stlplus::inf((stlplus::inf(i) - mean) * (stlplus::inf(i) - mean)); } -void findSum(int i) { sum += stlplus::inf(i); } - -stlplus::inf infsqrt(stlplus::inf &x) -{ - stlplus::inf old(x); - stlplus::inf newv(x / stlplus::inf(2)); - while (old - newv > stlplus::inf(1)) - { - old = newv; - newv = old - (old * old - x) / (stlplus::inf(2) * old); - } - return newv; -} - - -void showStats() -{ - // Reset globals - sum = 0; - mean = 0; - stdDevTotal = 0; - - std::sort(values.begin(), values.end(), lessthan); - std::for_each(values.begin(), values.end(), findSum); - - stlplus::inf total(sum); - stlplus::inf count(values.size()); - stlplus::inf mean(total / count); - - std::for_each(values.begin(), values.end(), findstddev); - - int a4th = stlplus::inf(count / stlplus::inf(4)).to_int(); - int a10th = stlplus::inf(count / stlplus::inf(10)).to_int(); - - int lower = values[0], - - t1 = values[a10th * 1], - t2 = values[a10th * 2], - - q1 = values[a4th * 1], - - t3 = values[a10th * 3], - t4 = values[a10th * 4], - - median = values[a4th * 2], - - t6 = values[a10th * 6], - t7 = values[a10th * 7], - - q3 = values[a4th * 3], - - t8 = values[a10th * 8], - t9 = values[a10th * 9], - - upper = values[count.to_int() - 1]; - - stlplus::inf variance(stdDevTotal / count); - - std::cout << "Sum = " << total - << "\nCount = " << count - << "\nMean = " << mean - << "\nSimple Variance = " << variance - << "\nStandard Deviation = " << infsqrt(variance) - << "\nLower bound = " << lower - << "\n10th Percentile = " << t1 - << "\n20th Percentile = " << t2 - << "\nQ1 = " << q1 - << "\n30th Percentile = " << t3 - << "\n40th Percentile = " << t4 - << "\nMedian = " << median - << "\n60th Percentile = " << t6 - << "\n70th Percentile = " << t7 - << "\nQ3 = " << q3 - << "\n80th Percentile = " << t8 - << "\n90th Percentile = " << t9 - << "\nUpper bound = " << upper << std::endl << std::endl; -} - -int main() -{ - countAthena(); - std::cout << "The stats for player held money is:" << std::endl; - showStats(); - values.clear(); - - countAccReg(); - std::cout << "The stats for bank held money is:" << std::endl; - showStats(); - - return 0; -} - |