hog contest

The Overview

When working on the Hog project, students often ask themselves:

What aspects of the game can I exploit to beat the baseline strategy?

Occasionally, a student will think about that same question in a slightly different way:

From any state in the game, what are my chances of winning? And how do I maximize that chance?

While the first is enough to complete the project with flying colors, the second set of queries is what makes the game of Hog so interesting - it is an exercise in exploiting not the ruleset for that particular semester, but the probability at the heart of the game itself.

This semester, we created one of the largest and most ambitious rulesets yet. The new Piggy Back rule heavily penalized higher-numbered rolls, completely changing how the game was played compared to previous semesters. In conjunction with the Pork Chop contest rule, participants were given a wide variety of options with which to craft their final strategies.

The Numbers

34 submissions

1 disqualification

20771 pork chops

1649 new lines of contest grading code

2 weeks to publish results

As expected, participants triggered the swap when they were behind their opponent. We also noticed that there were two groups of people, one of which ensured that they would only swap once, and one of which would try swapping even if they had already swapped once.

Below is a heatmap of where players decided to roll -1 to trigger Pork Chop. The y-axis represents the current player's score, and the x-axis represents the opponent's score.

and finally...

The Winners

First Place

The undefeated champions!

Michael McDonald and
Tianrui Chen

Second Place

Andrei Kassiantchouk

Third Place

Benjamin Kriegel

The Results

If you participated, thank you - you're awesome! If you didn't win, don't worry - there'll be many other chances down the line.

login wins losses ties
cs61a-aor 32 0 0
cs61a-adu 32 0 0
cs61a-abk 31 1 0
cs61a-??? 30 2 0
cs61a-arq 27 5 0
cs61a-afk 27 5 0
cs61a-agh 27 5 0
cs61a-acm 26 6 0
cs61a-bdy 26 6 0
cs61a-bdu 25 7 0
cs61a-adx 25 7 0
cs61a-bet 25 7 0
cs61a-ach 25 7 0
cs61a-abc 25 7 0
cs61a-aqk 23 9 0
cs61a-ayd 20 12 0
cs61a-blb 20 12 0
cs61a-ajh 20 12 0
cs61a-blg 18 14 0
cs61a-any 18 14 0
cs61a-anv 18 14 0
cs61a-bhl 16 16 0
cs61a-ain 16 16 0
cs61a-aps 15 17 0
cs61a-aln 15 17 0
cs61a-biu 13 19 0
cs61a-arm 13 19 0
cs61a-ahz 13 19 0
cs61a-ayr 13 19 0
cs61a-anf 12 20 0
cs61a-aez 10 22 0
cs61a-aew 10 22 0
cs61a-bex 9 23 0
cs61a-aup 8 24 0
cs61a-att 8 24 0
cs61a-awn 7 25 0
cs61a-adi 5 27 0
cs61a-ahv 5 27 0
cs61a-add 4 28 0
cs61a-adl 4 28 0
cs61a-aty 4 28 0
cs61a-aqe 3 29 0
cs61a-aqf 2 30 0
cs61a-blk 0 32 0
cs61a-bmc 0 32 0