Taki pomysł na szybkości
Każda łapka daje 100 pkt.
Wpisy na mikro są widoczne powyżej 100pkt
Jeżeli wpis jest krócej* niż 16 godzin, to za każdą godzinę odejmuje się 10pkt
Jeżeli wpis jest krócej* niż 30 godzin, to za każdą godzinę odejmuje się 20pkt
Jeżeli wpis jest krócej* niż 48 godzin, to za każdą godzinę odejmuje się 30pkt
* - less or equal :)
Łapki: 1
Po 0,5h = 95 pkt.
Tutaj sprawa jest prosta, nie wchodzi.
Łapki: 2
Po 0,5h = 195 pkt.
Po 1h = 190 pkt.
Po 2h = 180 pkt.
Po 4h = 160 pkt.
Po 10h = 100 pkt.
Po 20h = -200 pkt.
Wpis z 2 łapkami po 10h samoczynnie spadnie z głównej
Łapki: 3
Po 0,5h = 295 pkt.
Po 1h = 290 pkt.
Po 2h = 280 pkt.
Po 4h = 260 pkt.
Po 10h = 200 pkt.
Po 20h = -100 pkt.
Wpis z 3 łapkami po 17h samoczynnie spadnie z głównej
Łapki: 5
Po 0,5h = 495 pkt.
Po 1h = 490 pkt.
Po 2h = 480 pkt.
Po 4h = 460 pkt.
Po 10h = 400 pkt.
Po 20h = 100 pkt.
Wpis z 5 łapkami po 20h samoczynnie spadnie z głównej
Łapki: 10
Po 0,5h = 995 pkt.
Po 1h = 990 pkt.
Po 2h = 980 pkt.
Po 4h = 960 pkt.
Po 10h = 900 pkt.
Po 20h = 600 pkt.
Po 32h = 40 pkt.
Wpis z 10 łapkami po 31h samoczynnie spadnie z głównej
Łapki: 20
Po 0,5h = 1995 pkt.
Po 1h = 1990 pkt.
Po 2h = 1980 pkt.
Po 4h = 1960 pkt.
Po 10h = 1900 pkt.
Po 20h = 1600 pkt.
Po 32h = 1040 pkt.
Po 49h = -450 pkt.
Po 50h = -500 pkt.
Wpis z 20 łapkami po 49h samoczynnie spadnie z głównej
Łapki: 25
Po 0,5h = 2495 pkt.
Po 1h = 2490 pkt.
Po 2h = 2480 pkt.
Po 4h = 2460 pkt.
Po 10h = 2400 pkt.
Po 20h = 2100 pkt.
Po 32h = 1540 pkt.
Po 49h = 50 pkt.
Po 50h = 0 pkt.
Wpis z 25 łapkami po 49h samoczynnie spadnie z głównej
No dobra, to teraz zestawmy z innymi wpisami jak to wygląda
np. w/w przypadek 10 vs 2 łapki
Liczba Łapek |
Liczba Godzin |
Suma Punktów |
2 |
3 |
170 |
10 |
3.3 |
967 |
7 |
1 |
690 |
16 |
31 |
670 |
10 |
12 |
880 |
30 |
28 |
2440 |
15 |
10 |
1400 |
32 |
9 (wpis @p_agon teraz na blogu) |
3110 |
Czyli dla w/w przypadku problem by się rozwiązał - 170 pkt vs 967.
Func<int, double, double> formula = (int lapki, double liczba_godzin_od_utworzenia) =>
{
var basePoints = lapki * 100;
var taxPerHour = liczba_godzin_od_utworzenia switch
{
_ when liczba_godzin_od_utworzenia <= 16 => 10,
_ when liczba_godzin_od_utworzenia <= 30 => 20,
_ when liczba_godzin_od_utworzenia <= 48 => 30,
_ => 50
};
var tax = liczba_godzin_od_utworzenia * taxPerHour;
return basePoints - tax;
};
Console.WriteLine(formula(10, 12));
Pytanie co zrobić jeżeli żaden wpis się nie będzie kwalifikował na główna? :P