Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: Scores/Scores.cpp
- Revision:
- 16:a2c945279b79
- Child:
- 17:cb39d9fa08dc
diff -r fa5282fcd134 -r a2c945279b79 Scores/Scores.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Scores/Scores.cpp Wed Apr 24 13:44:12 2019 +0000 @@ -0,0 +1,65 @@ +/* Scores.cpp +Processes new scores and saves +the highest ones. +23.4.19 +*/ +#include "Scores.h" + +Scores::Scores() +{ + _top_three[0] = 0; + _top_three[1] = 0; + _top_three[2] = 0; +} + +Scores::~Scores() +{ + +} + +float Scores::score_calculator(int turns, int health) +{ + float new_score = health * 100 / turns; + _add_to_top_scores(new_score); + return new_score; +} + +void Scores::display_score(float current, N5110 &lcd) +{ + char buffer[14]; + sprintf(buffer, "%.0f", current); + lcd.printString(" Score :", 10, 4); + lcd.printString(buffer, 60, 4); +} + +void Scores::display_top_scores(N5110 &lcd) +{ + char buffer[14]; + sprintf(buffer, "%.0f", _top_three[0]); + lcd.printString(" 1. ", 15, 2); + lcd.printString(buffer, 45, 2); + + sprintf(buffer, "%.0f", _top_three[1]); + lcd.printString(" 2. ", 15, 3); + lcd.printString(buffer, 45, 3); + + sprintf(buffer, "%.0f", _top_three[2]); + lcd.printString(" 3. ", 15, 4); + lcd.printString(buffer, 45, 4); +} + +void Scores::_add_to_top_scores(float new_score) +{ + if (new_score > _top_three[0]) { + _top_three[2] = _top_three[1]; + _top_three[1] = _top_three[0]; + _top_three[0] = new_score; + } + else if (new_score > _top_three[1]) { + _top_three[2] = _top_three[1]; + _top_three[1] = new_score; + } + else if (new_score > _top_three[2]) { + _top_three[2] = new_score; + } +}