北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
12
返回列表 发新帖
楼主: shenji

Mush偷学任务招式对比

[复制链接]
发表于 2022-7-22 17:47:47 | 显示全部楼层
非常经典的DP啊,学到了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2022-8-2 12:48:57 | 显示全部楼层
之前的代码运行起来之后发现,有时因为busy偷学不成功,但table里已经删掉了匹配到的语句导致偷学成功率下降,因此稍微改动了一下

function tx_cp(str)
    local tx_str = tostring(str)
    local str_i_max = tonumber(string.len(str))
        local tx_s = {}
        local i = 1
    while i <= tonumber(str_i_max - 1) do
                table.insert(tx_s,string.sub(str,i,i+1))
                i = i + 2
        end
        for k, v in pairs(tx_pfm) do
                if levenshtein(tx_pfm[k],tx_s) < tonumber(GetVariable("tx_xsd")) then
                        k = k + 1
                        if tx_pfm[k] == nil then
                                break
                        end
                elseif levenshtein(tx_pfm[k],tx_s) >= tonumber(GetVariable("tx_xsd")) then
                        --Note("第"..k.."招匹配成功")
                        --Send("touxue "..GetVariable("tx_id"))
                        --table.remove(tx_pfm, k)
                                --if #tx_pfm == 0 then            --table的元素数量为0,说明已经学完,即可结束

                                        --Send("response action 偷学完毕")
                        Send("touxue "..GetVariable("tx_id"))
                        SetVariable("tx_k", k)           --将匹配成功的语句的key值储存起来,等到偷学成功时再删除
                        break
                        end
                end
end

再写一个触发:

match:^你从\S+身上偷学到了一招!$
send:
table.remove(tx_pfm, tonumber(GetVariable("tx_k")))
SetVariable("tx_k", 0)
print(#tx_pfm)
if #tx_pfm == 0 then
  Send("response action 偷学完毕")
end


------------------------------------------------------------------

北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2022-8-2 13:11:44 | 显示全部楼层
动规大师!
Orz

点评

啥是动规  发表于 2022-8-5 03:51 PM
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2022-10-29 22:41:22 | 显示全部楼层

动态规划
DP
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-3-29 03:38 PM , Processed in 0.009559 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表