# Optional Contest 1: Hog Strategy

A strategy is

A single function that makes

Ten thousand choices.

## Table of Contents

**This contest is completely optional!**

## Instructions

Submit a `hog.py`

file containing a function called `final_strategy`

and a name
called `final_bid`

bound to a non-negative integer.

`python3 ok --submit`

A blank `hog.py`

file and simple tests for correct formatting can be downloaded
as a zip archive. Type `python3 ok`

to run the provided tests.

## Overview

Each submitted strategy will play against all other submissions. We will
exactly compute the expected win rate for each player, so that the
outcome of this tournament will be determined by strategy alone and not the
roll of the dice.

The `final_bid`

of each player will determine who plays first and the starting
scores of each player. The following three rules apply:

- If the bids are equal, each player starts with goal points, resulting in an
instant tie. It does not matter who rolls first.
- If one bid is exactly 3 higher than the other, the higher bidder rolls first
starting with 10 points, and the other player starts with 0. For example, if
player 0 bids 2 and player 1 bids 5, player 1 would roll first starting with
10 points and player 0 would start with 0 points.
- Otherwise, the player with the higher bid rolls first. Each player starts
with a number of points equal to her/his opponent's bid. For example, if
player 0 bids 3 and player 1 bids 4, player 1 would roll first starting with
3 points and player 0 would start with 4 points.

A submission scores a match point each time it has an expected win rate above
50.00000001% (.5 + 1e-10). The submissions with the most match points win.

## Contest Rules

- The contest may be entered individually or in pairs. Two people submit a
single entry. Each person in the course can only be associated with at most
one entry.
- All strategies must be deterministic, pure functions of the current player
scores! Non-deterministic strategies or strategies based on the history of
the game will be disqualified.
- Calling your
`final_strategy`

function on every possible pair of scores
should take less than 2 minutes. Less than 5 seconds is strongly preferred.
- Winning entries will receive 2 points of extra credit.
- Winners will also be recognized publicly in future offerings of CS 61A.