Inspiration

I've played Mafia for several years. One day, a member of the community I play in brought up a question: Is it possible to objectively rank players' skill levels? This question took me down a rabbit hole of rating systems, sports, and more than one academic paper. This hack is a result of that rabbit hole.

What it does

At the moment, the hack is fairly simplistic. It either takes an input of a text file containing information from games, or it takes an input of a spreadsheet already containing output information. Using game data, it creates a sheet that scores each player by their winrates and by an ELO approximation.

After creating a spreadsheet, it can also be used to query for specific players, and will give their total ELO.

How we built it

This was built in Python, taking extensive advantage of pandas to build the spreadsheet and tkinter to display the results.

Challenges we ran into

No major issues occurred, but there were a few pesky bugs relating to how tkinter would act.

Accomplishments that we're proud of

The whole thing! I'm not very experienced, and this was my first time ever using Python with any sort of UI. Seeing that window come up with the expected information was euphoria.

What we learned

The importance of Google. Using it to find more information about Pandas and tkinter saved my life with this hack.

What's next for Database of Deception

More information, updating sheets, and better aesthetics!

Right now, querying a player name only gives their total ELO. In the future, I would like to add ELOs for each alignment, winrates, and ranks. Right now, when given new information, the hack completely erases the existing spreadsheet and replaces it with a new one. In the future, I would like to add a possibility to give it a text file that simply updates the spreadsheet with new games, rather than wiping it clean every time. As you can see in the video, there's not much in the way of aesthetics for this hack. Ideally, colors, text formatting, and images might all be in the future!

Built With

Share this project:

Updates