![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 425
|
приветствую...
пишу тут, т.к. прямого отношения к программингу на AS отношения не имеет, т.к. не имеет непосредственного отношения к флешу... есть 8 системок уравнений. Системы - описывают условия, при которых выполняется некое действие... Системы попарно сочетаются (при выполнении условий или первой или второй системы - выполняется одно и то же действие, т.е. система1||система2 -> true => действие1; система3||система4 -> true => действие2; система5||система6 -> true => действие3; система7||система8 -> true => действие4) - мозг уже сломал как загнать их в условный оператор... набивать условие if как if(((x[i]==x[i-1])&&(x[i]<x[i+1])&&(y[i]==y[i+1])&&(y[i]<y[i-1]))||((x[i]==x[i+1])&&(x[i]<x[i-1])&&(y[i]==y[i-1])&&(y[i]<y[i+1]))){
//...
}
может упустил какую-то закономерность? гляньте =) _________ система 1 x[i]=x[i-1] x[i]<x[i+1] y[i]=y[i+1] y[i]<y[i-1] система 2 x[i]=x[i+1] x[i]<x[i-1] y[i]=y[i-1] y[i]<y[i+1] _________ система 3 x[i]=x[i-1] x[i]>x[i+1] y[i]=y[i+1] y[i]>y[i-1] система 4 x[i]=x[i+1] x[i]>x[i-1] y[i]=y[i-1] y[i]<y[i+1] _________ система 5 x[i]=x[i+1] x[i]>x[i-1] y[i]=y[i-1] y[i]>y[i+1] система 6 x[i]=x[i-1] x[i]<x[i+1] y[i]=y[i+1] y[i]>y[i-1] _________ система 7 x[i]=x[i+1] x[i]<x[i-1] y[i]=y[i-1] y[i]<y[i+1] система 8 x[i]=x[i-1] x[i]>x[i+1] y[i]=y[i+1] y[i]>y[y-1] P.S. не пинаемся и не ругаем особо... |
|
|||||
|
8 систем, 8 строк и 32 условия. Лучше всего просто вбить, запоминая результат в булевой переменной, а лучше в массиве.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
8 условий дают 8 переменных, их можно запихнуть как говорилось выше в массивчик и обойти как треугольную матрицу с нулевыми диагональными элементами. Таким образом можно попарно сравнить все элементы.
__________________
ответ прост: be || !be == true |
|
|||||
|
loading 50%
|
Сомневаюсь, что эти системы нельзя преобразовать для начала.
система 2 x[i]=x[i+1] x[i]<x[i-1] y[i]=y[i-1] y[i]<y[i+1] система 4 x[i]=x[i+1] x[i]>x[i-1] y[i]=y[i-1] y[i]<y[i+1] Помимо if есть и другие операторы ветвления алгоритма. |
|
|||||
|
Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
|
На мой взгляд тут основная проблема в читабельности кода, я бы предложил занести всё в булевы переменные и потом использовать их.
// Запоминаем условия для X var isXEqualPrev:Boolean = (x[i] == x[i-1]); var isXEqualNext:Boolean = (x[i] == x[i+1]); var isXMorePrev:Boolean = (x[i] > x[i-1]); var isXMoreNext:Boolean = (x[i] > x[i+1]); var isXLessPrev:Boolean = (x[i] < x[i-1]); var isXLessNext:Boolean = (x[i] < x[i+1]); // Запоминаем условия для Y var isYEqualPrev:Boolean = (y[i] == y[i-1]); var isYEqualNext:Boolean = (y[i] == y[i+1]); var isYMorePrev:Boolean = (y[i] > y[i-1]); var isYMoreNext:Boolean = (y[i] > y[i+1]); var isYLessPrev:Boolean = (y[i] < y[i-1]); var isYLessNext:Boolean = (y[i] < y[i+1]); // Проверка всех систем if(isXEqualPrev && isXLessNext && isYEqualNext && isYEqualPrev) { //… }else if(isXEqualNext && isXLessPrev && isYEqualPrev && isYLessNext) { //… } |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 425
|
Всем спасибо за наводки/подсказки =)
Psycho Tiger, amesqit, в массиве всё это и будет обрабатываться =) aksios, акромя if в памяти всплывает switch, использование которого читаемость не улучшит ни сколько, ИМХО... А вот за то что ткнул где системки можно упростить - спасибо - я проглядел это =)) жаль только что такому упрощению могут подлежать только первые 2 пары систем (хотя... надо попробовать будет привести две последние пары к другому виду - может и там удастся упрощения добиться) =( koIIImarik, спасибо за подсказку - второй вариант на мой взгляд общую читаемость кода улучшит - возьму на вооружение, наверное =) |
|
|||||
|
Contemplator, я вообще-то и написал то же, что и Кошмарик во 2 варианте =))
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 425
|
Цитата:
но и тебе, разумеется, огромное спасибо за помощь ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|