- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
Робот
- Краен срок
- 12.01.2013 12:00
Срокът за предаване на решения е отминал
Разполагаме с много прост робот, който се движи по числова права. Няма
значение дали правата е с цели или реални числа. По подразбиране
роботът потегля от точка 0, но може да му бъде указана коя да е друга
точка от правата за начало. Роботът може да изпълнява две прости
команди – move
, която го премества с 1 позиция надясно и mark
,
която го кара да съобщи текущите си координати.
Задачата е да се имплементира следният прост DSL:
Да се създаде функция robot
, която приема един аргумент – началната
позиция на робота (аргументът има стойност по подразбиране 0
).
robot # Роботът ще стартира от позиция 0
robot 42 # Роботът ще стартира от позиция 42
robot
също така трябва да приема блок, който да съдържа серия от
команди move
и mark
:
robot 42 do
move
mark
end
robot
връща като резултат масив, съдържащ позициите, които роботът
е маркирал:
robot { move; move; mark; move; mark; } # => [2, 3]
robot(9) { move; mark; mark; move; move; mark; } # => [10, 10, 12]
robot(1000000) {} # => []
Забранено е използването на глобални променливи. Не използвайте
долари и други парични знаци. :-) Забранено е и използването на
дефакто глобални променливи (дефинирани някъде извън robot
,
например) за съхранение на информацията.
Hint: разгледайте
instance_eval
и напишете помощен клас, който да помни информацията, необходима на
робота.
Решения
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)
- Непроверено
- 0 успешни тест(а)
- 0 неуспешни тест(а)