The main idea of the following stuff is to balance each multiplayers modes (contest, multi, opti…) in terms of rewards.
Contest (solo, opti and multi)
A contest allows you to win CP based on the following formula : N^((N-C+1)/N) * 2. N number of players with a score > 0, C rank of the player.
BUT only the 3 best scores are kept. So if you have participated in 5 contests and your points are 1000, 500, 800, 600, 200, you totalize 1000+800+600 = 2400 CP * 2 for contests.
This is fairer for newcomers as they can beat the best old players by scoring high in the next contests.
Multiplayer Games
The multiplayer games points are calculated in almost the same way as the contests but with these differences :
all multiplayer games are taken into account (and not only the 3 best scores)
a maximum cap of 5000 CP can be earned from a multi (in case there are 10000 players for a multi, you can only gain 5000 for it for if you rank in first place). So if you are first in 4 multi games (whoa!) with more than 5000 players, you gain 5000 *4 = 20k points.
if the cap is reached, the formula is still distributed across all the players and not only the first 5000. The formula is : min(N,5000 )^((N-C+1)/N).
Optimization (code size)
Code size puzzles points are calculated in almost the same way as the multiplayer games but with these differences:
there is a leaderboard per language and the CP gain is per language - so you can no longer win CP on the mixed leaderboard (but it can always be consulted to look for the best language for the puzzle).
any given submission gives a maximum of 200CP.
the formula is : 200^((N-C+1)/N).
only the 5 best scores for a given puzzle are kept. So, the cap to each puzzle is 1000, by being first in 5 languages.
Optimizations (performance like Mars Lander)
These are calculated like multiplayer games with a cap of 1000 CP and not per language like code size puzzles.
Clash of Code
These are calculated like multiplayer games with a cap of 5000 CP. The formula is : min(N,5000)^((N-C+1)/N)
Status
Guru: top 100 players
Grand Master: top 500
Master: top 2,500
Mentor: top 5,000
Disciple: top 10,000
Craftsman: top 20,000
Rookie: 20,000+
love this new system of points…especially the weightage given to achievements is great… 250 for a hard and 500 for very hard puzzle would definitely provoke everyone to solve these puzzles instead of trying too much to reduce your code size ( since i am not great at code golfing )
I guess you encougage people to participate to as many challenges as possible.
By the way , those who want to improve their code on a specific one are disadvantaged.
As a react , i realize i dont have enough time to participate a lot (several month without coding here …)
My interrest here is to discover some algorithms i would never use in other context. (geometry, search path…)
After the effort of coding a good solution, i may use same logic in another program… may be… someday…
This will never happen if i just draft a blitz program in many competitions without improving it . I need quality , not quantity , this is why i spend time
My second thought is somehow , CG is in the same case… If many new challenges are based on the same technology : AI without datastorage… All the designed lists , menus, HTML pages will become really big and the site may suffer from having a multipage list of challenges… Sooner or later , you may want to remove some of them to keep user interface smooth …
Well , because im professional , my goal is to get more precision in algorithmics… Adding more and more issues may lead to dilution
You haven’t read much of this update, more and more point are awarded for solo play, so now you’ll have rewards for investing yourself in a game. And if you want to invest further, you can do an optimization puzzle challenge, where you can gain up to 1000CP which is currently twice the price of a very hard puzzle.
Codingame update with 1-2 puzzle every two months, that’s really not much
What does “best language” here mean? Since the formula is 200^((N-C+1)/N), and not MIN(200,N)^((N-C+1)/N), I’m guessing by “best language” you mean the one with the least participants, where the competition is the lowest?
By “best language”, he means languages allowing the lowest code size.
Looking at the ranking, I believe script languages are the best for this type of challenge, especially Ruby and Perl.
I agree, yet with the new formula “language that allows the lowest code size” does not equal “language which will give me the most points”.
For example, Thor: Ruby has 1st place in the global leaderboard, with 96 submissions and about half of them having less than 150 bytes. Java, on the other hand, has 653, and about half have more than 600 bytes.
Being in the middle in both leaderboards gives 15 points. To get those points you have to either write 600 bytes of java (which is enough even for a pretty verbose solution), or 150 bytes of ruby, where you’d have to employ a trick or two to get below 200.
User @Plopx has a 46-byte Ruby solution for Thor. This is amazing. I’m sure he worked very hard to get it. Yet his reward is exactly the same as for his 158-byte, I’m guessing - quickly written - Java solution.
If you don’t want to inflate the global leaderboard again, I think a solution would be to give 100pts for the five best per-language solutions, and 500 for the global one. That way the best case scenario is still 1000 points, but there is still motivation to improve your results.