Что нового

[Автоматизация] обучит AutoIT3 языку PPL или любому другому языку програмирования

Alex Bit

Новичок
Сообщения
24
Репутация
0
Доброго времени суток уважаемые гуру и новички.
Мое познание в AutoIT3 более чем скромные(но месяц назад их не было вообще) .
Посмотрите вложенный файл.Это стандартный язык программирования PPL - конкретно для игры в покер.Хотел-бы научится чтобы мой скрипт проводил анализ входных данных и выдавал действия прописанные в текстовом файле.Для начала прошу уважаемых гуру помочь с скриптом который бы мне выдавал что "в строке №___ встретилась не описанная функция (Asdf - например)".Тема охватывает сразу множество вопросов ,но постепенно их решая это будет интересно и новичкам и уважаемым гуру.
:smile:
 

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
т.е. вы предлагаете на ЯП AutoIt3 сделать PPL?
А давайте на ASMe напишем Python 4000, на нем напишем Си, а на нем напишем аит, а там уж до PPL недалеко.
И чтобы все это было кроссплатформенным. Да. И функция Asdf будет ссылкой на Random.
Alex Bit сказал(а):
Доброго времени суток уважаемые гуру и новички.
Напишите мне бота для покера.
Так хоть бы честно было.
 
Автор
A

Alex Bit

Новичок
Сообщения
24
Репутация
0
У меня ваше сообщение вызвало улыбку.Вы даже фактически правильно описали путь изменения.Слава богу у нас уже имеется :IL_AutoIt_1: и множество других скриптовых языков программирования . Можно пойти по пути - мы берем нужный нам код другого языка и переводим его на AutoIT .Смотрим туда - пишим здесь.А если таких скриптов несколько ,то такой подход становится не аффективным.Мне кажется лучше его обучить этому языку.По идее страшного ни чего нет. :smile:
 

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
Ваш взгляд ошибочен. Обучить этому языку - штаны на голову надеть. В 10 раз легче + в 10 раз эффекцтивней - это перевести скрипт. А это бесплтано за вас никто делать не будет.
 
Автор
A

Alex Bit

Новичок
Сообщения
24
Репутация
0
я все-же попробую обучить :IL_AutoIt_1: языку.Ведь он умеет фактически все и не труден в понимании.Перевести руками не составляет большого труда.А если таких скриптов сотни то это головная боль :-\
 

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
http://www.mathstat.dal.ca/~selinger/ppl/
И не надо извращений.
 
Автор
A

Alex Bit

Новичок
Сообщения
24
Репутация
0
Привожу список выражений которые могут попадаться в данных скриптах
Код:
;Числовые переменные: 
;Следующие переменные используются в условиях формы <Переменная> <Компаратор> <Число>. Например: 
;Raises <2 

; список числовых  переменных (в алфавитном порядке) следующие: 

$AmountToCall ; - это всегда выражается числом больших блайндов(ББ), независимо от игрового
;типа (PL, NL, и т.д.). Это - количество ББ, которое бот должен поместить в пот.

$Bets ; - число ставок противниками в пари. Собственные ставки бота не считаются. 
;Эта переменная сбрасывается в 0, когда за столом играют с рейсом, рирейсом . Значение может быть или 0 или 1, 
;так как не больше чем 1 ставка может быть сделана в определенном кругу пари. 

$BetSize; - это всегда выражается числом ББ, независимо от игрового типа (Предел, NL, и т.д.). 

$BigBlindSize ; - размер ББ. 

$BotsActionsOnThisRound ; - число действий в текущем пари , которые включают помещенные в пот
;(вызов или повышение). check не считаются как действие. 

$BotsActionsOnFlop ; - число действий, взятых пари flop  , которые включают помещение,
;вносит в pot (вызов или повышение). check не считаются как действие. Ограничения: turn и river 

$BotsActionsPreflop ; - число действий, взятых пари перед preflop , которые включают помещение
; в pot (вызов или повышение). check не считаются как действие. Ограничения: post-flop . 

$BotsLastAction ; - безотносительно мер, которые boot предпринял последний, хороший для обработки повышений после того,
; как Вы действуете. У этой переменной есть свои собственные специальные значения, которые являются:
; повышение, держал пари, не вызывает, или check. Единственный позволенный компаратор '='.

$BotsLastPreflopAction ;- безотносительно последнего действия boot на пари перед preflop.
 ;Эта переменная использует специальные значения BotsLastAction, которые являются:
 ;повышение, держал пари, не вызывает, или check. Единственный позволенный компаратор '='. Ограничения: post-flop . 

$Calls

$CallsSinceLastRaise ;- число вызовов всеми противниками начиная с последнего повышения противником на текущем пари  .
 ;Если еще не было повышения на текущем пари   значения, 0. (Собственное повышение boot не может считаться,
 ;так как это никогда не могло быть последнее повышение.) 


$Checks ;- число проверяет противников в этом пари  . Собственные check boot не считаются.

$FirstCallerPosition ;- позиция проигрывателей за таблицей считается от против часовой стрелки позиция относительно ББ
;  позиции (не Ваша позиция). Поэтому МБ = 1, Baton = 2, следующий = 3, и т.д. 

$FirstRaiserPosition

$Folds 

$LastCallerPosition 

$LastRaiserPosition

$MaxOpponentStackSize ;- число ББ которые имеет противник за вашей позицией с самым большим стеком 

$MinOpponentStackSize ;- число ББ которые имеет противник за вашей позицией с самым маленьким стеком 

