Show Posts

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.


Messages - Graubart

Pages: 1 [2] 3
16
Использование / Re: «Pearls before swine»
« on: December 09, 2018, 03:35:05 PM »
Может достаточно просто привязаться и все заработает без  всяких постмесаджей?
Ну ты мой код просмотрел теперь. Какие замечания к привязке?
Вообще я бы хотел, чтоб привязка происходила автоматом,  без всяких хоткеев Alt+W, но так не получается. И когда окно плеера передвигаешь по экрану (правда, только при открытом меню) при следующем ходе код пересчитывает новые координаты. А вот как от этого избавиться, пока не знаю. Я понимаю так, что если привязался, то ничего не надо пересчитывать, КМ сам всё сделает.

Кстати,
  Проблемы при привязке? Есть решение!!!
Code: (clickermann) [Select]
//A_GETSCREEN
SUB(A_GETSCREEN, $A_x1, $A_y1, $A_x2, $A_y2, $A_hwnd)
   WNDGETINFO ($A_hwnd, $A_x0, $A_y0, $A_width, $A_height)
   IF($A_x1+$A_y1+$A_x2+$A_y2 = 0)
      $A_x2 = $A_width
      $A_y2 = $A_height
   END_IF
   GETSCREEN($A_x0+$A_x1,$A_y0+$A_y1,$A_x0+$A_x2,$A_y0+$A_y2)
END_SUB
попробовал этот код, выдаёт ошибку при вызове функции:РОР



17
Использование / Re: «Pearls before swine»
« on: December 09, 2018, 02:46:25 PM »
Не знаю как у тебя в проекте строк 526, у меня в твоем проекте показывает вот столько  :) :

