class
Figure
def
initialize(code,nickName)
@code
,
@nickName
=code,nickName
end
def
code
@code
end
def
nickName
@nickName
end
def
move(direction,stepSize)
"moving to #{direction} with #{stepSize} steps"
end
def
to_s
"Code: #{@code}, NickName: #{@nickName}"
end
end
class
Human < Figure
def
initialize(ability,nickName)
super
(-
1
,nickName)
@ability
=ability
end
def
to_s
"Code: #{@code}, NickName: #{@nickName}, Abilitiy: #{@ability}"
#
4
end
end
class
Alien < Figure
def
initialize(mask,code,nickName)
super
(code,nickName)
@mask
=mask
end
def
to_s
super
+
" Mask: #{@mask}"
#
5
end
def
move(direction,stepSize)
"#{stepSize} steps to #{direction}"
end
end
class
Zork < Alien
def
hire
@hire
end
def
initialize(hire,code,nickName,mask)
super
(mask,code,nickName)
@hire
=hire
end
def
to_s
super
+
" #{@hire}"
end
def
getFigures
@code
+
" "
+
@nickName
end
end
if
__FILE__
==
$0
baseFigure=Figure.
new
(
"someCode"
,
"some NickName"
)
nucox=Alien.
new
(
"Red"
,
"ALN101"
,
"nu-cox"
)
puts nucox.to_s
puts nucox.move(
"left"
,
10
)
halilo=Human.
new
(
1002
,
"Halilo"
)
puts halilo.to_s
puts halilo.move(
"downside"
,
5
)
bettleJuice=Zork.
new
(
"Numinice di reye tuba kitaa"
,
"ZRK-76"
,
"Bettle Juice"
,
"Zen"
)
puts bettleJuice.to_s
puts bettleJuice.getFigures
end