\documentclass[german, 10pt, a4paper]{scrreprt}

\usepackage[ngerman]{babel}	% Babel for languages
\usepackage[ansinew]{inputenc} % for german umlaute

\usepackage{amsmath}		% use AMS packages
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}

% use listings for drawing code
\usepackage{listings}

\usepackage{graphicx} 

\usepackage{fancyhdr}		% fancy headers package

% Listings konfigurieren
\lstset{
  language=Eiffel,
  basicstyle=\small,
  tabsize=4,
  showtabs=false,
  showspaces=false,
  showstringspaces=false,
  breaklines=true,
  breakindent=0pt}

% informations about the document
\title{User Guide\\Under Construction}
\author{Stefan Hildenbrand\\Florian Keusch\\Markus Neidhart\\Beat Steiger}
%\date{14.04.05}

\addtolength{\textheight}{100pt}
\begin{document}
\makeatletter
\begin{titlepage}%
    \thispagestyle{empty}
    
    \begin{center}
    \textsf{Software Architecture, Sommersemester 2005, ETH Z\"urich}
     \rule[.8em]{.9\textwidth}{0.5pt}
     \vskip 3em
     {\titlefont {\Huge UC - User Guide}\par}
     \vskip 3em
    \includegraphics{uc_logo}
    \vskip 3em
    \rule{.9\textwidth}{0.5pt}
    \vskip 1.5em
   {\titlefont\huge Under Construction}
   \vskip 1em
   \rule{.9\textwidth}{0.5pt}
   \vskip 2.5em
   \textsf{ {\large Stefan Hildenbrand}
     \vskip 0.5em
    {\large Florian Keusch}
    \vskip 0.5em
    {\large Markus Neidhart}
    \vskip 0.5em
    {\large Beat Steiger}
    \vskip 2em}
    \end{center}
    \end{titlepage}
\makeatother

\tableofcontents

\chapter{"Ubersicht}
\section{Umfang dieses Dokuments}
Dieses Dokument ist das User Handbuch zum Spiel ``Under Construction'' und richtet sich an Benutzer resp. Spieler dieses Spiels. Es werden Themen wie Steuerung, M"oglichkeiten und weiterf"uhrende Informationen zu unserem Spiel behandelt. Ausserdem soll besprochen werden, wie Softwareeinstellungen und Installation unseres Spiels aussehen, sowie Anforderungen an den Computer.
\section{Zweck des Dokuments}
Das Ziel dieses Dokumentes ist es, dem Spieler einen "Uberblick "uber Anwendung und Funktion useres Spiels zu geben. Der Spieler soll nach Lesen dieses Dokumentes in der Lage sein, unser Spiel erfolgreich auf seinem Computer zum Laufen zu bringen und alle Einstellungen mitsamt Steuerung des Spiels zu verstehen. 
\section{Organisation dieses Dokuments}
In Kapitel 2 dieses Dokuments werden die Definitionen, welche im Zusammenhang mit dem Lesen dieses Dokuments als auch mit dem Spielen unseres Spiels wichtig sind, erl"autert und erkl"art. Danach folgt in Kapitel 3 eine Beschreibung der Struktur dieses User Guides. In Kapitel 4 folgt dann die eigentliche Beschreibung unseres Spiels. Danach folgen in Kapitel 5 noch Informationen zum Format, welches f"ur diese Dokumentation verwendet wurde.
%% warum so umstaendlich ?

\chapter{Definitionen}
\begin{description}
\item[Spielfl"ache] Teil des Displays, der als Ablage f"ur diejenigen Teile dient, die das fertige Ursprungsbild ergeben.
\item[Arbeitsfl"ache (workspaces)] Teil des Displays, um noch nicht zur Spielfl"ache hinzugef"ugte Teile zu sortieren.
\item[Spielfenster/play window] Ist das gesamte Fenster, in dem der Spieler seine Puzzleteile zusammensetzt oder den Player steuern kann. (dazu geh"ort also Spielfl"ache und Arbeitsfl"ache)
\item[libraries] Dateien, welche wichtige Systemfunktionen zur Verf"ugung stellen. Werden dringend ben"otigt, damit Software korrekte Funktionalit"at bereitstellen kann. Unter Windows zumeist Dateien mit Dateiendung .dll
\item[Aufl"osung] Gibt die Anzahl auf dem Bildschirm dargestellter Bildpunkte in horizontaler sowie vertikaler Richtung an. G"angige Aufl"osungen sind z.B. 1024x768 oder 1280x1024
\item[Men"upunkt] Eine Auswahlm"oglichkeit im Menu, welche entweder per Tastatur oder Maus ausgew"ahlt werden kann. Falls sie inaktiv ist, ist sie schwarz dargestellt. Wird entweder per Tasten oder durch "Uberfahren mit der maus diese angew"ahlt, wird sie aktiv und rot dargestellt. Dann kann sie ausgew"ahlt werden entweder durch Dr"ucken der ``Return''-Taste oder durch Linksklick mit der Maus.
\end{description}

\chapter{Spielbeschreibung}
\section{"Uberblick}
Unser Spiel ist ein Puzzlespiel und heisst ``Under Construction'', kurz UC. Das Spiel wird:
\begin{enumerate}
\item ein geladenes Bild in kleine Teile zerlegen.
\item dem Spieler die M"oglichkeit geben, selbst ein beliebiges Bild zu laden.
\item dem Spieler die M"oglichkeit geben, die Anzahl der Teile und somit den Schwierigkeitsgrad zu bestimmen.
\item einen ETH-Modus bieten, der ein Bild der ETH l"adt und es in 150 Teile zerlegt.
\item 3 Arbeitsfl"achen zur Verf"ugung stellen, auf denen der Spieler seine Teile sortieren kann.
\item Sound kann abgespielt werden.
\end{enumerate}
Das Ziel des Spiels ist es, alle Teile so aneinanderzureihen, dass wieder das urspr"ungliche Bild entsteht, also das Puzzle zu l"osen.
\section{Anforderungen}
Unser Spiel wurde f"ur die Microsoft Windows Plattform kompiliert. Aus diesem
Grund muss der Computer des Spielers Windows XP kompatibel sein. Des Weiteren
ben"otigt der User mindestens eine Aufl"osung von 1024x768, um das ganze play
window darstellen zu k"onnen. Soll auch die Soundfunktion verwendet werden, ist
zus"atzlich noch eine Soundkarte und Lautsprecher notwendig.

\section{Installation}
Das Spiel ben"otigt keine eigentliche Installation. Man entpackt das Archiv in ein lokales Verzeichnis auf dem Rechner und startet das Executable \emph{uc.exe}.

Wichtig zum korrekten Betrieb unseres Spiels sind folgende libraries:
\begin{itemize}
\item jpeg.dll
\item libpng1.dll
\item msvcr71.dll
\item SDL.dll
\item SDL\_image.dll
\item SDL\_mixer.dll
\item sdlgfx.dll
\item zlib.dll
\end{itemize}
Diese werden zusammen mit dem Spiel geliefert. Diese Libraries m"ussen entweder im selben Verzeichnis wie das Executable liegen (das ist der Fall, wenn das Archiv einfach entpackt wird) oder aber in den Ordner \emph{system32} im Windows-Systemordner kopiert werden.

Des Weiteren enth"alt das Archiv einen Ordner \emph{image}, welches wichtige Bilddateien beinhaltet. Hier kann der Spieler auch eigene Bilder einf"ugen, welche dann f"ur ein Puzzle ausgew"ahlt werden k"onnen.

Der Ordner \emph{sound} schliesslich enth"alt die f"ur das Spiel notwendigen Sounds. Auch hier kann der Spieler seine Musik-Files (im .ogg-Format) einf"ugen. Diese werden dann w"ahrend des Spiels zu einer Playlist zusammengesetzt und abgespielt.
\section{Spielaufbau}
\subsection{Hauptmen"u}
Der Spieler hat die M"oglichkeit, das Hauptmen"u entweder mit der Maus (Maus auf den gew"unschten Men"upunkt bewegen und durch Linksklick diesen anw"ahlen) oder mit der Tastatur (Pfeiltasten $\uparrow$ oder $\downarrow$ zum Ausw"ahlen des gew"unschten Men"upunktes und ``Return'', um diesen anzuw"ahlen) zu steuern. Das Hauptmen"u beinhaltet 6 Unterpunkte:
\begin{itemize}
\item New Game
\item Resume Game
\item Load Game
\item Save Game
\item Credits
\item Quit
\end{itemize}
Zu erw"ahnen ist noch, dass der Spieler fast das gesamte Men"u hindurch eine
Auswahlm"oglickkeit ``Back'' hat, welche bei entsprechender Auswahl einfach
einen Schritt zur"uckgeht in der Men"ustruktur. Die selbe Funktionalit"at hat
auch die Escape-Taste.
\subsubsection{New Game}
Der Spieler kann dadurch ein neues Spiel beginnen. Dabei wird in einem neuen Men"ufenster die Auswahl zwischen einem vordefinierten (predefined) oder einem selbstdefiniertem (user-defined) Spiel gegeben.

W"ahlt der Spieler ein selbstdefiniertes Spiel aus, kann er in einem weiteren Fenster sowohl die Bilddatei (Bilddatei im .jpg, .gif, oder .png Bildformat, das Bild muss im Unterverzeichnis ./image liegen) als auch die Anzahl Puzzleteile ausw"ahlen, mit der er spielen m"ochte. Dazu klickt der Spieler einfach mit der linken Maustaste in ein Textfeld und gibt dort sowohl das Bild als auch die Anzahl Teile ein. Danach klickt der Spieler auf ``Start Puzzle'' um ein neues Spiel mit den gew"unschten Angaben zu starten. Es wird nach M"oglichkeit genau die Anzahl Teile erstellt, welche der Spieler gew"unscht hat, es kann jedoch kleine Abweichungen davon geben. 

Die zweite M"oglichkeit, die der Spieler hat, ist, ein vordefiniertes (predefined) Spiel zu laden. Es erscheinen dann 3 vordefinierte Spiele, bei denen jeweils das Bild und die Anzahl Teile bereits vorgegeben ist und somit bei Auswahl eines dieser drei sofort das eigentliche Spiel geladen wird.
\subsubsection{Resume Game}
Dieser Men"upunkt zeigt nur Wirkung, falls ein laufendes Spiel durch Taste ESC pausiert wurde (dazu sp"ater mehr) oder ein Spiel mit der Funktion ``Load Game'' geladen wurde. Durch Auswahl von ``Resume Game'' kann dieses laufende Spiel wieder dort aufgenommen werden, wo es pausiert bzw. gespeichert wurde.
\subsubsection{Load Game}
Durch Auswahl dieses Men"upunktes wird dem Spieler ein Bildschirm angeboten, in welchem er einen gespeicherten fr"uheren Spielstand laden kann. Dazu klickt er mit der linken Maustaste in das Textfeld und gibt den Namen eines gespeicherten Spiels an (gespeicherte Spiele haben die Dateiendung .puz, welche jedoch zum Laden auch weggelassen werden kann. Was jedoch wichtig ist, ist, dass sich die Pfadangabe entweder absolut eingeben l"asst (c:$\backslash$ verzeichnis$\backslash$ \ldots) oder relativ (verzeichnis$\backslash$ \ldots), wobei z.B. die Eingabe ``save.puz'' die gespeicherte Datei save.puz laden will, welche sich im gleichen Verzeichnis wie uc.exe befindet). Der Spieler kann, nachdem er seine Eingabe get"atigt hat, entweder auf den Button ``Load Puzzle'' klicken (mit der linken Maustaste) oder aber einfach die Taste ``Return'' dr"ucken. Falls es Probleme beim Laden einer Datei gibt, wird der Spieler mit einer entsprechenden Fehlermeldung darauf hingewiesen. Ansonsten wird die entsprechende Datei geladen und automatisch ins Hauptmen"u gesprungen. Hier kann der Spieler durch Auswahl von ``Resume Game'' das geladene Spiel wiederaufnehmen.
\subsubsection{Save Game}
Dieser Men"upunkt zeigt nur Wirkung, falls ein laufendes Spiel durch Taste ESC pausiert wurde (dazu sp"ater mehr). Wird ``Save Game'' ausgew"ahlt, pr"asentiert sich dem Spieler ein Bildschirm, indem er eine Speicherungsdatei angibt, um das laufende Spiel an aktueller Stelle abzuspeichern. Dazu klickt der Spieler mit der linken Maustaste ins Textfeld und gibt dort die Speicherungsdatei an, wobei das gleiche Prozedere gilt, das bereits unter \textbf{Load Game} beschrieben wurde.
\subsubsection{Credits}
Bei Auswahl dieses Men"upunktes werden dem Spieler als Lauftext Informationen "uber das Spiel ``Under Construction'' angezeigt. Er kann dann durch Auswahl von ``Back'' wieder zur"uck ins Hauptmen"u gelangen.
\subsubsection{Quit}
Durch Auswahl dieses Men"upunktes wird das Spiel beendet.

\subsection{Spielfenster}
In dieses Fenster gelangt man, wenn man ein neues Spiel gestartet hat ("uber ``new game'' im Hauptmen"u) oder ein gespeichertes oder unterbrochenes Spiel fortsetzt ("uber ``load game'' und ``resume game'' im Hauptmen"u).

\begin{figure}
\begin{center}
\includegraphics[scale=0.4]{psw_screenshot}
\caption{Screenshot vom Spielfenster}
\end{center}
\end{figure}

Das Spielfenster setzt sich aus den Workspaces, dem Spielfeld und verschiedenen Buttons zusammen. 

\subsubsection{Mausbewegung}
Um ein Teilchen zu bewegen, klickt man es mit der linken Maustaste an. Solange die Maustaste gedr"uckt bleibt, bewegt sich das Teilchen mit der Maus mit. Sobald die Maustaste losgelassen wird, findet abh"angig von der Position des Teilchens eine entsprechende Aktion statt.

Mit einem Klick auf die rechte Maustaste "uber einem Teilchen wird dieses um 90° im Uhrzeigersinn rotiert.

\subsubsection{Workspace}
Links befindet sich der Workspace. Hier werden die Teilchen angezeigt, die noch ins Puzzle eingef"ugt werden m"ussen. Der Workspace 0 enth"alt immer alle Teilchen, die noch nicht im Spielfenster gesetzt wurden. Die Workspaces 1 und 2 k"onnen vom User ohne Einschr"ankungen benutzt werden.

Die Teilchen k"onnen im Workspace verschoben werden. Sie werden dort einsortiert, wo man sie losl"asst.

\begin{figure}
\begin{center}
\includegraphics[scale=0.5]{ws_ctrl_screenshot}
\caption{Screenshot der Workspace-Controls}
\end{center}
\end{figure}

Die Buttons unten links dienen zur Steuerung der Workspaces. Die linken Drei w"ahlen den Workspace. L"asst man ein Teilchen "uber einem dieser Buttons fallen, wird es in den entsprechenden Workspace verschoben. Die selbe Funktion l"asst sich mit den Tasten 0,1 und 2 f"ur die entsprechenden Workspaces erreichen.

Der Abfalleimer (oder Taste \texttt{d}) l"oscht ein Teilchen, das dar"uber fallengelassen wird aus dem aktuellen Workspace. Klickt man ohne Teilchen darauf, werden alle Teilchen aus dem aktuellen Workspace gel"oscht. Man beachte die Einschr"ankung bei Workspace 0, hier werden keine Teilchen gel"oscht.

Der reset-Button (Pfeil) (oder Taste \texttt{r})  l"adt alle Teilchen in den aktuellen Workspace, die noch nicht gel"ost sind.

Der cheat-Button (Zauberstab)  (oder Taste \texttt{c})  unterst"utzt den Spieler durch das Plazieren eines Teilchens im Spielfenster.

Der image-Button (Auge) (oder Taste \texttt{i})  zeigt die L"osung f"ur 3 Sekunden an. W"ahrend dieser Zeit sind Mausklicks nicht m"oglich.

\subsubsection{Spielfl"ache}
Hier werden die bereits gel"osten Teilchen angezeigt.

\subsubsection{Steuerung des Players}
Im unteren rechten Bildschirmbereich befindet sich die Steuerung f"ur den Musik-Player. Alle ogg-Files im Ordner \emph{sound} wurden zu einer Playlist zusammengesetzt und k"onnen "uber diese Buttons angew"ahlt werden. Die Steuerung entspricht den "ublichen Funktionen und sollte selbsterkl"arend sein. 

Die Funktionen lassen sich auch "uber die Tastatur steuern:

\begin{tabular}{ll}
stop / play & Taste \texttt{s}\\
pause& Taste \texttt{p}\\
next / back& Tasten \texttt{n} bzw \texttt{b}\\
show / hide Title& Taste \texttt{t}\\
mute& Taste \texttt{m}\\
Volume control& Taste $\uparrow$ und $\downarrow$\\
\end{tabular}

\subsubsection{weitere Tasten}
Die escape-Taste f"uhrt zur"uck ins Hauptmen"u, wo das Spiel gespeichert werden kann.

Die Taste \texttt{q} beendet das Spiel umgehend.

\subsection{Spiel beendet}
Das Spiel ist beendet, wenn alle Teilchen im Spielfeld zusammengesetzt wurden. Dann wird eine entsprechende Meldung ausgegeben.



%\section{BON-Diagram}

%\newpage

%\appendix
%\input appendix.tex
%% gehoert doch nicht in den user guide ?!?







\end{document}
