91
Общие вопросы / Re: Вопрос знатокам: инверсия изображения
« on: February 05, 2016, 08:41:09 PM »
если не ошибаюсь, PXLREPLACE
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Вот была интересная задача.Я недавно искал инфу по нетривиальному программированию( такое определение кликера на главной) и наткнулся на Эйлера, как он во 2 классе открыл, что первый+предпоследний член = последнему
В уме быстро посчитать сумму всех чисел от 1 до 100 включительно.
Догадался сразу как делать. А вы? Без интернета само собой.
у эйлера было нетравиальное мышление. будучи учеником младших классов, он быстро выполнял все задания и досаждал учителю разными вопросами. как-то учитель решил дать ему задание, которое надо, по его мнению, решать весь урок. задание такое: найти сумму всех чисел от 1 до 100. эйлер справился с заданием за 5 минут, заодно переоткрыл формулу суммы арифметической прогрессии. 1+99=100, 2+98=100, 3+97=100 ...49+51=100, т. е. 49 раз по 100 и еще 100+50, итого 5050. ученик с травиальным мышлением суммировал бы на прямую 1+2=3, 3+3=6, 6+4=10 и т. д. всего 100 операций сложения, если на каждую затрачивать 25с, то нахождение всей суммы займет 41мин.Вот тогда я понял, что абсолютно не помню школьную математику.
$_ms1=$_ms
FOR($a=0,$a<1000) // повторяем 3 раза
for($i=1, $i<$a+1)
if (strpos($a/$i, ".")=0)
$light=$light+1
if (($light=3)|($light>3))
$i=$a+1
end_if
end_if
END_CYC
if (($light<3)&($a>1))
arrpush($arr, $a)
end_if
$light=0
END_CYC
FOR($a=0,$a<ARRSIZE($arr)) // повторяем 3 раза
FOR($p=1,$p<(strlen($arr[$a])))
if ($m=0)
$m=$arr[$a]
end_if
$m=STRCONCAT(strcut($m,2,strlen($m)-1), strcut($m,1,1))
while (strpos($m,"0")=1)
$m=STRCONCAT(strcut($m,2,strlen($m)-1))
end_cyc
FOR($l=0,$l<ARRSIZE($arr))
if ($m=$arr[$l])
$yes=$yes+1
$l=ARRSIZE($arr)
end_if
END_CYC
if ($yes=(strlen($m)-1))
print("простоЕ!" , $arr[$a])
$summa=$summa+1
end_if
END_CYC
if (strlen($arr[$a])<2)
print("простоЕ!" , $arr[$a])
$summa=$summa+1
end_if
$yes=0
$m=0
END_CYC
print("Затрачено ", ($_ms-$_ms1)/1000, " секунд, сумма:", $summa)
halt
//========ВСТАВИТЬ КАПЧу В ОКНО======================
// Переыыыделанный скрипт на капчу для ВК
SUB(paste) //========== Вставить =============================================== ///Paste
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "kodsuda.bmp", -1, 100) //Код Сюда
WAITMS (50)
lclick($_return1, $_return2)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (50)
KEYUP (#ENTER)
WAITMS (50)
END_IF
END_SUB
//========ВСТАВИТЬ КАПЧу В ОКНО======================
//=============РАСПОЗНАЕМ КАПЧУ==================
SUB(capcha)////// Капча ////
repeat: ///Capcha
GETSCREEN //Делаем скрин
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "key1.bmp", -1, 100) //ищем значок AGC
lclick($_return1+50, $_return2+90) //тык в распознать
WAITMS(100)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "key1.bmp")
$AGC_x = $_return1+25 //навели на поле с индикатором по Х
$AGC_y = $_return2+56 //Навели на поле с индикатором по Y
LOGWRITE("AGClient X=", $_return1, ", Y=", $_return2)
END_IF
$pic=0
WHILE($pic=0)
GETSCREEN
IF (PXL($AGC_x, $AGC_y)=65535) // жёлтый
WAITMS(300)
END_IF
IF (PXL($AGC_x, $AGC_y)=65280) // зелёный
WAITMS(100)
$pic=1 // выходим из цикла
END_IF
IF (PXL($AGC_x, $AGC_y)=255) // красный
LOGWRITE("Не распознали")
HINTPOPUP("Не распознали")
$pic=2
END_IF
END_CYC
IF($pic=2) // если не распознали отправляем повторно
GOTO(repeat)
END_IF
paste()
WAITMS(300)
END_IF
END_SUB
//=============РАСПОЗНАЕМ КАПЧУ==================
//===========тыкаемся в спиоск друзей до последнего человека=====================
sub(Chelovechki)
$konec=2
WAIT(1)
///Chelovechki
while($konec!0) //
GETSCREEN
IF_PIXEL_IN(588,396, 994,656, 25087) //Ищем звездочку
LCLICK($_return1, $_return2)
while ($pop=0)
WAITMS(3000)
// GETSCREEN
LCLICK(803,485)
// IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Otpravit.bmp", -1, 100) //находим отправить и тыкаемся в нее
// LCLICK($_return1, $_return2)
$pop = 1
$konec=0
// END_IF
end_cyc
$pop=0
else
IF_PICTURE_IN (427,546,1095,693, "close.bmp", -1, 100)
LCLICK($_return1, $_return2)
$konec=0
$zv=0
END_IF
END_IF
IF_PICTURE_IN (522,208, 960,485, "kodsuda.bmp", -1, 100)
capcha()
END_IF
END_CYC
WAITMS(3000)
END_SUB
//===========тыкаемся в спиоск друзей до последнего человека=====================
//============Ищем зеленые кнопки=======================
sub(green)
getscreen
if (arrsize($var) = 0)
scanpicture($var, 0,0, $_xmax,$_ymax, "green.bmp") //ищем зеленые кнопки
end_if
while ((arrsize($var) > 0)|($zv=1))
if ($zv=0)
$y = arrpop($var)
$x = arrpop($var)
$zv=1
end_if
lclick($x,$y)//на кнопку
///////Проверка последнего человека, если нет то тыкаемся в просилки///
Chelovechki()
END_CYC
undefine($var)
LCLICK(880,700)
print("пууух")
END_SUB
//====тут ищем красную кнопку для вызова попрошайки где будет в дальнейшем зеленые кнопки===================
//==============написал недавно и пока не придумал как и куда ее воткнуть=======================
//sub(perelist) //ищем красную кнопку
getscreen ///Perelist
if ($upred=0)
if_pixel_in(0, 0, 947,497, 131176)
lclick($_return1, $_return2)
wait(1)
$upred=1
green()
end_if
else
if ($upred2=0)
if_pixel_in(800,497,$_xmax,$_ymax, 131176)
lclick($_return1, $_return2)
wait(1)
$upred2=1
green()
end_if
else
if_pixel_in( 0, 0, $_xmax, $_ymax, 1516513)
lclick($_return1, $_return2)
wait(1)
$upred2=0
$upred=0
end_if // конец условия
end_if
end_if
//END_SUB
//=============================================
//=============================================
//========ВСТАВИТЬ КАПЧу В ОКНО======================
// Переыыыделанный скрипт на капчу для ВК
SUB(paste) //========== Вставить =============================================== ///Paste
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "kodsuda.bmp", -1, 100) //Код Сюда
WAITMS (50)
lclick($_return1, $_return2)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (50)
KEYUP (#ENTER)
WAITMS (50)
END_IF
END_SUB
//========ВСТАВИТЬ КАПЧу В ОКНО======================
//=============РАСПОЗНАЕМ КАПЧУ==================
SUB(capcha)////// Капча ////
repeat: ///Capcha
GETSCREEN //Делаем скрин
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "key1.bmp", -1, 100) //ищем значок AGC
lclick($_return1+50, $_return2+90) //тык в распознать
WAITMS(100)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "key1.bmp")
$AGC_x = $_return1+25 //навели на поле с индикатором по Х
$AGC_y = $_return2+56 //Навели на поле с индикатором по Y
LOGWRITE("AGClient X=", $_return1, ", Y=", $_return2)
END_IF
$pic=0
WHILE($pic=0)
GETSCREEN
IF (PXL($AGC_x, $AGC_y)=65535) // жёлтый
WAITMS(300)
END_IF
IF (PXL($AGC_x, $AGC_y)=65280) // зелёный
WAITMS(100)
$pic=1 // выходим из цикла
END_IF
IF (PXL($AGC_x, $AGC_y)=255) // красный
LOGWRITE("Не распознали")
HINTPOPUP("Не распознали")
$pic=2
END_IF
END_CYC
IF($pic=2) // если не распознали отправляем повторно
GOTO(repeat)
END_IF
paste()
WAITMS(300)
END_IF
END_SUB
//=============РАСПОЗНАЕМ КАПЧУ==================
//===========тыкаемся в спиоск друзей до последнего человека=====================
sub(Chelovechki)
$konec=2
WAIT(1)
///Chelovechki
while($konec!0) //
GETSCREEN
IF_PIXEL_IN(588,396, 994,656, 25087) //Ищем звездочку
LCLICK($_return1, $_return2)
while ($pop=0)
WAITMS(3000)
GETSCREEN
LCLICK(803,485)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Otpravit.bmp", -1, 100) //находим отправить и тыкаемся в нее
LCLICK($_return1, $_return2)
$pop = 1
$konec=0
END_IF
end_cyc
$pop=0
else
IF_PICTURE_IN (427,546,1095,693, "close.bmp", -1, 100)
LCLICK($_return1, $_return2)
$konec=0
$zv=0
END_IF
END_IF
IF_PICTURE_IN (522,208, 960,485, "kodsuda.bmp", -1, 100)
capcha()
END_IF
END_CYC
WAITMS(3000)
END_SUB
//===========тыкаемся в спиоск друзей до последнего человека=====================
//============Ищем зеленые кнопки=======================
sub(green)
getscreen
if (arrsize($var) = 0)
scanpicture($var, 0,0, $_xmax,$_ymax, "green.bmp") //ищем зеленые кнопки
end_if
while (arrsize($var) > 0)
if ($zv=0)
$y = arrpop($var)
$x = arrpop($var)
$zv=1
end_if
lclick($x,$y)//на кнопку
///////Проверка последнего человека, если нет то тыкаемся в просилки///
Chelovechki()
END_CYC
undefine($var)
END_SUB
//====тут ищем красную кнопку для вызова попрошайки где будет в дальнейшем зеленые кнопки===================
//==============написал недавно и пока не придумал как и куда ее воткнуть=======================
//sub(perelist) //ищем красную кнопку
getscreen ///Perelist
if ($upred=0)
if_pixel_in( 0, 0, 947,497, 131176)
lclick($_return1, $_return2)
wait(1)
$upred=1
green()
end_if
else
if ($upred2=0)
if_pixel_in(947,497,$_xmax,$_ymax, 131176)
lclick($_return1, $_return2)
wait(1)
$upred2=1
green()
end_if
else
if_pixel_in( 0, 0, $_xmax, $_ymax, 1516513)
lclick($_return1, $_return2)
wait(1)
$upred2=0
$upred=0
end_if // конец условия
end_if
end_if
//END_SUB
//=============================================
//=============================================
//========ВСТАВИТЬ КАПЧу В ОКНО======================
// Переыыыделанный скрипт на капчу для ВК
SUB(paste) //========== Вставить =============================================== ///Paste
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "kodsuda.bmp", -1, 100) //Код Сюда
WAITMS (50)
lclick($_return1, $_return2)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (50)
KEYUP (#ENTER)
WAITMS (50)
END_IF
END_SUB
//========ВСТАВИТЬ КАПЧу В ОКНО======================
//=============РАСПОЗНАЕМ КАПЧУ==================
SUB(capcha)////// Капча ////
repeat: ///Capcha
GETSCREEN //Делаем скрин
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "key1.bmp", -1, 100) //ищем значок AGC
lclick($_return1+50, $_return2+90) //тык в распознать
WAITMS(100)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "key1.bmp")
$AGC_x = $_return1+25 //навели на поле с индикатором по Х
$AGC_y = $_return2+56 //Навели на поле с индикатором по Y
LOGWRITE("AGClient X=", $_return1, ", Y=", $_return2)
END_IF
$pic=0
WHILE($pic=0)
GETSCREEN
IF (PXL($AGC_x, $AGC_y)=65535) // жёлтый
WAITMS(300)
END_IF
IF (PXL($AGC_x, $AGC_y)=65280) // зелёный
WAITMS(100)
$pic=1 // выходим из цикла
END_IF
IF (PXL($AGC_x, $AGC_y)=255) // красный
LOGWRITE("Не распознали")
HINTPOPUP("Не распознали")
$pic=2
END_IF
END_CYC
IF($pic=2) // если не распознали отправляем повторно
GOTO(repeat)
END_IF
paste()
WAITMS(300)
END_IF
END_SUB
//=============РАСПОЗНАЕМ КАПЧУ==================
//===========тыкаемся в спиоск друзей до последнего человека=====================
sub(Chelovechki)
$konec=0 ///Chelovechki
while($konec<4) //если последний встречался 4 раза подряд то выход
GETSCREEN
IF_PICTURE_IN (468,356, 784,510, "lostpeople.bmp", -1, 100)
$konec=$konec+1
IF_PICTURE_IN (427,546,1095,693, "close.bmp", -1, 100)
LCLICK($_return1, $_return2)
END_IF
else
IF_PIXEL_IN(588,396, 994,656, 25087) //Ищем звездочку
$konec=0
wait(1)
LCLICK($_return1, $_return2)
WAITMS(500)
END_IF
//=======Окно отправки попрошаек==================================
$pop = 0
WHILE($pop = 0)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "tormoz.bmp", -1, 100) //если окно тормозит
wait(1)
else
IF_PICTURE_IN (518,364, 1093,619, "Otpravit.bmp", -1, 100) //находим отправить и тыкаемся в нее
LCLICK($_return1, $_return2)
$pop = 1
END_IF
GETSCREEN
IF_PICTURE_IN (522,208, 960,485, "kodsuda.bmp", -1, 100)
capcha()
END_IF
END_IF
END_CYC
END_IF
END_CYC
//goto start
END_SUB
//===========тыкаемся в спиоск друзей до последнего человека=====================
//============Ищем зеленые кнопки=======================
sub(green)
getscreen
scanpicture($var, 0,0, $_xmax,$_ymax, "green.bmp") //ищем зеленые кнопки
while (arrsize($var) > 0)
$y = arrpop($var)
$x = arrpop($var)
lclick($x,$y)//на кнопку
///////Проверка последнего человека, если нет то тыкаемся в просилки///
Chelovechki()
END_CYC
undefine($var)
END_SUB
//====тут ищем красную кнопку для вызова попрошайки где будет в дальнейшем зеленые кнопки===================
//==============написал недавно и пока не придумал как и куда ее воткнуть=======================
//sub(perelist) //ищем красную кнопку
getscreen ///Perelist
if ($upred=0)
if_pixel_in( 0, 0, 947,497, 131176)
lclick($_return1, $_return2)
wait(1)
$upred=1
green()
end_if
else
if ($upred2=0)
if_pixel_in(947,497,$_xmax,$_ymax, 131176)
lclick($_return1, $_return2)
wait(1)
$upred2=1
green()
end_if
else
if_pixel_in( 0, 0, $_xmax, $_ymax, 1516513)
lclick($_return1, $_return2)
wait(1)
$upred2=0
$upred=0
end_if // конец условия
end_if
end_if
//END_SUB
//=============================================
//=============================================
getscreen ///Perelist
if_pixel_in( 0, 0, 947,336, 1516513) // если находим в верхней части экрана зеленую кнопку листания, то жмем и уходим в грин
lclick($_return1, $_return2)
wait(1)
green()
else
if_pixel_in( 947,336,$_xmax,$_ymax, 1516513)//иначе смотрим нижнюю часть экрана
lclick($_return1, $_return2)
wait(1)
green()
else
if_pixel_in( 0, 0, $_xmax, $_ymax, 2661665, 7405146)//если пусто все, нет зеленых кнопок, ищем другие цвета кликаем и ничего не делаем
lclick($_return1, $_return2)
wait(1)
end_if // конец условия
end_if
end_if
ну как минимум она не сшита нужно довести до ума все подпрограммы и потом сделать главную программу запуска ) отдельно подпрограммы вроде работают ( по крайней мере на момент написания самой подпрограммы работали )нажать на каждый недостающий элемент коллекции, просить, пока не кончатся люди в списке, закрывать окно, кликать на следующую зеленую кнопку. как пройду все предметы, закрываю коллекцию, иду на следующий обмен, верно?
ниже скрин того что нужно просить у других людей, если есть игра в вк, то открой игру, открой сундук справа ( коллекции) запусти саб(перелист) он покажет что именно нужно