AlgoGuessr: A fun game that trains your pattern recognition and intuition

Revision en3, by eneska, 2025-05-22 10:48:48

Hi Codeforces,

I recently came across this wonderful post by chromate00, in which he introduces a game similar to GeoGuessr in which you are supposed to guess the data structure used by random cheaters in a Div2 contest. This satirical blog post led to me brainstorming about a game idea for a few days. I don't really have a name for it yet but I am thinking of a name like GuessrForces, CPGuessr, AlgoGuessr, PatternFindr, PatternGuessr or something similar. I want to briefly introduce the main idea here so let me know what you think of it and comment if you have anything to add!

The main idea

The main idea is to build a website similar to GeoGuessr where you are presented a problem statement and the input constraints instead of a random location. You are then given some amount x of time, with x increasing/decreasing based on your rank, after which your task is to find the correct pattern/algorithm/data structure that is used in the solution of the given problem. You should ideally also provide some kind of explanation describing why your chosen pattern/algorithm/data structure is the correct one and how you recognized it.

The text you are given might not always contain the full problem statement, it might also merely be relevant snippets or it might be purposely big so that you also learn to abstract away unimportant details while focusing on the important bits and pieces. I don't know if it would be better to give the user a complete list of all choices, similar to what GeoGuessr does whith a map of countries, or if the user should come up with the pattern without having a list available.

To make this pattern recognition game more fun and competitive there could be 2 seperate modes: training and competitive. In training mode, the user could train his intuition by setting custom time limits and choosing which problems he/she wants to train on , by himself or with friends via invite links or lobbies or something similar. The competitive mode should be pretty self-explanatory, you basically compete against other users and there are different ranks or divisions.

Another aspect worth mentioning is the source of the problem statements. I am still thinking about where the problem statements are supposed to come from and I have multiple ideas I'd like to present: one possible source could be different OJs like Codeforces, AtCoder, SPOJ etc. One advantage would be that there are tens of thousands of good problems that can be used directly without spending hundreds of hours creating creating other problem statements. A notable disadvantage is that it could spoil future good problems for you if you do a lot of this. This could quickly deplete the amount of good problems you can solve without already pretty much knowing the answer. A possible counterargument could be that you don't really know the answer to the problem by doing AlgoGuessr, you just know the required pattern/algorithm but this can also quickly be found by looking at the tags of the problem.

Another possibility is to have other problem statements made by higher rated people that are specifically designed to have an intended solution utilizing a specific pattern. This would take significantly longer and would require a lot of people to volunteer and spend their free time doing this.

Wrap-up

This is just a rough draft of an idea and I don't really know if and when I'll try to code it up and create a prototype (I might do it during summer break as I'll have more time then). There are still a lot of things to be added/improved so let me know if you want to add anything or if you like the idea. I'll keep track of possible improvements and update the post when there are enough to be noteworthy.

Tags idea, intuition, pattern recognition

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English eneska 2025-05-22 10:48:48 72 Make more readable and add stuff
en2 English eneska 2025-05-21 21:46:46 2272 Tiny change: 's.\n\n### Wrap-up\n\nAll in' -> 's.\n\n### **Wrap-up**\n\nAll in' (published)
en1 English eneska 2025-05-21 21:12:28 1547 Initial revision (saved to drafts)