Merge: doc: fixed some typos and other misc. corrections
[nit.git] / examples / rosettacode / doors_with_classes.nit
1 #!/usr/bin/env nit
2 #
3 # This file is part of NIT ( http://www.nitlanguage.org ).
4 # This program is public domain
5
6 # Task: 100 doors
7 # SEE: <http://rosettacode.org/wiki/100_doors>
8
9 # A door with two states: open or closed
10 class Door
11 # Is this door open?
12 var open = false
13
14 # Toggle bool value of open
15 fun toggle do open = not open
16
17 redef fun to_s: String
18 do
19 return if open then "Open" else "Closed"
20 end
21 end
22
23 var n = 100
24 if args.length > 0 then n = args.first.to_i
25
26 var doors = new Array[Door]
27 for door in [0..n[ do doors.add(new Door)
28
29 for visit in [0..n[ do
30 var i = visit
31 while i < n do
32 doors[i].toggle
33 i += visit+1
34 end
35 end
36 for i in [0..n[ do print "Door {i+1}: {doors[i]}"