游戏王残局简化版

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

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

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

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