Report
[AntiTD.git] / report / report.tex
blob95b2f30a6545c6aa6caa7ad2a2c139d076e9216a
1 \documentclass[titlepage, twoside, a4paper, 12pt]{article}
2 \usepackage[swedish]{babel}
3 \usepackage[utf8]{inputenc}
4 \usepackage{verbatim}
5 \usepackage{fancyhdr}
6 \usepackage{graphicx}
7 \usepackage{parskip}
9 % SourceCode
10 \usepackage{listings}
11 \usepackage{color}
14 % Include pdf with multiple pages ex \includepdf[pages=-, nup=2x2]{filename.pdf}
15 \usepackage[final]{pdfpages}
16 % Place figures where they should be
17 \usepackage{float}
19 % SourceCode
20 \definecolor{keywordcolor}{rgb}{0.5,0,0.75}
21 \lstset{
22 inputencoding=utf8,
23 language=Java,
24 extendedchars=true,
25 basicstyle=\scriptsize\ttfamily,
26 stringstyle=\color{blue},
27 commentstyle=\color{red},
28 numbers=left,
29 firstnumber=auto,
30 numberblanklines=true,
31 stepnumber=1,
32 showstringspaces=false,
33 keywordstyle=\color{keywordcolor}
34 % identifierstyle=\color{identifiercolor}
37 % Float for text
38 \floatstyle{ruled}
39 \newfloat{xml}{H}{lop}
40 \floatname{xml}{XML}
42 % vars
43 \def\title{AntiTD}
44 \def\preTitle{Laboration 4}
45 \def\kurs{Applikationsprogrammering i Java, HT-08}
47 \def\namn{Andreas Jacobsson}
48 \def\mail{dit06ajs@cs.umu.se}
49 \def\namnTva{Anton Johansson}
50 \def\mailTva{dit06ajn@cs.umu.se}
52 \def\pathtocode{$\sim$dit06ajn/edu/apjava/lab4}
54 \def\handledareEtt{Johan Eliasson, johane@cs.umu.se}
55 \def\handledareTva{Tor Sterner-Johansson, tors@cs.umu.se}
56 \def\handledareTre{Daniel Henriksson, danielh@cs.umu.se}
57 \def\handledareFyra{Johan Granberg, johang@cs.umu.se}
59 \def\inst{datavetenskap}
60 \def\dokumentTyp{Laborationsrapport}
62 \begin{document}
63 \begin{titlepage}
64 \thispagestyle{empty}
65 \begin{small}
66 \begin{tabular}{@{}p{\textwidth}@{}}
67 UMEÅ UNIVERSITET \hfill \today \\
68 Institutionen för \inst \\
69 \dokumentTyp \\
70 \end{tabular}
71 \end{small}
72 \vspace{10mm}
73 \begin{center}
74 \LARGE{\preTitle} \\
75 \huge{\textbf{\kurs}} \\
76 \vspace{10mm}
77 \LARGE{\title} \\
78 \vspace{15mm}
79 \begin{large}
80 \namn, \mail \\
81 \namnTva, \mailTva\\
82 \texttt{\pathtocode}
83 \end{large}
84 \vfill
85 \large{\textbf{Handledare}}\\
86 \mbox{\large{\handledareTre}}
87 \mbox{\large{\handledareTva}}
88 \mbox{\large{\handledareEtt}}
89 \mbox{\large{\handledareFyra}}
90 \end{center}
91 \end{titlepage}
93 \newpage
94 \mbox{}
95 \vspace{70mm}
96 \begin{center}
97 % Dedication goes here
98 \end{center}
99 \thispagestyle{empty}
100 \newpage
102 \pagestyle{fancy}
103 \rhead{\today}
104 \lhead{\footnotesize{\namn, \mail\\\namnTva, \mailTva}}
105 \chead{}
106 \lfoot{}
107 \cfoot{}
108 \rfoot{}
110 \cleardoublepage
111 \newpage
112 \tableofcontents
113 \cleardoublepage
115 \fancyfoot[LE,RO]{\thepage}
116 \pagenumbering{arabic}
118 \section{Problemspecifikation}\label{Problemspecifikation}
119 % Beskriv med egna ord vad uppgiften gick ut på. Är det någonting som
120 % varit oklart och ni gjort egna tolkningar så beskriv dessa.
122 Problemspecifikation finns i original på sidan:\\
123 \begin{footnotesize}
124 \verb!http://www.cs.umu.se/kurser/5DV085/HT08/lab4/! % TODO check
125 \end{footnotesize}
127 \section{Användarhandledning}\label{Anvandarhandledning}
128 % Förklara var programmet och källkoden ligger samt hur man kompilerar,
129 % startar och använder det. Förklara även översiktligt vad som händer
130 % när man använder de olika kommandona. Det räcker alltså inte att
131 % skriva "man skriver 'ant' för att kompilera", utan det måste även ingå
132 % en liten förklaring om vad som egentligen händer när man kör ant och
133 % varför det fungerar. Använd Internet eller litteratur för att själva
134 % ta reda på den information ni tycker känns relevant, dels för
135 % rapportens skull och dels för er egen. Kom ihåg att skriva tydliga
136 % (vetenskapliga) referenser!
138 Programmet ligger i katalogen:\\
139 \texttt{\pathtocode}
141 Källkoden ligger i underkatalogen \verb!src!.
143 Följande kommandon förutsätter att programmet \textit{Apache
144 Ant}\footnote{http://ant.apache.org/} är installerat. Verktyget
145 \textit{Ant} är ett byggverktyg som använder sig av specifikationen
146 lagrad i en XML-fil, oftast \textit{build.xml}, för automatisera alla
147 nödvändiga operationen vid kompilering av ett projekt. Detta kan
148 innefatta all typ av filhantering, det vill säga kopiering,
149 borttagning och flyttning, men även själva kompileringen av
150 projektet. Verktyget kan ses som ett specialanpassat skript för att
151 kompilera hela projekt.
153 Programmet kompileras med kommandot:\\
154 \begin{footnotesize}
155 \verb!salt:~/edu/apjava/lab3> ant!
156 \end{footnotesize}
158 % TODO fix
159 Det som händer vid anrop av kommandot ovan är att \textit{Ant} läser
160 av filen \textit{build.xml} och letar efter standardkommandona att
161 köra. I det här fallet är det operationerna som är definierade i
162 XML-elementet \verb!<target />! med attributet \verb!name="dist"!. Se
163 bildaga~\ref{app:build.xml} för mer information om vad som händer. Oftast
164 har taggarna i \textit{build.xml} relativt självförklarande namn, de
165 motsvarar i många fall direkta kommandon som går att köra i en
166 terminal.
168 \section{Systembeskrivning}\label{Systembeskrivning}
169 % Beskriv översiktligt hur programmet är uppbyggt och hur det löser
170 % problemet.
172 \begin{figure}[H]
173 \begin{center}
174 \includegraphics[width=110mm]{images/Paintables.pdf}
175 \caption{UML klassdiagram}
176 \label{fig:image/Paintable}
177 \end{center}
178 \end{figure}
180 \subsection{se.umu.cs.dit06ajnajs pakage}
181 \subsubsection{ATDController}\label{sec:ATDController}
182 \subsubsection{ATDModel}\label{sec:ATDModel}
183 \subsubsection{ATDSoundPlayer}\label{sec:ATDSoundPlayer}
184 \subsubsection{ATDView}\label{sec:ATDView}
185 \subsubsection{AntiTD}\label{sec:AntiTD}
186 \subsubsection{NoActiveStartSquareException}\label{sec:NoActiveStartSquareException}
187 \subsubsection{Paintable}\label{sec:Paintable}
188 \subsubsection{Player}\label{sec:Player}
190 \subsection{se.umu.cs.dit06ajnajs.agent pakage}
191 \subsubsection{Agent}\label{sec:Agent}
192 \subsubsection{AgentPrototypeFactory}\label{sec:AgentPrototypeFactory}
193 \subsubsection{BasicTower}\label{sec:BasicTower}
194 \subsubsection{Direction}\label{sec:Direction}
195 \subsubsection{FootmanUnit}\label{sec:FootmanUnit}
196 \subsubsection{FootmanUnit.java}\label{sec:FootmanUnit.java}
197 \subsubsection{TeleportUnit}\label{sec:TeleportUnit}
198 \subsubsection{Tower}\label{sec:Tower}
199 \subsubsection{Unit}\label{sec:Unit}
201 \subsection{se.umu.cs.dit06ajnajs.map pakage}
202 \subsubsection{BlockedSquare}\label{sec:BlockedSquare}
203 \subsubsection{Clickable}\label{sec:Clickable}
204 \subsubsection{GoalSquare}\label{sec:GoalSquare}
205 \subsubsection{Item}\label{sec:Item}
206 \subsubsection{Level}\label{sec:Level}
207 \subsubsection{MapSquare}\label{sec:MapSquare}
208 \subsubsection{MapSquareFactory}\label{sec:MapSquareFactory}
209 \subsubsection{MapSquarePrototypeFactory}\label{sec:MapSquarePrototypeFactory}
210 \subsubsection{PathSquare}\label{sec:PathSquare}
211 \subsubsection{StartSquare}\label{sec:StartSquare}
212 \subsubsection{TowerSquare}\label{sec:TowerSquare}
213 \subsubsection{Traversable}\label{sec:Traversable}
214 \subsubsection{TurnSquare}\label{sec:TurnSquare}
216 \subsection{se.umu.cs.dit06ajnajs.util pakage}
217 \subsubsection{LevelEditor}\label{sec:LevelEditor}
218 \subsubsection{LevelsXMLOutputter}\label{sec:LevelsXMLOutputter}
219 \subsubsection{LevelsXMLParser}\label{sec:LevelsXMLParser}
220 \subsubsection{LevelsXMLValidator}\label{sec:LevelsXMLValidator}
221 \subsubsection{XMLUtil}\label{sec:XMLUtil}
222 \subsubsection{XMLValidator}\label{sec:XMLValidator}
224 \section{Begränsningar}\label{Begransningar}
225 % Vilka problem och begränsningar har din lösning av uppgiften? Hur
226 % skulle de kunna rättas till?
228 \section{Reflektioner}\label{Reflektioner}
229 % Reflektioner - Var det något som var speciellt krångligt? Vilka
230 % problem uppstod och hur löste ni dem? Vilka verktyg använde ni? Hur
231 % upplevde ni de verktygen? + Allmänna synpunkter. Om ni har upplevt
232 % problem på grund av olika miljöer (i termer av operativsystem och
233 % liknande) så kan det även vara intressant att nämna det, samt motivera
234 % ert val av miljö.
236 \section{Testkörningar}\label{Testkorningar}
237 % Noggranna testkörningar där man ser att programmet fungerar som det
238 % ska.
240 \section{Diskussion}\label{Diskussion}
241 % Diskutera om laborationen samt allmänt kring Web services och om hur
242 % och när det är användbart (och inte användbart). Saker som kan vara
243 % trevliga att ta upp är interoperabilitet, lite om prestanda, koncepten
244 % lös koppling och så vidare. Den här sektionen ska vara en betydande
245 % del av rapporten. Det är upp till er själva att ta reda på den
246 % information ni behöver, även om föreläsningsmaterialet kan vara
247 % väldigt användbart. Kom även här ihåg att referera till era källor
248 % (även om det är från föreläsningsmaterialet).
250 \bibliographystyle{alpha}
251 \bibliography{books.bib}
253 \newpage
254 \appendix
255 \pagenumbering{arabic}
256 \section{Källkod}\label{sec:kallkod}
257 % Källkoden ska finnas tillgänglig i er hemkatalog
258 % ~/edu/apjava/lab1/. Bifoga även utskriven källkod.
259 Härefter följer utskrifter från källkoden och andra filer som hör till
260 denna laboration.
262 \newpage
263 \subsection{AntiTD.java}\label{AntiTD.java}
264 \lstinputlisting{../src/se/umu/cs/dit06ajnajs/AntiTD.java}
266 \end{document}