Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2010-12-01 03:20:33 ЛС | профиль | цитата
afandi, напоминаю: сначала надо нажать на клавиатуре букву "S", а потом уже левую/правую кнопки мыши на большой кнопке, подписанной "Кнопка".
------------ Дoбавленo в 03.20:
Доработал схему:
Add(MainForm,2953706,21,105)
{
Width=575
Height=449
Caption="Брейн-Ринг"
BorderStyle=1
Position=1
Point(onKeyDown)
Point(onMouseUp)
link(onKeyDown,15081050:doCase,[(65,132)(65,111)])
link(onMouseUp,7095299:doCompare,[(85,139)(85,258)])
}
Add(LED,6647594,595,98)
{
Width=200
Height=200
}
Add(LED,16049984,644,70)
{
Left=370
Width=200
Height=200
ColorOn=65280
ColorOff=32768
}
Add(IndexToChanel,12500246,546,245)
{
link(onEvent1,6647594:doOn,[(586,251)(586,118)])
link(onEvent2,16049984:doOn,[(611,258)(611,90)])
}
Add(Case,15081050,77,105)
{
Value=Integer(83)
DataOnTrue=Integer(1)
link(onNextCase,2265140:doCase,[(128,111)(128,27)])
link(onTrue,14886037:doEvent1,[(131,118)(131,125)])
}
Add(If_else,7095299,126,252)
{
Op2=Integer(1)
link(onTrue,12854502:doCompare,[])
link(Op1,13893015:Value,[(132,219)(230,219)])
}
Add(Memory,13893015,224,161)
{
@Hint=#73:Статус игры: 0 - вопрос не задан, 1 - ожидается ответ, 2 - нажата кнопка |
Default=Integer(0)
link(onData,15978247:doEvent,[])
}
Add(Hub,16403156,238,245)
{
InCount=2
OutCount=4
PColor(onEvent1,16755285)
PColor(onEvent4,5635840)
link(onEvent1,12918985:doStop,[(284,251)(284,146)])
link(onEvent2,1506451:doData,[(291,258)(291,244)])
link(onEvent3,12500246:doEvent,[(350,265)(350,251)])
link(onEvent4,3651149:doValue,[(270,272)(270,97)])
}
Add(Timer,12918985,413,133)
{
Enable=1
link(onTimer,1064757:doNext,[])
}
Add(LedNumber,13081735,815,301)
{
Left=200
Top=135
Width=170
Height=65
Text="-00-"
Point(doText)
}
Add(Case,2265140,147,21)
{
Value=Integer(82)
DataOnTrue=Integer(1)
link(onTrue,8401726:doEvent1,[])
}
Add(Hub,8401726,217,28)
{
InCount=2
OutCount=4
PColor(onEvent2,16755200)
PColor(onEvent3,16711850)
PColor(onEvent4,5614250)
link(onEvent1,16049984:doOff,[(357,34)(357,83)])
link(onEvent2,6647594:doOff,[(337,41)(337,111)])
link(onEvent3,7665150:doWork1,[(256,48)])
link(onEvent4,8546626:doWork1,[(239,55)(239,109)(207,109)])
}
Add(LED,12147302,476,154)
{
Left=235
Width=100
Height=100
ColorOn=65535
ColorOff=32896
}
Add(IndexToChanel,15978247,371,161)
{
Count=3
link(onEvent1,683651:doWork2,[])
link(onEvent2,12147302:doOn,[])
link(onEvent3,683651:doWork3,[(424,181)])
}
Add(DoData,1506451,399,238)
{
Data=Integer(2)
link(onEventData,8546626:doWork3,[(443,244)(443,207)(207,207)])
}
Add(HubEx,683651,420,161)
{
link(onEvent,12147302:doOff,[])
}
Add(Counter,1064757,532,133)
{
Max=21
PColor(onNext,16755200)
link(onNext,10233330:doEvent1,[])
}
Add(Case,8541636,735,133)
{
Value=Integer(20)
DataOnTrue=Integer(2)
PColor(onTrue,11141120)
link(onTrue,16403156:doEvent1,[(783,146)(783,223)(226,223)(226,251)])
}
Add(Hub,10233330,623,133)
{
link(onEvent1,8541636:doCase,[])
link(onEvent2,4639624:doCompare,[(647,146)(647,279)])
}
Add(FormatStr,13214666,742,273)
{
Mask="-0%1-"
link(onFString,11057012:doWork1,[(796,279)])
}
Add(FormatStr,14223814,742,336)
{
Mask="-%1-"
link(onFString,11057012:doWork3,[(796,342)])
}
Add(If_else,4639624,658,273)
{
Type=1
Op2=Integer(10)
link(onTrue,13214666:doString,[])
link(onFalse,14223814:doString,[(712,286)(712,342)])
}
Add(HubEx,11057012,792,301)
{
link(onEvent,13081735:doText,[])
}
Add(HubEx,7665150,252,133)
{
PColor(onEvent,16711850)
link(onEvent,12918985:doTimer,[])
}
Add(HubEx,8546626,203,161)
{
PColor(onEvent,5614250)
link(onEvent,13893015:doValue,[])
}
Add(Hub,14886037,154,119)
{
OutCount=3
link(onEvent1,8401726:doEvent2,[(192,125)(192,41)])
link(onEvent2,3651149:doClear,[(246,132)(246,104)])
link(onEvent3,7665150:doWork2,[])
}
Add(Memory,3651149,287,91)
{
Default=Integer(-1)
}
Add(If_else,12854502,175,252)
{
Type=5
PColor(Op2,170)
link(onTrue,16403156:doEvent2,[])
link(Op2,3651149:Value,[(188,231)(293,231)])
}

Для судьи: S - запуск таймера (на 20 секунд), R - возобновление таймера после неверного ответа одной из команд (при этом её кнопка блокируется до следующего нажатия S). По истечении 20 секунд отсчёт останавливается и блокируются обе кнопки.

Для капитанов: левая кнопка - ответ красного стола, правая - ответ зелёного стола.

Жёлтый индикатор: идёт отсчёт времени.

Если надо, могу добавить определение фальшстарта, а также блокировать кнопки R и S от случайного нажатия в неправильный момент.
карма: 1

1
Голосовали:afandi