游戏王残局简化版

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

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

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

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