Да, ты прав стопудово!  :-[ Оказывается, я в SFX на файлообменнике залил сырой промежуточный вариант кода. А твои веские замечания сравнивал с конечным домашним файлом. Но когда я распаковал тот файл, то всё понял. Там дофига фигни :-\, даже бинар-массив в начале, который благодаря твоему алгоритму теперь совсем не нужен и энд_иф лишний и мувов лишних наворочено. Потому и строк больше. В общем надо найти время и хорошо всё отредактировать. А главное, заменить пикселькаунтом код курсора.

18
Использование / Re: «Pearls before swine»
« on: December 08, 2018, 03:52:44 PM »
Большое спасибо всем, кто нашел время протестировать проект.

У меня в вин10 код курсора над кнопкой "GO" = 31
Спасибо. Понятно, идея ожидания следующего левела по курсору чревата ошибками. Я совсем забыл, что не так давно установил новую тему курсоров, и у меня код курсора "рука" равен 45. Надо переделать по PXLCOUNT. Так будет универсальнее.

Quote
лишний энд_иф 527 стр.
Лишних энд_ифов нет и не может быть, иначе КМ выдаст ошибку или вовсе зависнет. Скорее всего ты принял метку в конце проекта "end:" за энд_иф. Строк в проекте всего 526.

Quote
А что это за написание такое - WAIT(.1)
Обычное короткое написание. Все языки програмирования и даже калькулятор это принимают. После того как Джонни сделал дробные значения для WAIT, я почти не пользуюсь WAITMS.

19
Использование / Re: «Pearls before swine»
« on: December 07, 2018, 03:39:53 PM »
Кликов нет, кнопка не нажималась, да и не должна. Это был второй режим с подсказками.

В режиме "2. «Референт»" игрок играет сам, то есть читает подсказку, снимает шары в рекомендованном ряду и жмет GO. Хельпер ждет пока Хуан сделает ход и тогда Хельпер считает шары и дает следующую подсказку. Так что не надо "прибивать", надо просто нажать GO.
В режиме "3. «Счетчик»" прямо написано: "Сделай ход и нажми GO"

20
Использование / Re: «Pearls before swine»
« on: December 07, 2018, 02:29:05 PM »
Одну партию помогло и захватило мышь в центр кнопки GO.
Пока не прибил, не отпускало.

А можно, плз, поподробнее как это "помогло и захватило мышь"? И что значит "Пока не прибил, не отпускало"? Может быть мышка дернулась и Хельпер не успел сделать клик в GO?

21
Использование / Re: «Pearls before swine»
« on: December 06, 2018, 11:10:12 PM »
Предлагаю всем желающим протестировать последнюю версию
https://fex.net/get/470614221998/1016552491

22
Использование / Re: «Pearls before swine»
« on: December 05, 2018, 03:43:04 PM »
И картинку видит, и кликает, и все это в неактивном окне.

Да, но когда кликает, окно становится активным. И если в это время другое окно перекроет или мышку дернуть, один клик может быть пропущен - проигрыш. Хуан ошибок не прощает! >:(

23
Использование / Re: «Pearls before swine»
« on: December 05, 2018, 12:00:40 AM »
Вот все константы для мышки...
Вот спасибо за это. Искать некогда, да и идея недавно возникла.

Quote
Может достаточно просто привязаться и все заработает без  всяких постмесаджей?
Да вроде привязался, может не так как надо  :) Но фокусировку бот всё равно похищает при своём ходе. А главное, сбои происходят при перекрытии окна плеера всплывающими окнами.

Quote
Кстати, а что за плеер такой? И как он работает?
Обыкновенный стандартный плеер, немного под себя подфигачил.
Могу ексешку прислать на мыло, если не против, заценишь всё  ;D

24
Использование / Re: «Pearls before swine»
« on: December 04, 2018, 05:46:52 PM »
При 6 колормоде сканпикчер довольно хорошо находит.
Со сканпикчера я начинал. Это не универсальное решение. В разных браузерах бывают сбои. Я пошел другим путем. Приспособил стабильный плеер в отдельном окне. Обошелся PXLCOUNT(10х10 пкс). Рядом прилепил Лог. Слелал озвучку ходов в ответ на реплики Хуана. Скрин внизу.
Что никак не получается, то это освободить мышку, задействовав SENDMESSAGE/POSTMESSAGE/GETMESSAGE. Не могу найти все константы "WM_", да и не занимался этим. Может подсобите или dramster. Но мне кажется вы уже утратили интерес к этой игре.

Quote
Правда, если рядов шесть, то в последнем графика чуть меняется (пришлось сделать два шаблона жемчужин).
Рядов максимум 7 после 23 уровня. Да, графика меняется и меняется размер жемчужин с увеличением рядов. Еще один аргумент в пользу плеера.

Quote
P.S. dramster, как в голову вообще могло прийти такое решение? Великолепно же!
Это великолепно, это супер! Настолько новый взгляд, что я уже переделал все свои проекты под новый алгоритм, хотя и старый работал устойчиво. Просто меня порадовала простота кода в нем.
Кстати, я не стал ждать компилятора от Джонни, а сделал эксешку, вполне нормально рабочую. Зипованная около 6 мег. Могу всем желающим скинуть на мыло в личку, здесь размер файла не позволяет.

25
Использование / Re: «Pearls before swine»
« on: December 01, 2018, 05:40:51 PM »
Теперь буду бот переделывать под твой алгоритм.  :'(

26
Использование / Re: «Pearls before swine»
« on: December 01, 2018, 05:21:47 PM »
Вообщето катит, мой код верный  >:( . Просто кликерман считает както не правильно  :-\
Оказывается, если писать оператор словом "xor", то при выполнении он считает чертичто. Если заменить на символ "^", то глюки исчезают  :-\ . Придется учитывать в будущем.
Супер! А я как зациклился когда-то на вычислении ним-суммы через бинар, так даже и не думал о другом варианте. Класс! Код получился легче и красивее. А то раньше мне надо было сначала заполнить массив бинар:
Code: (clickermann) [Select]
FOR($n=0,$n<31)
 $c=0
 $q=0
 $d=$n
   WHILE($d!0)
 $o=$d-2*INT($d/2)
 $c=$c+$o*POW(10,$q)
 $q=$q+1
 $d=INT($d/2)
   END_CYC
 $bin[$n]=$c
    END_CYC
А потом код вычислял ним-сумму сначала для определения хода:
Code: (clickermann) [Select]
$nim=0
   FOR($n=1,$n<(STRLEN($nin)+1))
 $ni=STRCUT($nin,$n,1)
 $ni=$ni-2*INT($ni/2)
 $nim=$nim+$ni*POW(10,(STRLEN($nin)-$n))
   END_CYC
 $lin=0
 $lin1=0
  FOR($n=1,$n<8)
   IF($ball[$n]!0)
 $lin=$lin+1
   END_IF
   IF($ball[$n]=1)
 $lin1=$lin1+1
 $liv=$n
   END_IF
  END_CYC
Потом, если ход мой, прога вычисляет где и сколько снимать:
Code: (clickermann) [Select]
  FOR($li=1,$li<8)
   FOR($bl=0,$bl<($ball[$li]+1))
 $nim=0
 $nin=0
    FOR($pr=1,$pr<(8))
     IF($pr!$li)
 $m=$ball[$pr]
 $nin=$nin+$bin[$m]
     END_IF
    END_CYC
 $nin=$nin+$bin[$bl]
    FOR($n=1,$n<(STRLEN($nin)+1))
 $ni=STRCUT($nin,$n,1)
 $ni=$ni-2*int($ni/2)
 $nim=$nim+$ni*POW(10,(STRLEN($nin)-$n))
    END_CYC
   END_CYC
  END_CYC
А сейчас проще намного. Вот последний полностью оформленный под #autorun вариант:
Code: (clickermann) [Select]
#autorun

 $mes0=STRCONCAT("Помощник для игры «Pearl before swine»")
 $mes0=STRCONCAT($mes0,char(13),char(10))
 $mes0=STRCONCAT($mes0,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")

begin:
  FOR($n=1,$n<8) // Обнуляем массив
 $ball[$n]=0
  END_CYC

 $mes=STRCONCAT($mes0,char(13),char(10))
 $mes=STRCONCAT($mes,"        ВВОД КОЛИЧЕСТВА ШАРОВ",char(13),char(10),char(13),char(10))
 $mes=STRCONCAT($mes,"           Не более 7 рядов!")
 $inp=INPUTBOX($mes,"Вводи числа, разделяя пробелом",1000000)
  IF($inp="")
 HALT(1)
  END_IF
 $strlen=STRLEN($inp)

// Избавляемся от случайных ошибок ввода
  FOR($n=1,$n<$strlen+1)
   IF((STRCUT($inp,$n,1)<"0") OR (STRCUT($inp,$n,1)>"9"))
 $inp=STRCONCAT(STRCUT2($inp,1,$n-1)," ",STRCUT2($inp,$n+1,$strlen))
   END_IF
  END_CYC
 $strlen=STRLEN($inp)
  FOR($n=1,$n<$strlen+1)
   IF(STRCUT($inp,$n,2)="  ")
    WHILE(STRCUT($inp,$n,2)="  ")
 $inp=STRCONCAT(STRCUT2($inp,1,$n-1),STRCUT2($inp,$n+1,$strlen))
 $strlen=STRLEN($inp)
    END_CYC
   END_IF
  END_CYC
  WHILE(STRCUT($inp,1,1)=" ")
 $inp=STRCUT2($inp,2,$strlen)
 $strlen=STRLEN($inp)
  END_CYC
   WHILE(STRCUT($inp,$strlen,1)=" ")
 $inp=STRCUT2($inp,1,$strlen-1)
 $strlen=STRLEN($inp)
   END_CYC
 $inp=STRCONCAT($inp," ")
 $strlen=STRLEN($inp)

 $lin=0
 $beg=1
  FOR($n=1,$n<$strlen+1)
   IF(STRCUT($inp,$n,1)=" ")
  INC($lin)
 $ball[$lin]=STRCUT2($inp,$beg,$n-1) // Загружаем массив
 $beg=$n+1
   END_IF
  END_CYC
 $linTotal=$lin

   IF($linTotal>7)
 $linTotal=7
   END_IF

 $lin1=0
  FOR($n=1,$n<$linTotal+1)
   IF($ball[$n]=1)
  INC($lin1)
   END_IF
  END_CYC

 $lin=1
 $ball_mem=$ball[$lin]
   WHILE($ball[1]^$ball[2]^$ball[3]^$ball[4]^$ball[5]^$ball[6]^$ball[7])
 $ball[$lin]=$ball[$lin]-1
    IF($ball[$lin]<0)
 $ball[$lin]=$ball_mem
  INC($lin)
 $ball_mem=$ball[$lin]
    END_IF
   END_CYC

  IF($linTotal=1)
 $ball[$lin]=1
  END_IF
   IF(($linTotal-2*(INT($linTotal/2))=0) AND ($lin1>$linTotal-2))
 $ball[$lin]=0
   END_IF
   IF(($linTotal-2*(INT($linTotal/2))>0) AND ($lin1=$linTotal-1))
 $ball[$lin]=1
   END_IF

   IF ($ball_mem=$ball[$lin])
 $mes=STRCONCAT($mes0,char(13),char(10),"                 Передай ход Хуану!")
 $mr=DIALOGBOX($mes,1)
  IF ($mr=2)
 HALT(1)
  END_IF
 GOTO(begin) 
   END_IF

 $mes=$mes0
  FOR($n=1,$n<$linTotal+1)
 $mes=STRCONCAT($mes,char(13),char(10),"    ",$n," ряд  -  ")
   IF($n=$lin)
 $mes=STRCONCAT($mes,$ball_mem,"      <<==  сними ",$ball_mem-$ball[$lin],", оставь ",$ball[$lin])
   ELSE
 $mes=STRCONCAT($mes,$ball[$n])
   END_IF
  END_CYC
 $mr=DIALOGBOX($mes,1)
  IF ($mr=2)
 HALT(1)
  END_IF
 GOTO(begin)

28
Использование / Re: «Pearls before swine»
« on: November 29, 2018, 05:36:05 PM »
Ключевое слово здесь "ждите"  :) :D

Почти по Библии: ;)
"Ждите, и обрящете"

29
Использование / Re: «Pearls before swine»
« on: November 29, 2018, 05:11:44 PM »
А потом мальчики и девочки, будут постоянно ныть на форуме и ковыряя в носу, требовать обещанный компилятор, ссылаясь на данное провокационное сообщение.
Вы  твёрдо уверены, что компилятор обещан и его нужно ждать?

или нет. учитывая что вы вообще хотите ограничить запуск скрипта.
кароч ждите компиляции. хоть какой то

30
Использование / Re: «Pearls before swine»
« on: November 28, 2018, 11:31:25 PM »
Не, не катит через ксор, 3 ряда еще рулит, а дальше пургу гонит.
Подожду пока Джонни компилятор сделает, тогда эксешку выложу на полный вариант. Щас, если хошь, выложу в диалоговом варианте.

Pages: 1 [2] 3