Skip to content

Instantly share code, notes, and snippets.

@Qolt
Created May 21, 2013 07:20
Show Gist options
  • Save Qolt/5618048 to your computer and use it in GitHub Desktop.
Save Qolt/5618048 to your computer and use it in GitHub Desktop.
масштаб_времени = 0,0001
класс эмуляция_времени():
конструктор класса():
свойство время_начала = количество_секунд_с_фиксированного_момента_в_прошлом + доли_секунд
вывести "Время начала" + время_начала
получить_текущее_время():
разница_времени = время_начала - (количество_секунд + доли_секунд)
текущее_время = разница_времени / масштаб_времени
вернуть текущее_время
класс запрос():
конструктор(номер, время_появления):
номер = номер
время_появления = время_появления
класс грузовик():
конструктор:
статус = "свободен"
время_завершения_работы = 0
количество_заданий = 0
время_работы = 0
если имя_программы = "главная_программа":
запросы = пустой список
грузовики = два объекта класса грузовик
счетчик_запросов = 0
общий_счетчик_запросов = 0
время_окончания_связи = 0
текущее_время = объект класса эмуляция_времени
время_нового_запроса = 5 минут + случайная величина от -4 до +4
время_прошлого_запроса = 0
текущий_запрос = 0
номер_грузовика = случайное число от 0 до 1
пока ткущиее_время.получить_текущее_время() <= 10 часов
если текущее_время.получить_текущее_время() >= время_прошлого_запроса + время_прошлого_запроса:
время_нового_запроса = 5 минут + случайная величина от -4 до +4
время_прошлого_запроса = текущее_время.получить_текущее_время()
общее_количество_запросов увеличить на 1
если длинна списка запросы < 5:
счетчик_запросов увеличить на 1
к списку запросы добавить объект класса запрос(счетчик_запросов, текущее_время.получить_текущее_время())
если список запросы не пуст:
если текущий_запрос равен номеру первого запроса в списке запросы:
если номер_грузовика = 1:
номер_грузовика = 0:
иначе:
номер_грузовика = 1
иначе:
номер_грузовика = случайное число от 0 до 1
текущий_запрос = номер первого запроса в списке запросы
если список запросы не пуст и время_связи меньше текущее_время.получить_текущее_время()
если статус грузовика с номером номер_грузовика из списка грузовики == "свободен":
статус грузовика с номером номер_грузовика из списка грузовики == "занят"
время_новой_работы = 12 минут + случайное число от -8 до +8
время_завершения_работы грузовика с номером номер_грузовика из списка грузовики == текущее_время.получить_текущее_время() + время_новой_работы
к время_работы грузовика с номером номер_грузовика из списка грузовики прибавить время_новой_работы
количество_заданий грузовика с номером номер_грузовика из списка грузовики увеличить на единицу
время_окончания_связи = текущее_время.получить_текущее_время() + 1 минута
удалить первый запрос из списка запросы
если статус грузовика с номером номер_грузовика из списка грузовики == "занят":
время_окончания_связи = текущее_время.получить_текущее_время() + 1 минута
для каждого грузовика в списке грузовики:
если текущее_время.получить_текущее_время() > грузовик.время_окончания_работы:
грузовик.статус = "свободен"
Вывод результатов.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment