From 921a03f9e25d11d21e786015f65a359a22c1641e Mon Sep 17 00:00:00 2001 From: JoeStrout Date: Sat, 28 Jan 2023 18:41:49 -0700 Subject: [PATCH] Added MiniScript port of 52_Kinema --- .../52_Kinema/MiniScript/README.md | 3 ++ .../52_Kinema/MiniScript/kinema.ms | 40 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 00_Alternate_Languages/52_Kinema/MiniScript/README.md create mode 100644 00_Alternate_Languages/52_Kinema/MiniScript/kinema.ms diff --git a/00_Alternate_Languages/52_Kinema/MiniScript/README.md b/00_Alternate_Languages/52_Kinema/MiniScript/README.md new file mode 100644 index 00000000..f52e8746 --- /dev/null +++ b/00_Alternate_Languages/52_Kinema/MiniScript/README.md @@ -0,0 +1,3 @@ +Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html). + +Conversion to [MiniScript](https://miniscript.org). diff --git a/00_Alternate_Languages/52_Kinema/MiniScript/kinema.ms b/00_Alternate_Languages/52_Kinema/MiniScript/kinema.ms new file mode 100644 index 00000000..9fb27071 --- /dev/null +++ b/00_Alternate_Languages/52_Kinema/MiniScript/kinema.ms @@ -0,0 +1,40 @@ +// Kinema +// +// Ported from BASIC to MiniScript by Joe Strout + +print " "*33 + "KINEMA" +print " "*15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" +print; print; print + +checkAnswer = function(prompt, correctValue) + answer = input(prompt).val + right = abs((answer - correctValue)/answer) < 0.15 + if right then + print "Close enough!" + else + print "Not even close...." + end if + print "Correct answer is " + correctValue + return right +end function + +doOneRun = function + print; print + rightCount = 0 + V = 5 + floor(35*rnd) + print "A ball is thrown upwards at " + V + " meters per second." + print + rightCount += checkAnswer("How high will it go (in meters)? ", 0.05 * V^2) + rightCount += checkAnswer("How long until it returns (in seconds)? ", V/5) + t = 1 + floor(2*V*rnd)/10 + rightCount += checkAnswer("What will its velocity be after " + t + + " seconds? ", V-10*t) + print + print rightCount + " right out of 3." + if rightCount >= 2 then print " Not bad." +end function + +// main loop (press control-C to break out) +while true + doOneRun +end while