-
Notifications
You must be signed in to change notification settings - Fork 1
/
RewardStrategy.cs
37 lines (30 loc) · 1.17 KB
/
RewardStrategy.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// This class implement the reward strategy and uses RewardModel
namespace com.glups.Reward
{
public abstract class RewardStrategy
{
protected internal RewardModel _model = null!;
protected internal StrategyParameters _parameters = null!;
private RewardStrategy()
{
_model = null!;
}
public RewardStrategy(RewardModel model, StrategyParameters parameters)
{
_model = model;
_parameters = parameters;
}
internal abstract string name();
internal abstract int addPositive(int points);
internal abstract int addNegative(int points);
internal abstract int updateReward(); //return -1 if no update is applicable, otherwise returns the value of the reward.
internal virtual int updateRank()
{
// update the rank according to the _score and return always the computed rank.
// ranks start at 1.
// score is always higher or equal to the step associated with its rank.
// returns 0 if rank stays unchanged.
return _model.updateRank(_parameters.theRankSteps);
}
}
}