$NumberOfRaisesBeforeFlop ;- число повышений перед preflop сделано противниками. Собственные повышения boot не считаются.

$NumberOfRaisesOnFlop ;- число повышений на preflop   сделано противниками. Собственные повышения boot не считаются. 

$NumberOfRaisesOnTurn ;- число повышений на turn   сделано противниками. Собственные повышения boot не считаются. 

$NutFullHouseOrFourOfAKind

$Opponents ; все противники у которых на руках карты

$OpponentsAtTable ;все противники сидящие за столом

$OpponentsLeft. 

$OpponentsOnFlop

$OpponentsWithHigherStack 

$OpponentsWithLowerStack 

$Overcards

$OvercardsOnBoard

$Position ;- позиция boot относительно других проигрывателей

$PotSize ;- это всегда выражается числом больших жалюзи, независимо от игрового типа (Предел, NL, и т.д.). 

$Raises ;- число повышений противниками на этом пари

$RaisesSinceLastPlay ;- число повышений начиная с последнего действия bootв. 

$Random ;- возвращает случайное число между 1 и 100 

$StackSize ;- размер стека

$StartingStackSize 

$StillToAct ;- только живые проигрыватели позади Вас

$TotalInvested ;- общая сумма , которые инвестируют в пот, считаемую числом больших жалюзи. 

;Булевы Оцененные Переменные: 
;Эти переменные оценивают к любой истине или лжи и формируют условие. 
;Полный список Булевской переменной (в алфавитном порядке) следующие: 

$AcePresentOnFlop ;- Истина, если есть туз

$BotCalledBeforeFlop

$BotIsLastRaiser ;- Истина, если boot повысил и не было никаких повышений после этого. 

$BotRaisedBeforeFlop ;- Истина, если boot повышенный перед preflopм. 

$BotRaisedOnFlop ;- Истина, если boot повышается на preflop.

$BotRaisedOnTurn ;- Истина, если bootповышается на терне.

$CalledOnFlop 

$CalledOnTurn 

$FlushOnBoard ;- Истина, если все на флопе одной масти

$FlushPossible ;- Истина, если не хватает одной карты для флеша

$FlushPossibleOnFlop

$FlushPossibleOnTurn

$FourOf1SuitOnTurn 

$FullHouseOnBoard ;фулхаус на доске 

$HadPairOnFlop ;совпала пара на флопе 

$HadPairOnTurn ; совпала пара на терне 

$HadTopPairOnFlop ;совпала топ-пара на флопе 

$HadTopPairOnTurn ;совпала топ-пара на терне

$HadTwoPairOnFlop

$HadOverpairOnFlop ;оверпара в руках на флопе

$HaveBackdoorFlushDraw 

$HaveBackdoorNutFlushDraw

$HaveBestKicker

$HaveBestKickerOrBetter

$HaveBestOverpairOrBetter

$HaveBottomPair

$HaveBottomSet
 
Автор
A

Alex Bit

Новичок
Сообщения
24
Репутация
0
такой код я нашол для с++

openPPL_code,
option_settings_to_be_ignored,
single_option,
option_name,
option_value,
custom_sections,
missing_keyword_custom,
symbol_section,
code_sections,
preflop_section,
flop_section,
turn_section,
river_section,
missing_code_section,
symbol_definition,
when_section,
when_condition_sequence,
when_condition_sequence_with_action,
when_condition_sequence_without_action,
when_condition_sequence_with_action_and_fold_force,
open_ended_when_condition_sequence,
open_ended_when_condition,
when_condition_with_action,
when_condition_without_action,
return_statement,
when_condition,
condition,
expression,
primary_expression,

terminal_expression,
bracket_expression,
missing_closing_bracket_expression,
operand_expression,
unary_operator,
unary_expression,
percentage_operator,
multiplicative_operator,
multiplicative_expression,
additive_operator,
additive_expression,
relational_operator,
relational_expression,
equality_expression,
and_expression,
xor_expression,
or_expression,
action,
action_without_force,
predefined_action,
fixed_betsize_action,
relative_betsize_action,
keyword_predefined_action,
number,
boolean_constant,
symbol,

// Keywords
keyword_when,
keyword_on,
keyword_off,
keyword_custom,
keyword_symbols,
keyword_preflop,
keyword_flop,
keyword_turn,
keyword_river,
keyword_not,
keyword_and,
keyword_xor,
keyword_or,
keyword_true,
keyword_false,
keyword_force,
keyword_beep,
keyword_call,
keyword_play,
keyword_raise,
keyword_raisemin,
keyword_raisehalfpot,
keyword_raisepot,
keyword_raisemax,
keyword_allin,
keyword_fold,
keyword_bet,
keyword_betmin,
keyword_bethalfpot,
keyword_betpot,
keyword_betmax,
keyword_sitout,
keyword_others,
when_others_fold_force,
when_others_when_others_fold_force,
suit_constant,
card_constant,
card_expression_with_specific_suits,
non_suited_card_expression,
suited_card_expression,
non_suited_board_expression,
suited_board_expression,
keyword_suited,
keyword_hand,
keyword_board,
keyword_new,
keyword_symbol,
keyword_return,
keyword_end,
card_expression,
board_expression_with_brackets,
hand_expression_with_brackets,
board_expression_without_brackets,
hand_expression_without_brackets,
erroneous_action_without_force,
invalid_character,
invalid_symbol
;
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Alex Bit

{CodeWarn}
 
Верх