AITemplate小模块合并至BOT模块并优化参数样式
修改所有之前的AITemplate至新格式 启用9s的hold开关(之前有开关但是没用) 准备好cc对接相关代码模板(不能用所以注释了,需要修改)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
local rem=table.remove
|
||||
local ins,rem=table.insert,table.remove
|
||||
|
||||
local baseBot={
|
||||
pushNewNext=NULL,
|
||||
@@ -9,59 +9,103 @@ local baseBot={
|
||||
}
|
||||
function baseBot.update(bot)
|
||||
local P=bot.P
|
||||
local keys=bot.keys
|
||||
if P.control and P.waiting==-1 then
|
||||
local keyQueue=bot.keys
|
||||
bot.delay=bot.delay-1
|
||||
if not keyQueue[1]then
|
||||
if not keys[1]then
|
||||
if bot.runningThread then
|
||||
pcall(bot.runningThread)
|
||||
if not pcall(bot.runningThread)then
|
||||
P:destroyBot()
|
||||
end
|
||||
else
|
||||
P:act_hardDrop()
|
||||
end
|
||||
elseif bot.delay<=0 then
|
||||
bot.delay=bot.delay0*.5
|
||||
P:pressKey(keyQueue[1])P:releaseKey(keyQueue[1])
|
||||
rem(keyQueue,1)
|
||||
P:pressKey(keys[1])P:releaseKey(keys[1])
|
||||
rem(keys,1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function undefMethod(self,k)
|
||||
print('warn',"Undefined method: "..k)
|
||||
print("Undefined method: "..k)
|
||||
self[k]=NULL
|
||||
return NULL
|
||||
end
|
||||
local botMeta={__index=undefMethod}
|
||||
|
||||
return{
|
||||
new=function(P,data)
|
||||
local bot={P=P}
|
||||
if data.type=="CC"then
|
||||
-- local ccBot=require"parts.bot.cc_wrapper"
|
||||
-- setmetatable(bot,{__index=function(self,method)
|
||||
-- if ccBot[method]then
|
||||
-- ccBot[method](ccBot)
|
||||
-- elseif baseBot[method]then
|
||||
-- baseBot[method](self)
|
||||
-- else
|
||||
-- undefMethod(self,method)
|
||||
-- end
|
||||
-- end})
|
||||
setmetatable(bot,botMeta)
|
||||
elseif data.type=="9S"or true then--9s or else
|
||||
TABLE.cover(baseBot,bot)
|
||||
TABLE.cover(require"parts.bot.bot_9s",bot)
|
||||
bot.P:setRS('TRS')
|
||||
bot.runningThread=coroutine.wrap(bot.thread)
|
||||
bot.keys={}
|
||||
bot.delay=data.delay
|
||||
bot.delay0=data.delay
|
||||
bot.runningThread(P,bot.keys)
|
||||
setmetatable(bot,botMeta)
|
||||
end
|
||||
return bot
|
||||
local BOT={}
|
||||
|
||||
local AISpeed={60,50,40,30,20,14,10,6,4,3}
|
||||
function BOT.template(arg)
|
||||
if arg.type=='CC'then
|
||||
if not arg.hold then arg.hold=false else arg.hold=true end
|
||||
return{
|
||||
type='CC',
|
||||
next=arg.next,
|
||||
hold=arg.hold,
|
||||
delay=AISpeed[arg.speedLV],
|
||||
["args.node"]=arg.node,
|
||||
}
|
||||
elseif arg.type=='9S'then
|
||||
return{
|
||||
type='9S',
|
||||
delay=math.floor(AISpeed[arg.speedLV]),
|
||||
hold=arg.hold,
|
||||
}
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
function BOT.new(P,data)
|
||||
local bot={P=P,data=data}
|
||||
if data.type=="CC"then
|
||||
-- P:setRS('SRS')
|
||||
-- bot.keys={}
|
||||
-- bot.nexts={}
|
||||
-- bot.delay=data.delay
|
||||
-- bot.delay0=data.delay
|
||||
-- if P.gameEnv.holdCount and P.gameEnv.holdCount>1 then P:setHold(1)end
|
||||
|
||||
-- local cc=require"parts.bot.cc_wrapper"
|
||||
-- local opt,wei=cc.getConf()
|
||||
-- wei:fastWeights()
|
||||
-- opt:setHold(P.AIdata.hold)
|
||||
-- opt:set20G(P.AIdata._20G)
|
||||
-- opt:setBag(P.AIdata.bag=='bag')
|
||||
-- opt:setNode(P.AIdata.node)
|
||||
-- bot.ccBot=cc.new(opt,wei)
|
||||
-- local cc_lua=require"parts.bot.bot_cc"
|
||||
-- setmetatable(bot,{__index=function(self,k)
|
||||
-- if self.ccBot[k]then
|
||||
-- self.ccBot[k](self.ccBot)
|
||||
-- elseif cc_lua[k]then
|
||||
-- cc_lua[k](self)
|
||||
-- elseif baseBot[k]then
|
||||
-- baseBot[k](self)
|
||||
-- end
|
||||
-- end})
|
||||
|
||||
-- for i,B in next,P.gameEnv.nextQueue do
|
||||
-- if i<=data.next then
|
||||
-- bot:addNext(B.id)
|
||||
-- else
|
||||
-- ins(bot.nexts,B.id)
|
||||
-- end
|
||||
-- end
|
||||
-- bot.runningThread=coroutine.wrap(cc_lua.thread)
|
||||
-- bot.runningThread(bot)
|
||||
setmetatable(bot,botMeta)
|
||||
elseif data.type=="9S"or true then--9s or else
|
||||
TABLE.cover(baseBot,bot)
|
||||
TABLE.cover(require"parts.bot.bot_9s",bot)
|
||||
P:setRS('TRS')
|
||||
bot.keys={}
|
||||
bot.delay=data.delay
|
||||
bot.delay0=data.delay
|
||||
bot.runningThread=coroutine.wrap(bot.thread)
|
||||
bot.runningThread(bot)
|
||||
setmetatable(bot,botMeta)
|
||||
end
|
||||
return bot
|
||||
end
|
||||
|
||||
return BOT
|
||||
Reference in New Issue
Block a user