1 #include "statistics.h"
11 Statistics *Statistics::instance_ = 0;
13 Statistics::Statistics(QObject *parent) :
24 Statistics *Statistics::instance()
27 instance_ = new Statistics;
33 int Statistics::gameCount(Difficulty difficulty) const
35 return games_.at(difficulty);
38 int Statistics::totalGameCount() const
41 for(int i = 0; i < games_.count(); ++i) {
42 count += games_.at(i);
48 qreal Statistics::averageMoves(Difficulty difficulty) const
51 if(games_.at(difficulty) > 0) {
52 count = (moves_.at(difficulty) / games_.at(difficulty));
58 int Statistics::minMoves(Difficulty difficulty) const
60 return minMoves_.at(difficulty);
63 int Statistics::maxMoves(Difficulty difficulty) const
65 return maxMoves_.at(difficulty);
68 void Statistics::addNewScore(int moves, Difficulty difficulty)
70 if(moves_.count() >= difficulty) {
71 moves_[difficulty] += moves;
74 if(maxMoves_.count() >= difficulty) {
75 if(maxMoves_.at(difficulty) < moves || maxMoves_.at(difficulty) == 0) {
76 maxMoves_[difficulty] = moves;
80 if(minMoves_.count() >= difficulty) {
81 if(minMoves_.at(difficulty) > moves || minMoves_.at(difficulty) == 0) {
82 minMoves_[difficulty] = moves;
89 void Statistics::increaseGameCount(Difficulty difficulty)
91 if(games_.count() >= difficulty) {
96 void Statistics::readFile()
98 QFile file(QString("%1/%2/%3")
99 .arg(QDir::homePath())
104 qDebug() << __PRETTY_FUNCTION__ << "No settings file";
108 if(!file.open(QIODevice::ReadOnly)) {
112 QTextStream in(&file);
115 QString str = in.readLine();
117 QStringList list = str.split(" ");
119 if(list.count() == 5) {
120 moves_[list.at(0).toInt()] = list.at(1).toInt();
121 minMoves_[list.at(0).toInt()] = list.at(2).toInt();
122 maxMoves_[list.at(0).toInt()] = list.at(3).toInt();
123 games_[list.at(0).toInt()] = list.at(4).toInt();
130 void Statistics::saveFile()
132 QDir dir(QString("%1/%2")
133 .arg(QDir::homePath())
134 .arg(HOME_DIRECTORY));
136 dir.mkpath(QString("%1/%2")
137 .arg(QDir::homePath())
138 .arg(HOME_DIRECTORY));
141 QFile file(QString("%1/%2/%3")
142 .arg(QDir::homePath())
146 if(!file.open(QIODevice::WriteOnly)) {
150 QTextStream out(&file);
152 for(int i = 0; i < games_.count(); i++) {
153 out << QString("%1 %2 %3 %4 %5\n")
156 .arg(minMoves_.at(i))
157 .arg(maxMoves_.at(i))
164 void Statistics::resetStatistics()