前期对冠军的产生一直都不满意,主要问题是获得冠军太容易并且不可控,在冠军产生的逻辑上,是计算每一回合得分,最后算总分,这样也导致每一回合都要计算,计算量也比较大。 现在提出一个新算法,团结看看是否可行,会不会对原来的改动太大,涉及面太广。我先把思路提出来,你来判断一下。
几个基本问题
玩伴现在的各种指标
界面上显示的指标有:练习量,级别,熟悉语音量,年龄,性别,昵称,一共有六个数据。 其中练习量,级别,熟悉语音量,年龄四个指标属于能力相关指标。几个玩伴代号,为了好讨论,我们称之为playmate1,playmate2,playmate3.自己的孩子,也就是真孩子,我们称之为:User
几个playmate的角色定位
3个playmate分别代表3种能力,例如playmate1能力超强,playmate2能力一般,playmate3能力较差,强中差分为三档。这样配比之后,孩子慢慢能体会到,这3个孩子有的比较厉害,相当具备挑战性,而有的比较笨。孩子慢慢会和他们有了一种竞争比较的情感。这会让playmate模拟的比较真实而有趣。
把playmate每次能得多少分预先定死
由于有了能力角色分配,我们按照10分计算,这样,原则上playmate1每次能得8分左右,playmate2每次能得6分左右,playmate3每次能得4分左右。
得分算法
得分指的是每个回合做对一道题算1分,最后汇总计算总分
分值计算方法如下:
在孩子选择完“请选题”的习题集之后,系统已经能得到,后面的做题环节一共能有多少个回合了。例如是10个回合。这个数字出来了。然后我们提前规划好,每个回合的正确答案摆放的位置,例如是:[1,2,3,4,1,2,3,4,1,2]
然后提前制定好playmate的选择答案时的位置号:例如
能力超强的playmate1: [1,2,3,4,1,2,3,4,4,4],前8个正确,其他错
能力一般的playmate2: [1,2,3,4,1,2,4,1,4,1],前6个正确,其他错
能力最差的playmate3: [1,2,3,4,2,3,4,3,3,1],前4个正确,其他错
制定好这个选答案位置后,当做题开始时,只需要让playmate按照这个提前计划好的位置飞过去即可。当User完成了整个回合之后,也会获得一个数组,例如是:[1,2,3,4,1,2,3,4,1,1],前9个正确,最后错了一个。
所有回合结束后,计算一下User和playmate的分值。例如上面例子中,user: 9分; playmate1: 8分;playmate2 : 6分; playmate3: 4分, 并以此排出冠亚季军。
上面的例子中,我为了表达清楚明晰,正确的我都放在前面,错误的都放在后面,实际中,尽量模拟的随机化一点。
原来有一个原则,就是计算冠军时,仅仅针对“今日习题”,而对“复习题”是不计算得分的,当时我给的理由是,在原来老算法的背景下,已经太容易获得冠军了,再把“复习题”也计算得分,孩子更容易获得冠军。如果采用上面的新算法,就不存在这个问题了,所以在新算法中,今日习题和复习题统统按照一个得分逻辑进行计算。
效果
整体这样设计后,孩子做对的多,就能得冠军,发挥中等,就能得个亚军,太差就什么也得不到,这样孩子会把注意力放在我怎么能尽量的把题目做对。这样有利于学习。
孩子慢慢对这三个玩伴产生了能力判断,如果能赢最厉害的对手,成就感就会更强。总之这个设计基本上模拟了真实的竞赛。
可能的bug
由于比赛是看谁选的又快又准,而上面的只涉及到了准,对于是否快没有做过多的设计。我的想法是,不要考虑的那样的周全了。能先把准的问题解决掉。快的问题就先不管了。其实孩子也很难计算和感受出这一点。他是算不清楚的。快与慢仅仅作为一个比赛气氛烘托,制造紧张感,让孩子更加专心即可。
家长上传的玩伴如何处理
上面只是针对系统配置的playmate。如果家长上传的玩伴,由于家长需要上传孩子的年龄,学习量,熟悉语音量,练习量四个指标,系统依据家长上传的这四个指标,对孩子进行分类,划分出能力强中弱三种角色。然后把它套用在上面的模式中。
这样可能会产生由于家长上传的指标不合理,导致孩子获得冠军问题的效果不好的问题。这个问题我们暂时先不管。我通过培训家长的方法来解决,让家长学习一下怎样帮助孩子上传三种不同类别的孩子。后期如果有更好的方法,我们到时候再改动。