Вверх ↑
Этот топик читают: Гость
Ответов: 871
Рейтинг: 322
#1: 2019-10-17 02:50:44 ЛС | профиль | цитата
Наткнулся недавно https://habr.com/ru/post/166057/
Стало интересно и вот что получилось.
карма: 1

0
файлы: 1Салют.sha.zip [174.2KB] [368]
vip
#1.1контекстная реклама от партнеров
Ответов: 8885
Рейтинг: 823
#2: 2019-10-17 10:33:24 ЛС | профиль | цитата
Такая же игрушка с 9 светодиодами -- при включении мышкой изменяют своё состояние соседние, при отключении не меняют.
Задача -- за минимальное количество нажатий включить все светодиоды
9 экранов


Add(MainForm,2953706,35,105)
{
link(onCreate,609728:doRandomize,[])
}
Add(LED,15598717,245,105)
{
Left=105
Top=45
Point(onMouseDown)
link(onMouseDown,7060572:doEvent1,[])
}
Add(LED,8913800,518,112)
{
Left=160
Top=45
Point(onMouseDown)
link(onMouseDown,13412892:doEvent1,[])
}
Add(LED,531345,798,105)
{
Left=215
Top=45
Point(onMouseDown)
link(onMouseDown,1246653:doEvent1,[(837,118)(837,111)])
}
Add(LED,8156129,245,203)
{
Left=105
Top=95
Point(onMouseDown)
link(onMouseDown,829737:doEvent1,[])
}
Add(LED,3677736,518,210)
{
Left=160
Top=95
Point(onMouseDown)
link(onMouseDown,14251498:doEvent1,[])
}
Add(LED,15529230,798,203)
{
Left=215
Top=95
Point(onMouseDown)
link(onMouseDown,2331953:doEvent1,[])
}
Add(LED,10078495,245,308)
{
Left=105
Top=150
Point(onMouseDown)
link(onMouseDown,16086132:doEvent1,[])
}
Add(LED,10577239,518,315)
{
Left=160
Top=150
Point(onMouseDown)
link(onMouseDown,3186787:doEvent1,[])
}
Add(LED,16669156,798,308)
{
Left=215
Top=150
Point(onMouseDown)
link(onMouseDown,474200:doEvent1,[(837,321)(837,314)])
}
Add(Hub,14251498,560,217)
{
link(onEvent1,11610643:doWork3,[(585,223)])
link(onEvent2,8191981:doCompare,[])
}
Add(Hub,7060572,287,112)
{
link(onEvent1,13202231:doWork3,[(312,118)])
link(onEvent2,8658465:doCompare,[])
}
Add(Hub,1246653,847,105)
{
link(onEvent1,13535077:doWork3,[(868,111)])
link(onEvent2,3746539:doCompare,[])
}
Add(Hub,474200,847,308)
{
link(onEvent1,3728478:doWork3,[(867,314)])
link(onEvent2,9371909:doCompare,[])
}
Add(Hub,16086132,287,315)
{
link(onEvent1,2722010:doWork3,[(312,321)])
link(onEvent2,1759613:doCompare,[])
}
Add(Hub,3186787,560,322)
{
link(onEvent1,2939639:doWork3,[(585,328)])
link(onEvent2,1333645:doCompare,[])
}
Add(Hub,13412892,560,119)
{
link(onEvent1,10832531:doWork3,[(585,125)(585,104)])
link(onEvent2,7452815:doCompare,[])
}
Add(Hub,2331953,847,210)
{
link(onEvent1,11089949:doWork3,[(868,216)(868,194)])
link(onEvent2,7305159:doCompare,[])
}
Add(Hub,829737,287,210)
{
link(onEvent1,2742342:doWork3,[(312,216)])
link(onEvent2,2372349:doCompare,[])
}
Add(If_else,3746539,882,112)
{
Op2=Integer(1)
link(onTrue,14056919:doEvent1,[])
link(Op1,531345:Value,[(888,103)(874,103)(874,145)(804,145)])
}
Add(Hub,14056919,931,112)
{
link(onEvent1,10832531:doWork1,[(956,118)(956,83)(508,83)])
link(onEvent2,11089949:doWork1,[(956,125)(956,188)(788,188)])
}
Add(If_else,7305159,882,217)
{
Op2=Integer(1)
link(onTrue,7654475:doEvent1,[])
link(Op1,15529230:Value,[(888,201)(874,201)(874,243)(804,243)])
}
Add(Hub,7654475,931,217)
{
OutCount=3
link(onEvent1,4549744:doWork3,[(879,223)(879,188)])
link(onEvent2,13535077:doWork2,[(963,230)(963,96)])
link(onEvent3,3728478:doWork2,[(963,237)(963,300)])
}
Add(If_else,9371909,889,315)
{
Op2=Integer(1)
link(onTrue,8019803:doEvent1,[])
link(Op1,16669156:Value,[(895,306)(874,306)(874,348)(804,348)])
}
Add(Hub,8019803,931,315)
{
link(onEvent1,11136860:doWork3,[(956,321)(956,293)(788,293)])
link(onEvent2,13061235:doWork1,[(956,328)(956,370)])
}
Add(If_else,7452815,602,126)
{
Op2=Integer(1)
link(onTrue,462371:doEvent1,[])
link(Op1,8913800:Value,[(608,117)(594,117)(594,152)(524,152)])
}
Add(Hub,462371,644,126)
{
OutCount=3
link(onEvent1,1334438:doWork2,[(669,132)(669,111)])
link(onEvent2,13202231:doWork1,[(676,139)(676,90)(312,90)])
link(onEvent3,4549744:doWork1,[(669,146)(669,181)(585,181)])
}
Add(If_else,8191981,602,224)
{
Op2=Integer(1)
link(onTrue,11314769:doEvent1,[])
link(Op1,3677736:Value,[(608,215)(594,215)(594,250)(524,250)])
}
Add(Hub,11314769,644,224)
{
OutCount=4
link(onEvent1,14779520:doWork3,[(669,230)(669,195)(508,195)])
link(onEvent2,11136860:doWork2,[(676,237)(676,209)])
link(onEvent3,2939639:doWork2,[(667,244)(667,307)])
link(onEvent4,6352533:doWork1,[(585,251)(585,258)])
}
Add(If_else,1333645,602,329)
{
Op2=Integer(1)
link(onTrue,600586:doEvent1,[])
link(Op1,10577239:Value,[(608,320)(594,320)(594,355)(524,355)])
}
Add(Hub,600586,651,329)
{
OutCount=3
link(onEvent1,769439:doWork3,[(676,335)(676,300)(508,300)])
link(onEvent2,3711199:doWork3,[(685,342)(685,363)(788,363)])
link(onEvent3,13782585:doWork3,[(676,349)(676,377)(235,377)])
}
Add(If_else,8658465,329,119)
{
Op2=Integer(1)
link(onTrue,14801605:doEvent1,[])
link(Op1,15598717:Value,[(335,110)(321,110)(321,145)(251,145)])
}
Add(Hub,14801605,371,119)
{
link(onEvent1,10832531:doWork2,[(396,125)(396,104)])
link(onEvent2,2742342:doWork2,[(396,132)(396,195)])
}
Add(If_else,2372349,329,217)
{
Op2=Integer(1)
link(onTrue,14305581:doEvent1,[])
link(Op1,8156129:Value,[(335,208)(321,208)(321,243)(251,243)])
}
Add(Hub,14305581,371,217)
{
OutCount=3
link(onEvent1,7208468:doWork3,[(403,223)(403,188)(235,188)])
link(onEvent2,769439:doWork2,[(403,230)(403,272)])
link(onEvent3,2722010:doWork2,[(396,237)(396,300)])
}
Add(If_else,1759613,329,322)
{
Op2=Integer(1)
link(onTrue,3138049:doEvent1,[])
link(Op1,10078495:Value,[(335,313)(321,313)(321,348)(251,348)])
}
Add(Hub,3138049,371,322)
{
link(onEvent1,6352533:doWork3,[(403,328)(403,293)(235,293)])
link(onEvent2,13061235:doWork2,[(407,335)(407,370)])
}
Add(HubEx,11136860,784,203)
{
link(onEvent,15529230:doChangeValue,[])
}
Add(HubEx,7188470,504,315)
{
link(onEvent,10577239:doChangeValue,[])
}
Add(HubEx,11089949,784,188)
{
Angle=1
link(onEvent,11136860:doWork1,[])
}
Add(HubEx,10832531,504,98)
{
Angle=1
link(onEvent,14779520:doWork1,[])
}
Add(HubEx,13535077,864,90)
{
Angle=2
link(onEvent,1334438:doWork1,[(788,96)])
}
Add(HubEx,11610643,581,196)
{
Angle=2
link(onEvent,5944943:doWork1,[(508,202)])
}
Add(HubEx,3728478,863,294)
{
Angle=2
link(onEvent,3711199:doWork1,[(788,300)])
}
Add(HubEx,2742342,308,189)
{
Angle=2
link(onEvent,7622694:doWork1,[(235,195)])
}
Add(HubEx,7208468,231,105)
{
link(onEvent,15598717:doChangeValue,[])
}
Add(HubEx,5944943,504,210)
{
link(onEvent,3677736:doChangeValue,[])
}
Add(HubEx,2722010,308,294)
{
Angle=2
link(onEvent,13782585:doWork1,[(235,300)])
}
Add(HubEx,7622694,231,203)
{
link(onEvent,8156129:doChangeValue,[])
}
Add(HubEx,1334438,784,105)
{
link(onEvent,531345:doChangeValue,[])
}
Add(HubEx,13202231,308,91)
{
Angle=2
link(onEvent,7208468:doWork1,[(235,97)])
}
Add(HubEx,4549744,581,182)
{
Angle=1
link(onEvent,11610643:doWork1,[])
}
Add(HubEx,14779520,504,112)
{
link(onEvent,8913800:doChangeValue,[])
}
Add(HubEx,6352533,231,252)
{
Angle=3
link(onEvent,7622694:doWork3,[])
}
Add(HubEx,13782585,231,308)
{
link(onEvent,10078495:doChangeValue,[])
}
Add(HubEx,3711199,784,308)
{
link(onEvent,16669156:doChangeValue,[])
}
Add(HubEx,769439,504,266)
{
Angle=3
link(onEvent,5944943:doWork3,[])
}
Add(HubEx,2939639,581,301)
{
Angle=2
link(onEvent,7188470:doWork1,[(508,307)])
}
Add(Button,8028563,35,49)
{
Left=185
Top=220
Caption="New"
link(onClick,11056655:doEvent1,[])
}
Add(Hub,11056655,91,49)
{
OutCount=9
link(onEvent1,10527695:doRandom,[(683,55)(683,118)])
link(onEvent2,4028327:doRandom,[(403,62)(403,125)])
link(onEvent3,609728:doRandom,[(144,69)(144,118)])
link(onEvent4,6556331:doRandom,[(690,76)(690,216)])
link(onEvent5,12012777:doRandom,[(410,83)(410,223)])
link(onEvent6,2771480:doRandom,[(136,90)(136,216)])
link(onEvent7,6838614:doRandom,[(127,97)(127,275)(683,275)(683,321)])
link(onEvent8,8084798:doRandom,[(121,104)(121,286)(410,286)(410,328)])
link(onEvent9,8952114:doRandom,[(116,111)(116,321)])
}
Add(Random,609728,147,112)
{
Max=1
link(onRandom,10635164:doWork2,[])
}
Add(IndexToChanel,5450376,196,112)
{
link(onEvent1,15598717:doOff,[])
link(onEvent2,15598717:doOn,[])
}
Add(Random,2771480,147,210)
{
Max=1
link(onRandom,1921917:doWork2,[])
}
Add(IndexToChanel,9143836,196,210)
{
link(onEvent1,8156129:doOff,[])
link(onEvent2,8156129:doOn,[])
}
Add(Random,8952114,147,315)
{
Max=1
link(onRandom,9138297:doWork2,[])
}
Add(IndexToChanel,2788277,196,315)
{
link(onEvent1,10078495:doOff,[])
link(onEvent2,10078495:doOn,[])
}
Add(Random,4028327,420,119)
{
Max=1
link(onRandom,7945280:doWork2,[])
}
Add(IndexToChanel,12161107,469,119)
{
link(onEvent1,8913800:doOff,[])
link(onEvent2,8913800:doOn,[])
}
Add(HubEx,13061235,504,364)
{
Angle=3
link(onEvent,7188470:doWork3,[])
}
Add(Random,12012777,420,217)
{
Max=1
link(onRandom,4172848:doWork2,[])
}
Add(IndexToChanel,10043993,469,217)
{
link(onEvent1,3677736:doOff,[])
link(onEvent2,3677736:doOn,[])
}
Add(Random,8084798,420,322)
{
Max=1
link(onRandom,8890913:doWork2,[])
}
Add(IndexToChanel,16269886,469,322)
{
link(onEvent1,10577239:doOff,[])
link(onEvent2,10577239:doOn,[])
}
Add(Random,10527695,700,112)
{
Max=1
link(onRandom,8764082:doWork2,[])
}
Add(IndexToChanel,9332363,749,112)
{
link(onEvent1,531345:doOff,[])
link(onEvent2,531345:doOn,[])
}
Add(Random,6556331,700,210)
{
Max=1
link(onRandom,2760692:doWork2,[])
}
Add(IndexToChanel,12074895,749,210)
{
link(onEvent1,15529230:doOff,[])
link(onEvent2,15529230:doOn,[])
}
Add(Random,6838614,700,315)
{
Max=1
link(onRandom,1422759:doWork2,[])
}
Add(IndexToChanel,10453210,749,315)
{
link(onEvent1,16669156:doOff,[])
link(onEvent2,16669156:doOn,[])
}
Add(Button,10557350,28,357)
{
Left=100
Top=220
Caption="XX"
Data=Integer(0)
link(onClick,13430691:doEvent1,[])
}
Add(Hub,13430691,70,357)
{
OutCount=9
link(onEvent1,10635164:doWork3,[(95,363)(95,160)(186,160)])
link(onEvent2,7945280:doWork3,[(104,370)(104,167)(459,167)])
link(onEvent3,8764082:doWork3,[(111,377)(111,174)(739,174)])
link(onEvent4,1921917:doWork3,[(132,384)(132,258)(186,258)])
link(onEvent5,4172848:doWork3,[(137,391)(137,265)(459,265)])
link(onEvent6,2760692:doWork3,[(690,398)(690,307)(739,307)])
link(onEvent7,9138297:doWork3,[(186,405)])
link(onEvent8,8890913:doWork3,[(459,412)])
link(onEvent9,1422759:doWork3,[(739,419)])
}
Add(HubEx,1422759,735,315)
{
link(onEvent,10453210:doEvent,[])
}
Add(HubEx,8890913,455,322)
{
link(onEvent,16269886:doEvent,[])
}
Add(HubEx,9138297,182,315)
{
link(onEvent,2788277:doEvent,[])
}
Add(HubEx,2760692,735,210)
{
link(onEvent,12074895:doEvent,[])
}
Add(HubEx,4172848,455,217)
{
link(onEvent,10043993:doEvent,[])
}
Add(HubEx,1921917,182,210)
{
link(onEvent,9143836:doEvent,[])
}
Add(HubEx,8764082,735,112)
{
link(onEvent,9332363:doEvent,[])
}
Add(HubEx,7945280,455,119)
{
link(onEvent,12161107:doEvent,[])
}
Add(HubEx,10635164,182,112)
{
link(onEvent,5450376:doEvent,[])
}

карма: 19

0
Ответов: 871
Рейтинг: 322
#3: 2019-10-17 11:11:47 ЛС | профиль | цитата
Леонид, попробовал но сложность не сравнить. Мой рекорд после тренировки...

карма: 1

0
Ответов: 8885
Рейтинг: 823
#4: 2019-10-17 12:21:11 ЛС | профиль | цитата
kamakama, для 3х3 дерево ходов в голове удерживается, а для 4х4 Каспарова надо приглашать
А слабо автоматически найти оптимальный путь для любой конфигурации
карма: 19

0
4
Сообщение
...
Прикрепленные файлы
(файлы не залиты)