Rosettacode: Add BoxTheCompass
authorMATYSIAK Herve <herve.matysiak@viacesi.fr>
Wed, 10 Jun 2015 19:42:23 +0000 (15:42 -0400)
committerJean Privat <jean@pryen.org>
Tue, 16 Jun 2015 19:46:00 +0000 (15:46 -0400)
Close #1491

examples/rosettacode/boxthecompass.nit [new file with mode: 0644]
tests/sav/boxthecompass.res [new file with mode: 0644]

diff --git a/examples/rosettacode/boxthecompass.nit b/examples/rosettacode/boxthecompass.nit
new file mode 100644 (file)
index 0000000..b23ab28
--- /dev/null
@@ -0,0 +1,24 @@
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Task: Box The Compass
+# SEE: <http://rosettacode.org/wiki/Box_the_compass>
+
+var names = ["North", "North by east", "North-northeast", "Northeast by north", "Northeast","Northeast by east",
+           "East-northeast", "East by north", "East", "East by south", "East-southeast", "Southeast by east", "Southeast",
+            "Southeast by south", "South-southeast", "South by east", "South", "South by west", "South-southwest", "Southwest by south",
+            "Southwest", "Southwest by west", "West-southwest", "West by south", "West", "West by north", "West-northwest",
+            "Northwest by west", "Northwest", "Northwest by north", "North-northwest", "North by west", "North"]
+
+var degrees = [0.0, 16.87, 16.88, 33.75, 50.62, 50.63, 67.5,
+                84.37, 84.38, 101.25, 118.12, 118.13, 135.0, 151.87, 151.88,
+                168.75, 185.62, 185.63, 202.5, 219.37, 219.38, 236.25, 253.12,
+                253.13, 270.0, 286.87, 286.88, 303.75, 320.62, 320.63, 337.5,
+                354.37, 354.38]
+
+for d in degrees do
+       var h = (d / 11.25 + 0.5).floor.to_i % 32
+       print "{h+1} {names[h]} {d}"
+end
diff --git a/tests/sav/boxthecompass.res b/tests/sav/boxthecompass.res
new file mode 100644 (file)
index 0000000..91bf2e7
--- /dev/null
@@ -0,0 +1,33 @@
+1 North 0.0
+2 North by east 16.87
+3 North-northeast 16.88
+4 Northeast by north 33.75
+5 Northeast 50.62
+6 Northeast by east 50.63
+7 East-northeast 67.5
+8 East by north 84.37
+9 East 84.38
+10 East by south 101.25
+11 East-southeast 118.12
+12 Southeast by east 118.13
+13 Southeast 135.0
+14 Southeast by south 151.87
+15 South-southeast 151.88
+16 South by east 168.75
+17 South 185.62
+18 South by west 185.63
+19 South-southwest 202.5
+20 Southwest by south 219.37
+21 Southwest 219.38
+22 Southwest by west 236.25
+23 West-southwest 253.12
+24 West by south 253.13
+25 West 270.0
+26 West by north 286.87
+27 West-northwest 286.88
+28 Northwest by west 303.75
+29 Northwest 320.62
+30 Northwest by north 320.63
+31 North-northwest 337.5
+32 North by west 354.37
+1 North 354.38