import math/Random
Animal: abstract class {
makeNoise: abstract func
}
Sheep: class extends Animal {
makeNoise: func {
"Baaaaaaa!" println()
}
}
Wolf: class extends Animal {
makeNoise: func {
"Hooooowl!" println()
}
}
"Enter a number between 0 (inclusive) and 3 (exclusive)" println()
badNumber := Random randRange(0, 3)
inputNumber := stdin readLine() toInt()
animals := [Sheep new(), Sheep new(), Sheep new()]
animals[badNumber] = Wolf new()
"Animal noise:" println()
animals[inputNumber] makeNoise()
match (animals[inputNumber]) {
case sheep: Sheep => { "It's a stupid, annoying sheep!" println() }
case wolf: Wolf => { "AHH! A WOLF! You got eaten. :/ R.I.P." println() }
}
ryan@DevPC-LX:~/golf/obs$ rock -v spec.ooc
Parsing...
Resolving...
obs/spec.ooc:22:13 error No such function new() for `SheepClass`
animals := [Sheep new(), Sheep new(), Sheep new()]
~~~~~~~~~
[FAIL]
ryan@DevPC-LX:~/golf/obs$