游戏王残局简化版

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

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

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

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