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]
31
Использование / Re: «Pearls before swine»
« on: November 28, 2018, 10:07:15 PM »
Щас попробую накидать код для использавания на автомате. Нужно еще добавить проигрышный вариант для пропуска.

Главное, не забывать что рядов может быть 7, до трех операндов XOR ещё работает, а вот больше - буксует.

32
Использование / Re: «Pearls before swine»
« on: November 28, 2018, 09:12:06 PM »
С одной стороны вроде сложная задача, а решение в пару строк  ;D
Щас попробую накидать код для использавания на автомате. Нужно еще добавить проигрышный вариант для пропуска.

Отлично! Я старался разжевать, как можно проще. Мне интересны любые решения. У вас оригинально, я сделал иначе... Может кто-нибудь ещё предложит разные решения

33
Использование / Re: «Pearls before swine»
« on: November 28, 2018, 08:46:56 PM »
Что интересно после 99 level - scores остается, а level становится 00. Затем level становится 01, scores обнуляется, но количество шаров намного больше, чем в начале.

34
Использование / Re: «Pearls before swine»
« on: November 28, 2018, 08:36:36 PM »
 На приведенном мною сайте я обнаружил эту игру 16 лет назад. Тогда я владел только Бейсиком и написал код помощника в игре. Надо было вводить в инпут к-во шаров в каждом ряду, а он выдавал где и сколько их снимать. Потом писал код на языках более высокого уровня. Но это было просто диалоговое общение с помощником. Когда я обнаружил КМ, перевел всё в код КМ, но не хватало некоторых процедур и функций, я ненавязчиво просил Johnny добавить кое-что.
 И вот в последней версии "Clickermann v4.14 x32" всё, что надо, есть. Я назвал свою прогу *Helper*.
Код работает в трех режимах:
1. «Автомат»     -   *Helper* играет самостоятельно
2. «Референт»   -   *Helper* считает шары и даёт подсказку
3. «Счетчик»     -   *Helper* считает шары без подсказки

Мой *Helper* прошел автоматом 105 уровней за 3 часа 38 минут. Прога делает скрин в начале каждого левела и ведет лог.
Сегодня бот прошел 58 левелов за 1 час 39 мин.

35
Использование / Re: «Pearls before swine»
« on: November 28, 2018, 06:36:41 PM »
Поиграла немного с правильной стратегией. Невозможно создать достойного противника Хуану, чтобы  всегда выигрывать. Периодически в раунде изначально нам предлагают заведомо проигрышное количество жемчуга: придется взять жемчужину и нажать на New game, записывают как поражение. Иногда и несколько раз подряд нерабочий раунд предлагают. Создать неплохо играющего моба, который выяснит заканчиваются ли у Хуана раунды или генерируются бесконечно - вполне можно, но в целом для игры калькулятора переводящего из двоичной в десятеричную (и наоборот)  вполне хватит.

Молодец Qwerry! Правильной дорогой идете, товарищи!

 Начну с того, что этой игре уже несколько сотен лет. Родилась она в Китае и решение найдено довольно давно.
 Об алгоритме игры. Это чистая математика, в начале никаких стратегий нет.
 Правильно, надо в каждом ряду к-во шаров перевести в бинар и сложить их в столбик, как в 1-ом классе.  Например: 5  6  9
0101   5
0110   6
1001   9
----
1212
 После этого сумму переводим в т.н. ним-сумму(N). Все нечетные числа становятся 1, а четные - 0. Получается:
1010
 Чтобы выиграть, надо Хуану каждый раз возвращать N=0. То есть надо подобрать такое число в каком-то ряду, чтобы стало N=0. В нашем примере это 3 вместо 9 в третьем ряду.
0101   5
0110   6
0011   3
----
0222 ---> ним-сумма 0000
 Снимаем 6 шаров в третьем ряду.
Если в начале левела Хуан даёт комбинацию с N=0, жмем GO и передаем ход Хуану. Стоит один раз ошибиться и передать комбинацию N<>0, Хуан выиграет.
 Понятно, в уме это делать тяжеловато, надо писать прогу.

36
Использование / «Pearls before swine»
« on: November 23, 2018, 04:00:35 PM »
Вот занятная интеллектуальная игруха на сайте http://www.transience.com.au/pearl3.html.
Интересно, кто-нибудь пытался с помощью КМ создать достойного противника Хуану? Такого, чтоб сам играл с ним, не проигрывая.



37
Предложения / Re: [Alpha/Beta Testing]
« on: April 20, 2018, 09:27:14 PM »
Graubart подключение инклюдов на лету / динамическое  что ли?
ууууууу, Джонни будет "рад" )

Именно это я имел ввиду. Так я даже не предлагаю Джонни делать такую заморочку. Просто кумарит. А на костылях это можно обойти. В одном скрипте делаю инклюд, затем передаю управление другому скрипту, который его подключает. Вообще на костылях в КМ можно сделать всё... ну, почти всё:)...

