\documentstyle[12pt]{article}
\pagestyle{myheadings}
\def\headlineaux{\sc Math 220/317: Programming II/Data Structures 
\hrulefill
}
\markboth{\headlineaux}{\headlineaux}

\newcommand{\assignmentNumber}{8}
\newcommand{\outdate}{30 November 1992}
\newcommand{\duedate}{16 December 1992}

\begin{document}
\begin{titlepage}\begin{centerline}{\Huge \framebox{Burt Rosenberg}}
\end{centerline}\end{titlepage}

\section*{Problem Set \assignmentNumber \hfill{\parbox{3in}
    {\small\sc\begin{flushright} Out: \outdate
     \\ Due: \duedate\end{flushright}}}}


\subsection*{Reading Assignment}
Read:
\begin{itemize}
\item Read Chapter 6, {\em Recursion As a Problem-Solving Tool.} This chapter
might give you ideas for the solution to this assignment.
\item Read Chapters 12 and 13, {\em Priority Queues and Heaps} and
{\em Advanced Implementations of the ADT Table.} This material will be useful
for the quiz.
\end{itemize}

\subsection*{Goals}

Synthesize the programming techniques you have learned to make
a program which plays Tick-tack-toe.

\subsection*{Assignment}

Write a program that plays standard 3x3 Tick-tack-toe. 
It should be able to play either X or O versus an opponent.
If the user plays X, the user moves first.
If the user plays O, the computer selects an opening move, prints the
game board, and awaits the user's move. After each user move, the computer
selects a response and prints out the resulting game board.
The program will accept the commands,
\begin{itemize}
\item {\bf X} --- Starts a new game. The user will play X.
\item {\bf O} --- Starts a new game. The user will play O.
\item {\bf Q} --- Exits the program.
\item $n\; m$, where $n, m$ are positive integers between 1 and 3.
User enters move at row $n$ and column $m$.
\end{itemize}
The program should recognize wins and draws and should prevent the
user from moving over an already used spot.

There will be a competition for the ``best'' program. Which means:
the program which beats all the others.
A sudden-death competition by successive random pairing, will determine
the winner. A run-time or programming error will be considered a loss.
The winner will receive a loaf of bread, and bottle of grape juice and
a post-card of Miami Beach.

Good-luck all!

\end{document}
