Скоро Codeforces Round 1133 (Div. 1, Div. 2)! Регистрация здесь. ×

Блог пользователя marat.snowbear

Автор marat.snowbear, 12 лет назад, По-английски

Hi!

I'd like to introduce my project to Codeforces community. My project's name is 'Codeforces achievements' and as you can probably guess it is about achievements! Your achievements on Codeforces site. For those who do not like my long posts I should mention that the link to the site is at the end of this post.

Introduction

Last summer I left my last job, so I have quite a lot of spare time which I could invest in my hobby. Also I decided to learn something more or less new for me (for last several years my job was to write desktop software for Windows), so I decided to put my hands on some modern popular web-framework. At that point I chosen Python and Django, cause it was matching one position I applied. So I had a time and I wanted to learn Django. The best way to learn something is to practice in it, so I started looking for the idea for the site to create (didn't want to write yet another forum engine). Luckily at that point I ran into I_love_Tanya_Romanova's comment:

System> tourist unsuccessfully challenged LeBron's 250-point problem.
Achievement unlocked:)

That was it! I like the idea of achievements in the games and I decided that I want to something similar for Codeforces. That achievement Bohdan mentioned in his comment became the first achievement I implemented in my CF-achievements.

Achievements

The original idea was to have more funny & unusual achievements and less hard time-consuming achievements like 'solve XXX problems'. I think I didn't really succeed in that, there are not that many achievements there but I still have a couple of ideas for the future (of course I'm open to your ideas as well). Generally at the moment there are two types of achievements implemented. First one is something like 'language expert', in order to get this one you need to solve 50 problems in some particular programming language or language family. The second type of achievements can be rewarded for something you did in a single contest. For example tourist might try to hack your solution and if he doesn't succeed you get a You didn't even scratch me! achievement. Unfortunately Gennady won't be able to get this achievement himself, I apologise for that.

I was trying to come up with funny & interesting names for achievements, if you do not get the point in some achievement's name feel free to Google it or ask about it in the comments.

I should also mention here that all the achievements are given only for the online round you take part in, there is nothing for solving the problems after the round has finished. Also some achievements might take only rated rounds into account. There is a description for each achievement on how to get it.

Technical side

The site at the moment is not automated much, I need to manually start achievement crawling jobs after each contest so please do not blame me if you don't see your achievement two minutes after contest is over. It might take around 10-15 minutes after the system test phase for me to run all the scripts. I might also be in the gym, stay patient then :-) I'm working on automating the site.

And finally...

Finally the link: CF-achievements

Link to 'You didn't even scratch me!' achievement

You start point should be the main page and the user search textbox there, type in your CF handle and see what you have earned.

I should say that the project is in the beta stage at the moment, there is a lot to be done, I just wanted to involve the community into it, get some feedback and maybe some support. I'm open to all ideas about this project, please feel free to post them as comments here. Also you can see that the site was designed by a programmer (me), if you are more talented designer that I am, I would appreciate your help.

Initially I was going to let you know about it after CF round 288, but looks like Div. 1 part of it was cancelled so I decided to introduce it immediately. Also in the last round I_love_Tanya_Romanova got his achievement in CF, the idea of this site was born when I saw his comment so I decided it's good sign to start.

Hope you enjoy it,
Marat.

  • Проголосовать: нравится
  • +333
  • Проголосовать: не нравится

»
12 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +14 Проголосовать: не нравится

It should be added to Codeforces!!))

And it will be great if for every achievement there will be badge for example.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится

I have no idea how to get my self in the same room as tourist then make him unsuccessfully hack me

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +11 Проголосовать: не нравится

You made my day:)

BTW, if there will be a lot of possible achievements for unrated participation (like You didn't even scratch me! — last contest was unrated both for me and tourist) — it may give additional motivation for div1 guys to participate in div2 contests from main account, instead of creating fake one. Those who compare CF with online games or say i want to see results of contest in my profile, that's why i am creating new accout — they should definitely like it :)

As an example — you can make language achievements with 50 problems in rated events or 100 problems in any events instead of 50 problems in rated events.

  • »
    »
    12 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Yeah, just thought about the same point five minutes ago. I would definitely like people chasing achievements instead of creating new accounts. I will probably need to reconsider my position about rated/unrated participation in terms of achievements. Originally I didn't want to give most of the achievements for the unofficial participation to avoid people hunting for achievements instead of actually participating in the round itself. I'll give it another thought.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

Nice work :)
Also that would be also great if there was a "countdown" for achievements. Like how much problems in Java do I need to solve to unlock "Runs on billion of devices... Slowly"?

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

tourist will never get achievement "You didn't even scratch me!"

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +22 Проголосовать: не нравится

I love this project, especially the "Language does not matter" achievement! It's a shame that, having missed the first three Unknown Language Rounds, I don't have it and might never get it :-)

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

Thank you for the effort! The idea looks nice.

I'm surprised that "Polyglot" mentions only two languages. A rule like "the more, the better" would make more sense.

I used to enter Div2 contests (unofficial participation) using different languages for each problem, but so far didn't get five problems solved with that tactic. I'd be interested to see who made better progress on that.

»
12 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +13 Проголосовать: не нравится

Achievement names are really nice (as well as whole idea itself). As for new achievement ideas, how about time-related achievements? Like "Solve A in first 5 minutes" or so and maybe "First contestant who solve problemLetter". And you can add something like "Hack solution on language, that you didn't use during contest" to polyglot-type achievements.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

First of all, congratulations for your work :)

Similarly to the tourist's unsuccessful challenge achievement, maybe you could add the achievement of beating tourist / Petr in a rated contest or doing a problem they couldn't do: it rarely happens, but it can be pretty fulfilling.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +28 Проголосовать: не нравится

