2013-02-08

How to get on VimGolf's leaderboard in 10 challenges

In this post I'll show you how to get your name on the VimGolf leaderboard, and scale it as fast as possible. The leaderboard algorithm has its issues, but for beginning players, it can be a lot of fun. When I started playing, I'd check the leaderboard after every challenge, to see if I'd gained a few spots. It works very well for that purpose, motivating you to do one more challenge, and picking the most popular challenges for the most points. I used to pick challenges by which had the most entries, but I'll show you something a little more sophisticated.

First, here are the two charts we need:

Points earned by player

Points available by challenge

Where do these points come from? Here's a way of thinking about the leaderboard: When you haven't done a challenge, you get zero points. If you do a challenge and get last place, that's one point, and every player who shows up below you is one more point. So, the challenges with the most points available are those where a large number of people played, but didn't quite get a perfect score. Those are the ones you need to focus on.

As an example, consider Do you have a big gun?. A perfect score on this challenge is 5. Problem is, even though it's a fairly popular challenge, if a player doesn't know Vim has a rot-13 command, he's unlikely to even attempt it (unless he looks it up). As a result, practically no one posts anything above 5. So, if you do this challenge, get a perfect score, and, say, there are two people who have posted something less than perfect, you get one point just for showing up, and one point for each person you passed. 3 points! Yeah!

Of course, that's no problem for anyone who showed up early. They have 160+ people below them, not because they played better, but because they showed up first. That's 160+ points. If you want to do really well in the leaderboard, you have to do easy challenges as fast as possible, because large ties for first can accumulate in a hurry. But this doesn't help you now, so let's focus on where the quick points are found.

In the second chart linked above, you'll see the challenges ranked by available points for a new player. If you match the score shown (which I tentatively believe is the best possible, assuming you don't use cursor keys, resize your window, or anything like that), you can get that many points from the challenge. Do the challenges in the order shown, and you'll scale the leaderboard in the fastest way possible.

There are a lot of points available from the top challenges in the list. Comparing the cumulative total to the positions from the first chart, you can see how soon it's possible to reach a certain rank. Starting from nothing, you can (currently) get your pseudonym on the leaderboard after 10 challenges. In 19 challenges, you can break the top 50, and so on.

As you move along, progress slows down. The lower challenges just don't have as many points. The top-ranked players are at the top of huge ties in all of the easiest challenges, with hundreds of points that you can never get. And a lot of them are using utilities, or .vimrc modifications, or cursor keys, and you can't even match their scores with your stricter rules. Still, if you play through to the end, you can reach as high as 3rd place.

Of course, that's assuming you don't break any records. It's tough to do, but there are still some out there to be broken. Good luck!

And new easy challenges will be posted, where you can enter early into a huge tie.

So how do you match the best scores? You can just copy your way up. It's very easy. And also soul-crushing and boring. The better way is to work the challenge yourself, as much as possible. When you just can't find any more strokes, and you're ready to peek, don't. Keep trying. Keep looking for patterns. People start playing VimGolf and they think it's about learning tons of Vim commands, which is true, but there's a lot more to it than that. It's about finding patterns in the files and expressing them in Vim. It's more about seeing clearly what needs to be done than it is about obscure commands. And it's more about thoroughly mastering the basics than memorizing everything in the manual. Most commands in Vim show up rarely, or not at all.

When you're really ready to give up, submit the best you've got, and don't look ahead. Look at the entries you've tied, or that are a stroke or two behind you. Can you improve one of them? Can you combine their ideas with yours? This way is lots more fun than just copying the score above you. And it's the path to breaking records. To break a record, you need to look at the challenge in a different way from anyone before you - notice a pattern they didn't. And if you just copy your way up, you sabotage your ability to think for yourself. It takes a long time, but there's no hurry. Have fun!

No comments:

Post a Comment