38
Предложения / Re: [Alpha/Beta Testing]
« on: April 20, 2018, 03:13:34 PM »
Пока не поздно, ввести наконец проверку на этапе запуска. Хотя бы примитивную первого уровня сложности (без учёта переплетений).

А, ещё подпрограммы 'SUB(ляляля'  должны быть выше всех вызовов  'ляляля('

Согласен. А еще кумарит, что #include должно уже быть готово до запуска  проекта. А если я програмирую в теле скрипта одну подключаемую штуку, то фигвам.
фиг вам и это правильно. Научитесь пользоваться комментариями или создать файл на который ссылаетесь.

Чё то, дядя, ты мимо темы ответил. Видимо не въехал в смысл мною написаного. Разжевывать ламерам нет никакого желания.

39
Предложения / Re: [Alpha/Beta Testing]
« on: April 20, 2018, 01:56:36 PM »
Пока не поздно, ввести наконец проверку на этапе запуска. Хотя бы примитивную первого уровня сложности (без учёта переплетений).

А, ещё подпрограммы 'SUB(ляляля'  должны быть выше всех вызовов  'ляляля('

Согласен. А еще кумарит, что #include должно уже быть готово до запуска  проекта. А если я програмирую в теле скрипта одну подключаемую штуку, то фигвам.

40
Предложения / Re: [Alpha/Beta Testing]
« on: April 18, 2018, 07:35:53 PM »
Ну теперь то достаточно хорошо для публикации? Версия 13.13 счастливая?

Для меня не очень. Хачу харчо, вернее - прямую функциию копирования файлов.
COPY(file1, file2)
Надоело костыли мастырить через Clip или через массив.

41
Предложения / Re: [Alpha/Beta Testing]
« on: April 11, 2018, 06:41:17 PM »
DIALOGBOX можно сделать удобнее.
DIALOGBOX (message, buttons1, buttons2, buttons3, [icon])
Параметры
message - сообщение диалогового окна
buttons1,2,3... - порядковый номер кнопки
$inscription(buttons n) - надпись на соответствующей кнопке
icon - код иконки
Теперь коды наборов кнопок не нужны, их заменят надписи на кнопках. Возвращаемые коды равны порядковым номерам кнопок. Коды иконок остаются. Количество кнопок можно ограничить до 6, а можно и без ограничений.

Пример
// Выводит диалоговое окно с тремя кнопками - Пиво, Сок, Вода.
$message = "Что будем пить?"
$inscription(buttons1) = "Пиво"
$inscription(buttons2) = "Сок"
$inscription(buttons2) = "Вода"
$mr = DIALOGBOX($message, buttons1, buttons2, buttons2, [2])

42
Предложения / Re: [Alpha/Beta Testing]
« on: April 11, 2018, 06:29:38 PM »
INPUTBOX и RADIOBOX
Если в DIALOGBOX шрифт определяется "Свойства: Экран" на вкладке "Оформление", "Дополнительно", "Окно сообщения", то в INPUTBOX и RADIOBOX шрифты постоянные, заданные автором КМ.  Желательно привести их к общим настройкам экрана или хотя бы иметь возможность менять их в файле config.ini.
ИМХО кнопка "ОК" в INPUTBOX должна быть до нажатия любого переключателя не активной. Ни один переключатель не должен иметь зеленого индикатора, который появится только после выбора или перевыбора. Можно задать место индикатора по умолчанию.
RADIOBOX (message, radio1, ...,[default])
Параметры
message - сообщение диалогового окна
radio1 - строка, описывающая переключатель
default - место зеленого индикатора. Если default больше количества переключателей, он не учитывается.

43
Предложения / Re: [Alpha/Beta Testing]
« on: April 11, 2018, 06:23:41 PM »
Писал это ВК. Повторю и здесь.

Очень порадовала новая функция CHAR в последней версии КМ. Жду от автора обратную функцию ASC("symbol").

В процедуры работы с числами желательно добавить функцию MOD - Деление по модулю:
$a MOD $b = $a - $b * INT($a / $b)

44
Предложения / Re: [Alpha/Beta Testing]
« on: April 11, 2018, 06:14:51 PM »
ДИРЕКТИВЫ ПРЕПРОЦЕССОРА
Так как в последней версии пользователь может сам выбирать "GUI идентификатор программы", который отображается в главном окне, неплохо бы отображать во всех диалоговых окнах (INPUTBOX, DIALOGBOX, RADIOBOX и, надеюсь, новых) рядом с "GUI" имя скрипта #name. Часто бывает так, запустив несколько скриптов, вдруг всплывает диалоговое окно, требующее новых инструкций. Приходится искать от какого проекта окно.

Pages: 1 2 [3]