Imagine you have a version with :from_version
:
class MyUploader < CarrierWave::Uploader::Base
version :thumb do
process resize_to_fill: [280, 280]
end
1) склонировать репозиторий. Если настроил гит, то можно написать в консоли | |
git clone git@github.com:hedgesky/spaceship_assistant.git | |
Если не настроил, то просто скачать исходники: | |
https://github.com/hedgesky/spaceship_assistant/archive/master.zip | |
2) Добавить двигателю атрибут "количество топлива". При создании объекта он должет устанавливаться в 0. Должна быть возможность заправить корабль (отдельным методом fuel(fuel_amount)). При прыжках и движении топливо должно расходоваться каким-то образом (придумай сам, каким; но можем обсудить этот вопрос). При попытке движения или прыжка с недостаточным уровнем топлива должно выбрасываться исключение NotEnoughFuel. |
В последнем коммите мы добавили нашему ассистенту навигационные возможности. Теперь он умеет показывать карту вселенной и прыгать в различные звездные системы. | |
Дальнейшие планы: планирование полета с помощью journal.rb, конечно же, хорошо, но никто не знает заранее, с чем столкнется капитан корабля во время полета. Поэтому было принято стратегическое решение о добавлении ассистенту возможности спрашивать капитана о следующем действии: на выбор предоставляется список возможных действий. Капитан выбирает - ассистент реализует. Итак, время не ждет, давайте скорее реализуем это! | |
Технические подробности: | |
Я добавил в проект Gemfile. Это файл с перечислением библиотек-зависимостей проекта. Чтобы установить их, выполни: | |
$ gem install bundler # устанавливается один раз и для всех проектов. Скачивает все зависимости и устанавливает их. | |
$ bundle # Выполняется для каждого проекта при изменении Gemfile. Обновляет зависимости. |
Я достаточно сильно улучшил наши кораблики с момента нашего последнего скайп-разговора. Я добавил возможность смотреть текущее состояние корабля, список кораблей в текущей системе, ввел отношение других кораблей к игроку и даже возможность связи с другим кораблем! | |
Но мы затевали создание этой системы для того, чтобы ты мог изучить Ruby, поэтому вот тебе несколько заданий: | |
1. Если после прыжка в какую-либо систему посмотреть состояние корабля, остаток топлива будет показывать с большим количеством знаков после запятой. Попытайся понять, почему так происходит, и предложи пути решения проблемы. | |
2. Надо улучшить механизм заправки корабля: если происходит попытка заправить корабль на объем, больший доступного, надо бросать соответсвующее исключение. | |
3. Сделай так, чтобы при связи с кораблем выдавалось случайное сообщение из набора (сейчас доступно только одно). |
argument_values.map do |element| | |
"sin(#{element.round(3)})is #{sin(element)}" | |
end |
channel in1 = [4] of { int }; | |
channel in2 = [4] of { int }; | |
channel out = [8] of { int }; | |
int turn; | |
int t1, t2; | |
proctype read() { | |
do | |
:: | |
if |
class CreateUser | |
def self.call(*args) | |
new(*args).call | |
end | |
def initialize(name) | |
@name = name | |
end | |
def call |