summaryrefslogtreecommitdiff
path: root/Source/Applications/Demos/GOL.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Applications/Demos/GOL.cpp')
-rw-r--r--Source/Applications/Demos/GOL.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/Source/Applications/Demos/GOL.cpp b/Source/Applications/Demos/GOL.cpp
index 32eb30a..e6da3a6 100644
--- a/Source/Applications/Demos/GOL.cpp
+++ b/Source/Applications/Demos/GOL.cpp
@@ -1,6 +1,7 @@
#include <Binding/VirtualTerminal.class.h>
#include <Binding/Thread.class.h>
#include <String.class.h>
+#include <ByteArray.class.h>
#include <Rand.ns.h>
int main(Vector<String> args) {
@@ -22,7 +23,7 @@ int main(Vector<String> args) {
}
}
- char *tmp = new char[w * h + 1];
+ ByteArray tmp((w + 1) * (h + 1));
bool run = true;
while (run) {
@@ -37,7 +38,7 @@ int main(Vector<String> args) {
}
}
outvt.moveCursor(0, 0);
- outvt << String(tmp, w*h) << "Press Ctrl+h for help";
+ outvt << tmp.toString() << "Press Ctrl+h for help";
//Compute next generation
for (int y = 0; y < h; y++) {
@@ -82,12 +83,16 @@ int main(Vector<String> args) {
u64int y = Rand::rand() * h / Rand::max();
cells[x * h + y] = true;
}
+ } else if (kp.character == WChar("p")) {
+ outvt << " [PAUSED] press a key to resume";
+ invt.getKeypress();
} else if (kp.character == WChar("h")) {
outvt << "\n\n** Melon's demo Game Of Life Simulator help :\n";
outvt << " - ctrl+c : quit\n";
outvt << " - ctrl+h : show this\n";
+ outvt << " - ctrl+p : pause\n";
outvt << " - ctrl+r : add some random cells\n";
- outvt << " - ctrl+R : add more cells, but not random\n\n";
+ outvt << " - ctrl+R : add more cells, still random\n\n";
outvt << "Press any key to return to simultaor...";
invt.getKeypress();
}