游戏王残局简化版

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

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

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

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