From 2c67cbb4a292fa8514e490fffa2a2c224cfd71f3 Mon Sep 17 00:00:00 2001 From: Arthur Delamare Date: Tue, 13 Jan 2015 10:24:48 -0500 Subject: [PATCH] example: rosettacode 100 doors Signed-off-by: Arthur Delamare --- examples/rosettacode/doors_with_classes.nit | 34 +++++++++ tests/sav/doors_with_classes.res | 100 +++++++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 examples/rosettacode/doors_with_classes.nit create mode 100644 tests/sav/doors_with_classes.res diff --git a/examples/rosettacode/doors_with_classes.nit b/examples/rosettacode/doors_with_classes.nit new file mode 100644 index 0000000..62c5f14 --- /dev/null +++ b/examples/rosettacode/doors_with_classes.nit @@ -0,0 +1,34 @@ +#!/usr/bin/env nit +# +# This file is part of NIT ( http://www.nitlanguage.org ). +# This program is public domain + +# Task: 100 doors +# SEE: + +# A door with two states: open or closed +class Door + # Is this door open? + var open = false + + # Toggle bool value of open + fun toggle do open = not open + + redef fun to_s: String + do + return if open then "Open" else "Closed" + end +end + +var doors = new Array[Door] +for door in [0..100[ do doors.add(new Door) + +var n = 100 +for visit in [0..n[ do + var i = visit + while i < n do + doors[i].toggle + i += visit+1 + end +end +for i in [0..n[ do print "Door {i+1}: {doors[i]}" diff --git a/tests/sav/doors_with_classes.res b/tests/sav/doors_with_classes.res new file mode 100644 index 0000000..23c9daf --- /dev/null +++ b/tests/sav/doors_with_classes.res @@ -0,0 +1,100 @@ +Door 1: Open +Door 2: Closed +Door 3: Closed +Door 4: Open +Door 5: Closed +Door 6: Closed +Door 7: Closed +Door 8: Closed +Door 9: Open +Door 10: Closed +Door 11: Closed +Door 12: Closed +Door 13: Closed +Door 14: Closed +Door 15: Closed +Door 16: Open +Door 17: Closed +Door 18: Closed +Door 19: Closed +Door 20: Closed +Door 21: Closed +Door 22: Closed +Door 23: Closed +Door 24: Closed +Door 25: Open +Door 26: Closed +Door 27: Closed +Door 28: Closed +Door 29: Closed +Door 30: Closed +Door 31: Closed +Door 32: Closed +Door 33: Closed +Door 34: Closed +Door 35: Closed +Door 36: Open +Door 37: Closed +Door 38: Closed +Door 39: Closed +Door 40: Closed +Door 41: Closed +Door 42: Closed +Door 43: Closed +Door 44: Closed +Door 45: Closed +Door 46: Closed +Door 47: Closed +Door 48: Closed +Door 49: Open +Door 50: Closed +Door 51: Closed +Door 52: Closed +Door 53: Closed +Door 54: Closed +Door 55: Closed +Door 56: Closed +Door 57: Closed +Door 58: Closed +Door 59: Closed +Door 60: Closed +Door 61: Closed +Door 62: Closed +Door 63: Closed +Door 64: Open +Door 65: Closed +Door 66: Closed +Door 67: Closed +Door 68: Closed +Door 69: Closed +Door 70: Closed +Door 71: Closed +Door 72: Closed +Door 73: Closed +Door 74: Closed +Door 75: Closed +Door 76: Closed +Door 77: Closed +Door 78: Closed +Door 79: Closed +Door 80: Closed +Door 81: Open +Door 82: Closed +Door 83: Closed +Door 84: Closed +Door 85: Closed +Door 86: Closed +Door 87: Closed +Door 88: Closed +Door 89: Closed +Door 90: Closed +Door 91: Closed +Door 92: Closed +Door 93: Closed +Door 94: Closed +Door 95: Closed +Door 96: Closed +Door 97: Closed +Door 98: Closed +Door 99: Closed +Door 100: Open -- 1.7.9.5