Skip to content

Commit

Permalink
Merge pull request #7 from melkikh/master
Browse files Browse the repository at this point in the history
Код отформатирован в одном стиле (комментарии, отступы)
  • Loading branch information
Matronitskiy authored Dec 10, 2016
2 parents cf8af77 + 56d8279 commit f84d624
Showing 1 changed file with 7 additions and 16 deletions.
23 changes: 7 additions & 16 deletions port/port.rao
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ type Буксиры {
Состояние_буксира состояние
int количество_обслуженных
int номер_танкера

/* Анимация */
int размер
int X
Expand All @@ -45,11 +46,9 @@ type Штормы {
Состояние_шторма состояние
}


resource порт = Порт.create(0, 0)
resource шторм = Штормы.create(Состояние_шторма.Спокоен)


sequence интервал_прихода1 = new Values(#[10])
sequence интервал_прихода2 = new Values(#[15])
sequence интервал_прихода3 = new Values(#[20])
Expand Down Expand Up @@ -81,13 +80,11 @@ event Событие_прихода_танкера3() {
порт.номер_крайнего_танкера = порт.номер_крайнего_танкера + 1
}


event Событие_начала_шторма() {
шторм.состояние = Состояние_шторма.Начался
Событие_начала_шторма.plan(currentTime + периодичность_шторма.next())
}


operation Образец_шторма() {
relevant _шторм = шторм.onlyif[состояние == Состояние_шторма.Начался]

Expand Down Expand Up @@ -125,12 +122,12 @@ operation Образец_буксирования_пустого_танкера(
буксир.состояние = Состояние_буксира.Стоит_у_причалов
танкер.состояние = Состояние_танкера.Ожидает_у_причалов
буксир.количество_обслуженных = буксир.количество_обслуженных + 1

/* Анимация */
буксир._X = граница_причалов - буксир.размер
}
}


operation Образец_заполнения_танкера() {
relevant танкер = Танкеры.accessible.filter[состояние == Состояние_танкера.Ожидает_у_причалов].any
relevant причал = Причалы.accessible.filter[состояние == Состояние_причала.Свободен].any
Expand Down Expand Up @@ -161,7 +158,6 @@ operation Образец_заполнения_танкера() {
}
}


operation Образец_буксирования_заполненного_танкера() {
relevant _шторм = шторм.onlyif[состояние == Состояние_шторма.Спокоен]
relevant буксир = Буксиры.accessible.filter[состояние == Состояние_буксира.Стоит_у_причалов].any
Expand All @@ -176,6 +172,7 @@ operation Образец_буксирования_заполненного_та
буксир.номер_танкера = танкер.порядковый_номер
танкер.состояние = Состояние_танкера.Буксируется_от_причалов
причал.состояние = Состояние_причала.Свободен

/* Анимация */
буксир._X = граница_причалов - буксир.размер - 120
}
Expand All @@ -189,7 +186,6 @@ operation Образец_буксирования_заполненного_та
}
}


operation Образец_перемещения_пустого_буксира_к_очереди() {
relevant _порт = порт.onlyif[количество_в_очереди > 0]
relevant _шторм = шторм.onlyif[состояние == Состояние_шторма.Спокоен]
Expand All @@ -210,12 +206,12 @@ operation Образец_перемещения_пустого_буксира_к
def end() {
буксир.состояние = Состояние_буксира.Стоит_у_очереди
буксир.количество_обслуженных = буксир.количество_обслуженных + 1

/* Анимация */
буксир._X = граница_очереди
}
}


logic Работа_модели {
activity буксирование_танкера_к_причалу = new Activity(Образец_буксирования_пустого_танкера.create())
activity заполнение_танкера = new Activity(Образец_заполнения_танкера.create())
Expand All @@ -240,10 +236,9 @@ def terminateCondition() {
return currentTime >= 480
}


result занятость_буксира = new Result([Буксиры.all.any.состояние])
result длина_очереди = new Result([порт.количество_в_очереди])
result Всего_обслужено_Митей = new Result([Буксиры.all.any.количество_обслуженных])
result Всего_обслужено_буксиром = new Result([Буксиры.all.any.количество_обслуженных])
result занятость_причала_1 = new Result([Причалы.all.filter[номер == Номер_причала._1].any.состояние])
result занятость_причала_2 = new Result([Причалы.all.filter[номер == Номер_причала._2].any.состояние])
result занятость_причала_3 = new Result([Причалы.all.filter[номер == Номер_причала._3].any.состояние])
Expand All @@ -253,10 +248,7 @@ result Всего_заполнено_причалом_3 = new Result([Прича
result Пропускная_способность = new Result([Буксиры.all.any.количество_обслуженных / currentTime * 60])
result Длительность_работы = new Result([currentTime / 60])

/* Animation */



/* Анимация */
event Timer() {
for (Буксиры буксир : Буксиры.all){
val шаг_хода_буксира = (((граница_причалов - 1.5 * буксир.размер)
Expand Down Expand Up @@ -332,8 +324,7 @@ frame Кадр_порта {
else
пустое_место = пустое_место + 1
}



/* Причалы */
for (Причалы причал : Причалы.all){
var отступ = 0
Expand Down

0 comments on commit f84d624

Please sign in to comment.