游戏王残局简化版

Annotation For 残局文料/lua_lib/常用库.lua
Login

Annotation For 残局文料/lua_lib/常用库.lua

Lines of 残局文料/lua_lib/常用库.lua from check-in dfc13a8abd that are changed by the sequence of edits moving toward check-in a4c0b3bd26:

                         1: local s = {}
                         2: local 简文件库 = require("lfs")
                         3: local ffi = require("ffi")
                         4: --~ 排
                         5: --~ 办排中值的能
                         6: --~ 入参2
                         7: --~ 入参3
                         8: --~ 入参4
dfc13a8abd 2024-02-13    9: function s.历排(u1_0, o1, o2, o3, o4)
                        10:   local k1_0
                        11:   --~ 集排
                        12:   k1_0 = {}
                        13:   for o5 = 1, #u1_0 do
dfc13a8abd 2024-02-13   14:     k1_0[#k1_0 + 1] = o1(u1_0[o5], o2, o3, o4)
                        15:     end
                        16:   return k1_0
                        17:   end
                        18: --~ 文
                        19: --~ 历文的能
                        20: --~ 入参2
                        21: --~ 入参3
dfc13a8abd 2024-02-13   22: function s.历文(o1, o2, o3, o4)
                        23:   local k1_0
                        24:   --~ 集排
                        25:   k1_0 = {}
dfc13a8abd 2024-02-13   26:   for o5 in o2(o1, o3, o4) do
                        27:     k1_0[#k1_0 + 1] = o5
                        28:     end
                        29:   return k1_0
                        30:   end
                        31: --~ 排
                        32: --~ 能
dfc13a8abd 2024-02-13   33: function s.历排取一(u1_0, o1)
                        34:   local k1
dfc13a8abd 2024-02-13   35:   for o2 = 1, #u1_0 do
                        36:     --~ 值
dfc13a8abd 2024-02-13   37:     k1 = s.历排取一的模(k1, u1_0[o2], o1)
                        38:     end
                        39:   return k1
                        40:   end
                        41: --~ 值
                        42: --~ 排中值
dfc13a8abd 2024-02-13   43: function s.历排取一的模(o1, o2, o3)
dfc13a8abd 2024-02-13   44:   if o1 == nil then
dfc13a8abd 2024-02-13   45:     return o2
dfc13a8abd 2024-02-13   46:   elseif o3(o1, o2) then
dfc13a8abd 2024-02-13   47:     return o2
                        48:   else
dfc13a8abd 2024-02-13   49:     return o1
                        50:     end
                        51:   end
                        52: --~ 对
                        53: --~ 能
dfc13a8abd 2024-02-13   54: function s.历对取一(u1_0, o1)
                        55:   local k1, k2
dfc13a8abd 2024-02-13   56:   for o2, u2_0 in pairs(u1_0) do
                        57:     --~ 键
                        58:     --~ 值
dfc13a8abd 2024-02-13   59:     k1, k2 = s.历对取一的模(k1, k2, o2, u2_0, o1)
                        60:     end
                        61:   return k1, k2
                        62:   end
dfc13a8abd 2024-02-13   63: function s.历对取一的模(o1, o2, o3, o4, o5)
dfc13a8abd 2024-02-13   64:   if o1 == nil then
                        65:     return o3, o4
dfc13a8abd 2024-02-13   66:   elseif o5(o1, o2, o3, o4) then
                        67:     return o3, o4
                        68:   else
dfc13a8abd 2024-02-13   69:     return o1, o2
                        70:     end
                        71:   end
dfc13a8abd 2024-02-13   72: function s.历对(u1_0, o1, o2)
                        73:   local k1
                        74:   local k1_0, k2_0
                        75:   --~ 对
                        76:   k1_0 = {}
                        77:   for o3, u2_0 in pairs(u1_0) do
                        78:     --~ 键
                        79:     --~ 值
dfc13a8abd 2024-02-13   80:     k1, k2_0 = o1(o3, u2_0, o2)
                        81:     if k1 then
                        82:       k1_0[k1] = k2_0
                        83:     else
                        84:       end
                        85:     end
                        86:   return k1_0
                        87:   end
                        88: --~ 排中值
                        89: --~ 值类
                        90: --~ 办值的能
dfc13a8abd 2024-02-13   91: function s.操类(u1_0, o1, o2)
dfc13a8abd 2024-02-13   92:   if type(u1_0) == o1 then
dfc13a8abd 2024-02-13   93:     return o2(u1_0)
                        94:   else
                        95:     return u1_0
                        96:     end
                        97:   end
                        98: --~ 排中文
                        99: --~ 入参2
                       100: --~ 入参3
                       101: --~ 入参4
dfc13a8abd 2024-02-13  102: function s.全筛文(o1, o2, o3, o4)
dfc13a8abd 2024-02-13  103:   print(4)
dfc13a8abd 2024-02-13  104:   if string.find(o1, o2, o3, o4) then
dfc13a8abd 2024-02-13  105:     return o1
dfc13a8abd 2024-02-13  106:     end
dfc13a8abd 2024-02-13  107:   end
dfc13a8abd 2024-02-13  108: --~ 文
dfc13a8abd 2024-02-13  109: --~ 前缀
dfc13a8abd 2024-02-13  110: function s.加前缀(o1, o2)
dfc13a8abd 2024-02-13  111:   return (o2 or "") .. o1
dfc13a8abd 2024-02-13  112:   end
dfc13a8abd 2024-02-13  113: --~ 文
dfc13a8abd 2024-02-13  114: --~ 后缀
dfc13a8abd 2024-02-13  115: function s.加后缀(o1, o2)
dfc13a8abd 2024-02-13  116:   return o1 .. (o2 or "")
dfc13a8abd 2024-02-13  117:   end
dfc13a8abd 2024-02-13  118: --~ 令
dfc13a8abd 2024-02-13  119: function s.办令(o1)
dfc13a8abd 2024-02-13  120:   print(o1)
dfc13a8abd 2024-02-13  121:   os.execute(o1)
dfc13a8abd 2024-02-13  122:   end
dfc13a8abd 2024-02-13  123: --~ 文
dfc13a8abd 2024-02-13  124: --~ 前缀
dfc13a8abd 2024-02-13  125: function s.全筛前缀(o1, o2)
dfc13a8abd 2024-02-13  126:   if string.sub(o1, 1, #o2) == o2 then
dfc13a8abd 2024-02-13  127:     return o1
dfc13a8abd 2024-02-13  128:     end
dfc13a8abd 2024-02-13  129:   end
dfc13a8abd 2024-02-13  130: --~ 文
dfc13a8abd 2024-02-13  131: --~ 后缀
dfc13a8abd 2024-02-13  132: function s.全筛后缀(o1, o2)
dfc13a8abd 2024-02-13  133:   if string.sub(o1, -#o2) == o2 then
dfc13a8abd 2024-02-13  134:     return o1
                       135:     end
                       136:   end
                       137: --~ 目对
                       138: function s.用令行工具操文件(u1_0)
                       139:   local k1_9
                       140:   --~ 令行排
                       141:   k1_9 = s.历文(u1_0.文件目, 简文件库.dir)
                       142:   k1_9 = s.历排(k1_9, s.全筛后缀, u1_0.文件类)
dfc13a8abd 2024-02-13  143:   for o1 = 1, #k1_9 do
dfc13a8abd 2024-02-13  144:     k1_9[o1] = s.加前缀(k1_9[o1], u1_0.文件目)
dfc13a8abd 2024-02-13  145:     k1_9[o1] = s.加前缀(k1_9[o1], [["]])
dfc13a8abd 2024-02-13  146:     k1_9[o1] = s.加后缀(k1_9[o1], [["]])
dfc13a8abd 2024-02-13  147:     k1_9[o1] = s.加前缀(k1_9[o1], u1_0.令行前缀)
dfc13a8abd 2024-02-13  148:     s.办令(k1_9[o1])
                       149:     end
                       150:   end
                       151: --~ 文件路
                       152: --~ 式
dfc13a8abd 2024-02-13  153: function s.读文件(o1, o2)
                       154:   local k1
                       155:   local k1_3
                       156:   --~ 文件
dfc13a8abd 2024-02-13  157:   k1_3 = io.open(o1, o2 or "r")
                       158:   --~ 文
                       159:   k1 = k1_3:read("a")
                       160:   k1_3:flush()
                       161:   k1_3:close()
                       162:   return k1
                       163:   end
                       164: --~ 常量排
                       165: function s.加对限(u1_0)
                       166:   table.insert(u1_0, 1, "local k1_0 = {}")
                       167:   table.insert(u1_0, "return k1_0")
                       168:   return table.concat(u1_0, "\n")
                       169:   end
                       170: --~ 文
                       171: --~ 文件路
                       172: --~ 式
dfc13a8abd 2024-02-13  173: function s.写文件(o1, o2, o3)
                       174:   local k1_3
                       175:   --~ 文件
dfc13a8abd 2024-02-13  176:   k1_3 = io.open(o2, o3 or "w")
dfc13a8abd 2024-02-13  177:   k1_3:write(o1)
                       178:   k1_3:flush()
                       179:   k1_3:close()
                       180:   end
                       181: --~ 文
dfc13a8abd 2024-02-13  182: function s.删左右空白(o1)
dfc13a8abd 2024-02-13  183:   o1 = string.gsub(o1, "^%s+", "")
dfc13a8abd 2024-02-13  184:   return string.gsub(o1, "%s+$", "")
                       185:   end
                       186: --~ 对
                       187: --~ 对
                       188: function s.连两对(u1_0, u2_0)
                       189:   for u3_0, u4_0 in pairs(u2_0) do
                       190:     u1_0[u3_0] = u4_0
                       191:     end
                       192:   return u1_0
                       193:   end
                       194: --~ 键
                       195: --~ 值
                       196: function s.修对类(u1_0, u2_0)
                       197:   if tonumber(u1_0) then
                       198:     return tonumber(u1_0), u2_0
                       199:   else
                       200:     return u1_0, u2_0
                       201:     end
                       202:   end
                       203: do
                       204:   --~ 加数
                       205:   local k1 = 0
                       206:   function s.递增()
                       207:     k1 = k1 + 1
                       208:     return k1
                       209:     end
                       210:   end
                       211: --~ 左加数
                       212: --~ 右加数
dfc13a8abd 2024-02-13  213: function s.加法(o1, o2)
dfc13a8abd 2024-02-13  214:   return o1 + o2
                       215:   end
                       216: --~ 左减数
                       217: --~ 右减数
dfc13a8abd 2024-02-13  218: function s.减法(o1, o2)
dfc13a8abd 2024-02-13  219:   return o1 - o2
                       220:   end
                       221: --~ 左乘数
                       222: --~ 右乘数
dfc13a8abd 2024-02-13  223: function s.乘法(o1, o2)
dfc13a8abd 2024-02-13  224:   return o1 * o2
                       225:   end
                       226: --~ 左除数
                       227: --~ 右除数
dfc13a8abd 2024-02-13  228: function s.除法(o1, o2)
dfc13a8abd 2024-02-13  229:   return o1 / o2
                       230:   end
                       231: --~ 左数
                       232: --~ 右数
dfc13a8abd 2024-02-13  233: function s.位和(o1, o2)
dfc13a8abd 2024-02-13  234:   return bit.band(o1, o2)
                       235:   end
                       236: --~ 数
                       237: --~ 右移几位
dfc13a8abd 2024-02-13  238: function s.位右移(o1, o2)
dfc13a8abd 2024-02-13  239:   return bit.rshift(o1, o2)
                       240:   end
                       241: --~ 键
                       242: --~ 最大值
                       243: --~ 键
                       244: --~ 值
dfc13a8abd 2024-02-13  245: function s.筛对中最大值(o1, o2, o3, o4)
dfc13a8abd 2024-02-13  246:   if o2 < o4 then
                       247:     return true
                       248:     end
                       249:   end
                       250: --~ 最短键
                       251: --~ 值
                       252: --~ 键
                       253: --~ 值
dfc13a8abd 2024-02-13  254: function s.筛对中最短键(o1, o2, o3, o4)
dfc13a8abd 2024-02-13  255:   if #o1 > #o3 then
                       256:     return true
                       257:     end
                       258:   end
                       259: --~ 最短文
                       260: --~ 值
dfc13a8abd 2024-02-13  261: function s.筛排中最短文(o1, o2)
dfc13a8abd 2024-02-13  262:   if #o1 > #o2 then
                       263:     return true
                       264:     end
                       265:   end
                       266: --~ 内数
dfc13a8abd 2024-02-13  267: function s.to_uint64(o1)
dfc13a8abd 2024-02-13  268:   local uint64_pointer = ffi.new("uint64_t[1]", o1)
                       269:   return uint64_pointer[0]
                       270:   end
                       271: --~ 键
                       272: --~ 值
                       273: --~ 要找的值
dfc13a8abd 2024-02-13  274: function s.全等筛对中值(o1, o2, o3)
dfc13a8abd 2024-02-13  275:   if o2 == o3 then
dfc13a8abd 2024-02-13  276:     return o1, o2
                       277:   else
                       278:     end
                       279:   end
                       280: return s