浏览道具列表时,调整每页条数可能使原来的页码失去意义。如果希望继续看到同一个条目,应保存条目的全局位置,再用新条数计算页码和页内位置。
以下是为了练习规则阅读而设计的独立场景。所有输入在这里完整列出,可以先自己记录结果,再对照后面的计算。它不声称对应某款现成游戏;如果实际说明中的边界或处理顺序不同,应以该说明重新演算。
本例条目顺序和总数保持不变,全局索引从零开始,显示页码和行号从一开始。切换条数不会换掉选中项,也没有分页时自动删除或重新排序。
页码为索引整除每页条数再加一;页内行号为余数加一;总页数向上取整。
总条目59,选中全局索引31,也就是列表第32项 依次试用每页条数[9, 13, 4, 16, 8, 7, 6, 5]
每页9条:共7页,选中项在第4页第5行;本页全局索引从27到35。
每页13条:共5页,选中项在第3页第6行;本页全局索引从26到38。
每页4条:共15页,选中项在第8页第4行;本页全局索引从28到31。
每页16条:共4页,选中项在第2页第16行;本页全局索引从16到31。
每页8条:共8页,选中项在第4页第8行;本页全局索引从24到31。
每页7条:共9页,选中项在第5页第4行;本页全局索引从28到34。
每页6条:共10页,选中项在第6页第2行;本页全局索引从30到35。
每页5条:共12页,选中项在第7页第2行;本页全局索引从30到34。
最后一种排版仍指向全局第32项,其页码和行号为[7, 2]。
将显示页码减一后乘每页条数,再加显示行号减一,应当还原相同的全局索引。最后一页可能不足整页,不能凭空补出不存在的条目。
若后面还要改变排序,应该先用条目的稳定标识找回它的新索引,再进行分页计算。仅保留旧页码或旧位置并不能保证仍选中同一件道具。
练习时保留原输入,只改一处条件,再观察哪些结果发生变化。若结果与预期不同,先查编号起点、边界是否包含以及前一步留下的状态。这样的记录能把“感觉不对”变成可复现的问题,也更方便向同伴说明自己的判断依据。