aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--changelog30
-rw-r--r--qml/pages/Game.qml8
-rw-r--r--qml/pages/LeaderBoard.qml11
3 files changed, 43 insertions, 6 deletions
diff --git a/changelog b/changelog
new file mode 100644
index 0000000..27a2100
--- /dev/null
+++ b/changelog
@@ -0,0 +1,30 @@
+<p>v0.1</p>
+<p>- Initial release</p>
+<br>
+<p>v0.1.1</p>
+<p>- Fixed bug with random zeros</p>
+<br>
+<p>v0.2</p>
+<p>- Multiple modes and difficulties (bit-size based)</p>
+<p>- Way better interface and compatibility for large grids</p>
+<p>- Renamed package to harbour-compatible name (sorry for not doing that the first time!)</p>
+<p>- Help bar/legend showing the powers of two</p>
+<br>
+<p>v1.0</p>
+<p>- Added online leaderboard!</p>
+<p>- Main feature development will stop here</p>
+<br>
+<p>v1.1</p>
+<p>- Improved xhr speed (async)</p>
+<p>- Added more information to the leaderboard</p>
+<p>- Added basic cheat detection (I hope you're loyal though)</p>
+<br>
+<p>v1.1.1</p>
+<p>- Fixed bug causing all scores to be 1 second off</p>
+<p>- Fixed floating errors</p>
+<p>- Enabled quickscroll</p>
+<br>
+<p>v1.2.0</p>
+<p>- Fixed floating errors</p>
+<p>- Added loading animation</p>
+<p>- Fixed readystate confusion</p>
diff --git a/qml/pages/Game.qml b/qml/pages/Game.qml
index a45798e..702c4a7 100644
--- a/qml/pages/Game.qml
+++ b/qml/pages/Game.qml
@@ -46,7 +46,7 @@ Page {
var query = "writeKey=" + Qt.atob(key) + "&win=true&board=default&start_time=" + start_time
+ "&end_time=" + end_time + "&difficulty=" + difficulty
+ "&level=" + level + "&cheats=" + (root.help ? "true" : "false")
- + "&name="+ username.value + "&mods=0" + "&time=" + (end_time - start_time);
+ + "&name="+ username.value + "&mods=1" + "&time=" + (end_time - start_time);
xhr.send(query);
}
@@ -78,7 +78,7 @@ Page {
if (timer.running) { // aka still playing
var end_time = (new Date()).getTime();
info_label.text = "Yeeehaaw!";
- timer_label.text = (((end_time - start_time) / 1000) + 1.0).toFixed(3) + "s - " + qsTr("Not bad!");
+ timer_label.text = (((end_time - start_time) / 1000)).toFixed(3) + "s - " + qsTr("Not bad!");
timer.running = false;
new_game.visible = true;
submit(start_time, end_time, bits, root.matrix.join(","))
@@ -123,11 +123,11 @@ Page {
interval: 1000
running: true
repeat: true
- // triggeredOnStart: true // This WOULD fix the timing bug BUT other versions are already used which would cause wrong scores...
+ triggeredOnStart: true
onTriggered: {
if (root.start_time === 0)
root.start_time = (new Date()).getTime();
- timer_label.text = parseInt(timer_label.text.substr(0, timer_label.text.indexOf('s'))) + 1 + "s";
+ timer_label.text = parseInt(timer_label.text.substr(0, timer_label.text.indexOf('s'))) + "s";
}
}
diff --git a/qml/pages/LeaderBoard.qml b/qml/pages/LeaderBoard.qml
index 80b2943..bb45e07 100644
--- a/qml/pages/LeaderBoard.qml
+++ b/qml/pages/LeaderBoard.qml
@@ -38,7 +38,11 @@ Page {
true)
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
- list.model = JSON.parse(xhr.responseText);
+ list.model = JSON.parse(xhr.responseText).sort(function(a, b){
+ const time_a = ((a.end_time[1] - a.start_time[1]) / 1000) + (a.mods === "0" ? 1.0 : 0)
+ const time_b = ((b.end_time[1] - b.start_time[1]) / 1000) + (b.mods === "0" ? 1.0 : 0)
+ return time_a - time_b;
+ });;
internet.visible = false;
loading.running = false;
} else if (xhr.readyState === 4) {
@@ -133,8 +137,11 @@ Page {
Label {
anchors.top: level.bottom
- text: (((modelData.end_time[1] - modelData.start_time[1]) / 1000) + 1.0).toFixed(3) + qsTr("s - Help: ") + modelData.cheats
+ text: (((modelData.end_time[1] - modelData.start_time[1]) / 1000) + (modelData.mods === "0" ? 1.0 : 0)).toFixed(3) + qsTr("s - Help: ") + modelData.cheats
font.pixelSize: Theme.fontSizeExtraSmall
+ Component.onCompleted: {
+ console.log(modelData.mods);
+ }
}
}
}