Advertisement
Guest User

Untitled

a guest
May 26th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.39 KB | None | 0 0
  1. class Station
  2.   # Каждый класс должен быть в отдельном файле
  3.   attr_reader :station_name, :stations
  4.   def initialize(station_name)
  5.     # Лучше просто name назвать
  6.     @station_name = station_name
  7.     # Лучше просто trains назвать
  8.     @train_list = []
  9.   end
  10.   # Разделяй методы пустой строкой
  11.   def add_train(train)
  12.     @train_list << train
  13.   end
  14.   def send_train(train)
  15.     @train_list.delete(train)
  16.   end
  17.  
  18.  
  19. end
  20.  
  21. class Route
  22.  
  23.   attr_reader :stations, :station_name
  24.   def initialize(start_station, end_station)
  25.     @stations = [start_station, end_station]
  26.   end
  27.   def add_route(stations)
  28.     @stations.insert(-2, stations)
  29.  
  30.   end
  31.   # Разделяй методы пустой строкой
  32.   def delete_route(stations)
  33.     @stations.delete(stations)
  34.   end
  35.  
  36.   # Сделай чтобы метод выводил названия станций
  37.   def show_stations
  38.     return stations
  39.   end
  40.  
  41. end
  42.  
  43. class Train
  44.  
  45.  attr_reader :train_number, :train_type, :stations
  46.  
  47.  # пробел после initialize не нужен
  48.  # параметры лучше назвать просто number и type
  49.  # и так понятно что это номер поезда, т.к в классе поезда
  50.  # находится
  51.  def initialize (train_number, train_type)
  52.    @train_number = train_number
  53.    @train_type = train_type
  54.    @train_length = 10 # лучше назвать @wagons_count
  55.    @train_route = []
  56.    @current_station_index = 0 # лучше вынести в метод
  57.                               # get_route
  58.    # добавь @speed = 0
  59.  end
  60.  
  61.  def stop
  62.    # когда внутри класса пишем self.field = value
  63.    # мы вызываем сеттер. Но для speed у тебя нет сеттера
  64.    # обращайся напрямую к инстанс переменной @speed
  65.    self.speed = 0
  66.  end
  67.  # сделай чтобы метод принимал приращение скорости в качестве параметра
  68.  def go
  69.    self.speed = 50
  70.  end
  71.  def add_wagon
  72.    @train_length += 1 if speed == 0
  73.  end
  74.  def delete_wagon
  75.    @train_length -= 1 if speed == 0
  76.  end
  77.  
  78.  def get_route(route)
  79.    @train_route.clear
  80.    @train_route << route
  81.  end
  82.  def current_station
  83.    @route.stations[@current_station_index]
  84.  end
  85. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement