Merge pull request #21 from Gompyn/resolve-conflict-with-MrZ626/master
adapt cold-clear 45d5276 and update field when block placement is wrong
This commit is contained in:
20
parts/ai.lua
20
parts/ai.lua
@@ -18,7 +18,7 @@ local Timer=love.timer.getTime
|
|||||||
local blockPos={4,4,4,4,4,5,4}
|
local blockPos={4,4,4,4,4,5,4}
|
||||||
local scs={{0,1},{0,1},{0,1},{0,1},{0,1},{.5,.5},{-.5,1.5}}
|
local scs={{0,1},{0,1},{0,1},{0,1},{0,1},{.5,.5},{-.5,1.5}}
|
||||||
-------------------------------------------------Cold clear
|
-------------------------------------------------Cold clear
|
||||||
local CCblockID={4,3,6,5,1,2,0}
|
local CCblockID={6,5,4,3,2,1,0}
|
||||||
if system=="Windows"then
|
if system=="Windows"then
|
||||||
require("CCloader")
|
require("CCloader")
|
||||||
BOT={
|
BOT={
|
||||||
@@ -29,12 +29,12 @@ if system=="Windows"then
|
|||||||
addNext= cc.add_next_piece_async ,--(bot,piece)
|
addNext= cc.add_next_piece_async ,--(bot,piece)
|
||||||
update= cc.reset_async ,--(bot,field,b2b,combo)
|
update= cc.reset_async ,--(bot,field,b2b,combo)
|
||||||
think= cc.request_next_move ,--(bot)
|
think= cc.request_next_move ,--(bot)
|
||||||
getMove= cc.poll_next_move ,--(bot)success,hold,move
|
getMove= cc.poll_next_move ,--(bot)success,dest,hold,move
|
||||||
ifDead= cc.is_dead_async ,--(bot)dead
|
|
||||||
destroy= cc.destroy_async ,--(bot)
|
destroy= cc.destroy_async ,--(bot)
|
||||||
|
|
||||||
setHold= cc.set_hold ,--(opt,bool)
|
setHold= cc.set_hold ,--(opt,bool)
|
||||||
set20G= cc.set_20g ,--(opt,bool)
|
set20G= cc.set_20g ,--(opt,bool)
|
||||||
|
setPCLoop= cc.set_pcloop ,--(opt,bool)
|
||||||
setBag= cc.set_bag7 ,--(opt,bool)
|
setBag= cc.set_bag7 ,--(opt,bool)
|
||||||
setNode= cc.set_max_nodes ,--(opt,bool)
|
setNode= cc.set_max_nodes ,--(opt,bool)
|
||||||
free= cc.free ,--(opt/wei)
|
free= cc.free ,--(opt/wei)
|
||||||
@@ -282,9 +282,17 @@ return{
|
|||||||
return 2
|
return 2
|
||||||
end,
|
end,
|
||||||
function(P,ctrl)--Poll keys
|
function(P,ctrl)--Poll keys
|
||||||
if BOT.ifDead(P.AI_bot)then ins(ctrl,6)return 3 end
|
local success,dest,hold,move=BOT.getMove(P.AI_bot)
|
||||||
local success,hold,move=BOT.getMove(P.AI_bot)
|
if success == 2 then
|
||||||
if success then
|
ins(ctrl,6)
|
||||||
|
return 3
|
||||||
|
elseif success == 0 then
|
||||||
|
for i=1,#dest do
|
||||||
|
for j=1,#dest[i] do
|
||||||
|
dest[i][j] = dest[i][j] + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
P.AI_dest = dest
|
||||||
if hold then ctrl[1]=8 end--Hold
|
if hold then ctrl[1]=8 end--Hold
|
||||||
while move[1]do
|
while move[1]do
|
||||||
local m=rem(move,1)
|
local m=rem(move,1)
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ local finesseList={
|
|||||||
finesseList[1][3],finesseList[1][4],finesseList[7][3],finesseList[7][4]=finesseList[1][1],finesseList[1][2],finesseList[7][1],finesseList[7][2]--"2-phase" SZI
|
finesseList[1][3],finesseList[1][4],finesseList[7][3],finesseList[7][4]=finesseList[1][1],finesseList[1][2],finesseList[7][1],finesseList[7][2]--"2-phase" SZI
|
||||||
finesseList[2]=finesseList[1]--S=Z
|
finesseList[2]=finesseList[1]--S=Z
|
||||||
finesseList[4],finesseList[5]=finesseList[3],finesseList[3]--J=L=T
|
finesseList[4],finesseList[5]=finesseList[3],finesseList[3]--J=L=T
|
||||||
local CCblockID={4,3,6,5,1,2,0}
|
local CCblockID={6,5,4,3,2,1,0}
|
||||||
local freshPrepare={
|
local freshPrepare={
|
||||||
none=NULL,
|
none=NULL,
|
||||||
bag=function(P)
|
bag=function(P)
|
||||||
@@ -1427,6 +1427,8 @@ function player.freshBlock(P,keepGhost,control,system)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
function player.lock(P)
|
function player.lock(P)
|
||||||
|
local dest = P.AI_dest
|
||||||
|
local has_dest = (dest ~= nil)
|
||||||
for i=1,P.r do
|
for i=1,P.r do
|
||||||
local y=P.curY+i-1
|
local y=P.curY+i-1
|
||||||
if not P.field[y]then P.field[y],P.visTime[y]=freeRow.get(0),freeRow.get(0)end
|
if not P.field[y]then P.field[y],P.visTime[y]=freeRow.get(0),freeRow.get(0)end
|
||||||
@@ -1434,9 +1436,25 @@ function player.lock(P)
|
|||||||
if P.cur.bk[i][j]then
|
if P.cur.bk[i][j]then
|
||||||
P.field[y][P.curX+j-1]=P.cur.color
|
P.field[y][P.curX+j-1]=P.cur.color
|
||||||
P.visTime[y][P.curX+j-1]=P.showTime
|
P.visTime[y][P.curX+j-1]=P.showTime
|
||||||
|
local x = P.curX+j-1
|
||||||
|
if dest then
|
||||||
|
local original_length = #dest
|
||||||
|
for k=1,original_length do
|
||||||
|
if x == dest[k][1] and y == dest[k][2] then
|
||||||
|
rem(dest, k)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if #dest ~= original_length - 1 then
|
||||||
|
dest = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if has_dest and not dest then
|
||||||
|
CC_updateField(P)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
function player.spin(P,d,ifpre)
|
function player.spin(P,d,ifpre)
|
||||||
local iki=P.RS[P.cur.id]
|
local iki=P.RS[P.cur.id]
|
||||||
|
|||||||
Reference in New Issue
Block a user