Finally there is achievement in programming that tourist can't unlock:)

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится
 Oct. 25, 2010: tourist got Tourist's path for solving 50 problems in Pascal or Delphi 
»
12 лет назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится

LOL, "Runs on billions of devices... Slowly" :)

can you pls, include /usr/dmr or sth like that in C-related achievements in honour of Dennis Ritchie.

btw, what would you name this specific achievement, "petrifying failure"? :) (sorry, Petr)

»
12 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +30 Проголосовать: не нравится

Ok, got one more achievement idea (looks like inventing achievements is easier than solving problems, meh..):

"Speck in your brother's eye" — successful hack AND failed system test on the same problem.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

Great idea!

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +22 Проголосовать: не нравится

What about a "Better late than never" achievment?

You would get it by submitting a correct solution on the last minute(s) of the contest.

»
12 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится +19 Проголосовать: не нравится

I also have few ideas; I am not very good in creating nice names for such stuff, so i'll post just some ideas/drafts. Maybe at least some of them are interesting:)

Few other achievements based on hacking are possible. Achievement for hacking more than 1 problem of some user, in case that person later fixes those solutions and passes system tests. Achievement for being that person with more than 1 problem hacked and later fixed :)

Few ideas about precision and accuracy. Maybe we can make an achievement for getting same place in two consecutive contests (this one will be easy for tourist); or for getting +0 to rating after a contest (stable contestant), or for getting +1 to rating (step by step), or for improving personal record of rating by 1 point, or for getting exactly minimal required rating for some rank/color.

Also achievement for being only person to solve some problem during contest looks nice)

  • »
    »
    12 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +18 Проголосовать: не нравится

    Like your idea about achievement for being hacked and sending right solution after that. "With a little help from my friends" can be the name for it.

    And one more idea from me: "David and Goliath" — successfully hack solution of contestant with significantly higher rating (difference should probably be 500 or more).

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +21 Проголосовать: не нравится

When someone gets WA on the last test case or on a test case, which number is bigger than 100 (e.g. WA on test 139). That can be a Bad Luck Brian achievement.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

"THIS IS SPARTA!!!" — successful hack of locked solution that worth 1300 or more points. Exact threshold is debatable, ofc.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +19 Проголосовать: не нравится

I'd add some "basic" achievements like "solved problem [letter]div[division]" (but if unrated round do not count it's not that good idea to give them for div2 because it's not good idea to encourage persons to go to div2 like dreamoon_love_AA), "won round", "won room?", "solved all problems"

Some less "default" ideas:

  1. Get more points for hacking in a problem then the problem costs.
  2. Compete in N rounds in a row

Random strange idea: For getting lucky place (place number consists only of 4s and 7s)

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +20 Проголосовать: не нравится

There could also be achievements for big rating gain/loss like:

Win 150+ rating in a contest — "Are you a tourist?"

Lose 150+ rating in a contest — "Are you getting worse?"

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +24 Проголосовать: не нравится

I'd add one more achievement idea "Godspeed Mode (Kanmuru)" for solving a problem in less than 1 minute (getting the full score of a problem)

»
12 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится +46 Проголосовать: не нравится

Some ideas:

Flash in the pan — Being in a higher ranking just for once. For example IM -> GM -> IM.

Dreamoon fan — Go from Master+ to Expert (Decreasing should be in consecutive contests)

Beatoriche Sequacious — Having a contribution lower than -50

The sky is the limit — Have a rating more than 3000.

Where is my Jaguar? — Get 228+ positives from a comment.

I milked the ram — No change in your rating in a contest.

I love Tanya Romanova — Have 3500+ accepted submissions.

Icing on the cake — Get positive ranking for 5+ consecutive contests.

Variety is the spice of life — Have accepted codes in 10+ programming languages.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Unlucky Luck: Fail in system test of a contest for at least 3 problems!

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +27 Проголосовать: не нравится

Guys, I'd like to thank everybody for your ideas. At the moment I want to focus on automating back-end a bit to make crawling process simpler and faster, after today's contest it took a bit longer time to update all the achievements and I want to fix that. After that I will get back to your ideas, I will respond to each of you.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +42 Проголосовать: не нравится

I think, we need an achievement for hacking tourist.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Can we add an achievement for hacking tourist? I'm guessing this wasn't an achievement because it didn't seem possible. It finally happened in round 290. o_o Congrats to mkirsche!

»
12 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Marat, what do you think about achievements for consecutive participating in rounds? It could be for consecutive 5, 10, 25 or something like this.

One of the possible names — "No Lifer" (http://www.urbandictionary.com/define.php?term=No+Lifer)

»
10 лет назад, скрыть # |
 
Проголосовать: нравится +26 Проголосовать: не нравится

I like the idea of achievements!!
Thanks for taking your time and creating achievements site.

but it's not been updated since Oct. 3, 2016!
Could you please start achievement crawling jobs?

»
10 лет назад, скрыть # |
 
Проголосовать: нравится +21 Проголосовать: не нравится

jump through the roof you get it when you get move from one color to two colors above i.e: a newbie gets to cyan in one contest

»
10 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

That was close: less than 5 points needed to upgrade

»
9 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Год назад я пилил свои ачивки, но бросил, так как код стал лапшой, а реализовать надо было больше, чем я написал к тому моменту.

Сейчас разбирал старые проекты и заметил, что проект до сих пор хостится. "World of Codeforces: Achievements" — https://shrek228.herokuapp.com/ (ну, лучше названия я не придумал для домена) Там для ачивок есть весь список юзеров, показ их ачивок, поиск. Вся информация актуальна на середину июня 2016 года. Вы просто можете посмотреть, какие ачивки могли бы быть в реализации marat.snowbear =)