মডিউল:WDL
মডিউল নথি[তৈরি করুন]
আপনি চাইলে এই স্ক্রিবুন্তো মডিউলের জন্য একটি নথির পাতা তৈরি করতে পারেন (তৈরি করুন) সম্পাদনাকারীগণ খেলাঘর (তৈরি করুন | আয়না) এবং পরীক্ষা পাতায় (তৈরি করুন) এই মডিউল সংক্রান্ত পরীক্ষা-নিরীক্ষা করতে পারেন। দয়া করে /নথি উপপাতায় বিষয়শ্রেণী যোগ করুন। এই মডিউলের উপপাতাসমূহ। |
require('Module:No globals')
local getArgs = require('Module:Arguments').getArgs
local roundAndPad = require('Module:দশমিক')._main
local numConvert = require('মডিউল:সংখ্যা রূপান্তরকারী').convert
local p = {}
local function total(frame, played, won, drawn, lost, category)
if played == '-' or played == '—' then
return '—'
elseif not played then
if not won and not drawn and not lost then
return ''
end
return frame:expandTemplate{title = 'নম্বরের ছক বাছাই', args = { (won or 0) + (drawn or 0) + (lost or 0) }}
elseif tonumber(played) ~= (won or 0) + (drawn or 0) + (lost or 0) then
return '<span class="error" style="font-size:100%"><abbr title="GP সমান W + D + L এর যোগফলের সমান নয়">ত্রুটি</abbr>' .. (category or '') .. '</span>'
else
return frame:expandTemplate{title = 'নম্বরের ছক বাছাই', args = { played }}
end
end
local function displayWinPercent(frame, winPercent, decimals)
local retval = ''
if winPercent < 10 then
retval = '<span style="visibility:hidden;color:transparent;">০০</span>'
elseif winPercent < 100 then
retval = '<span style="visibility:hidden;color:transparent;">০</span>'
end
return retval .. frame:expandTemplate{title = 'নম্বরের ছক বাছাই', args = { roundAndPad(winPercent, decimals or 2) }}
end
local function pct(frame, played, won, drawn, lost, decimals)
if played == '-' or played == '—' then
return '—'
elseif not played then
if not won and not drawn and not lost then
return ''
elseif (won or 0) + (drawn or 0) + (lost or 0) <= 0 then
return '<span style="display:none">!</span>—'
end
return displayWinPercent(frame, 100 * (won or 0) / (((won or 0) + (drawn or 0) + (lost or 0)) or 1), decimals)
elseif tonumber(played) <= 0 then
return '<span style="display:none">!</span>—'
else
return displayWinPercent(frame, 100 * (won or 0) / played, decimals)
end
end
function p.main(frame)
local args = getArgs(frame)
local tableprefix = string.format('| style="%stext-align:%s" |', args.total and 'font-weight:bold;background:#efefef;' or '', args.align or 'center')
local retval = tableprefix .. total(frame, args[1], args[2], args[3], args[4], args.demospace and '' or '[[বিষয়শ্রেণী:ডব্লিউডিএল ত্রুটি]]') .. '\n'
retval = retval .. tableprefix .. frame:expandTemplate{title = 'নম্বরের ছক বাছাই', args = { args[2] }} .. '\n'
retval = retval .. tableprefix .. frame:expandTemplate{title = 'নম্বরের ছক বাছাই', args = { args[3] }} .. '\n'
retval = retval .. tableprefix .. frame:expandTemplate{title = 'নম্বরের ছক বাছাই', args = { args[4] }} .. '\n'
if args['for'] then
retval = retval .. tableprefix .. frame:expandTemplate{title = 'নম্বরের ছক বাছাই', args = { args['for'] }} .. '\n'
end
if args.against then
retval = retval .. tableprefix .. frame:expandTemplate{title = 'নম্বরের ছক বাছাই', args = { args.against }} .. '\n'
end
if args.diff == 'yes' then
if tonumber(args['for']) and tonumber(args.against) then
retval = retval .. tableprefix .. numConvert('bn', string.format('%s%d\n', tonumber(numConvert('en', args['for'])) < tonumber(numConvert('en', args.against)) and '−' or '+', math.abs(tonumber(numConvert('en', args['for'])) - tonumber(numConvert('en', args.against)))))
else
retval = retval .. tableprefix .. '<span style="display:none">!</span>—\n'
end
end
return retval .. tableprefix .. pct(frame, args[1], args[2], args[3], args[4], args.decimals)
end
return p