وحدة:anagrams
المظهر
local p = {}
-- دالة لتوليد جميع الأنيجرامات لكلمة معينة
local function generateAnagrams(word)
local anagrams = {}
local function permute(prefix, str)
local n = #str
if n == 0 then
table.insert(anagrams, prefix)
else
for i = 1, n do
local rem = str:sub(1, i - 1) .. str:sub(i + 1)
permute(prefix .. str:sub(i, i), rem)
end
end
end
permute("", word)
return anagrams
end
-- دالة للتحقق مما إذا كانت الكلمة موجودة في ويكيشنري
local function checkWiktionary(word)
-- هنا يجب عليك تنفيذ المنطق للتحقق من وجود الكلمة في ويكيشنري
-- هذا هو المكان الذي تحتاج فيه إلى استخدام واجهة برمجة التطبيقات (API) أو أي طريقة أخرى للتحقق
-- كمثال، يمكنك استخدام mw.wikibase.getEntity(word) للتحقق
-- في هذا المثال، سأعيد قيمة وهمية
local validWords = {
["table"] = true,
["bat"] = true,
["eat"] = true,
["tea"] = true,
["ate"] = true,
-- أضف المزيد من الكلمات الصحيحة هنا
}
return validWords[word] or false
end
-- الدالة الرئيسية للحصول على الأنيجرامات الصحيحة
function p.getAnagrams(word)
local anagrams = generateAnagrams(word)
local validAnagrams = {}
for _, anagram in ipairs(anagrams) do
if checkWiktionary(anagram) then
table.insert(validAnagrams, anagram)
end
end
-- إذا لم توجد أي أنيجرامات صحيحة، يمكن إرجاع رسالة بدلاً من جدول فارغ
if #validAnagrams == 0 then
return "لا توجد أنيجرامات صحيحة."
end
return validAnagrams
end
return p