\documentclass{schuleab}
\usepackage[utf8]{inputenc}
\usepackage{schulinf}

% Dieses Dokument ist in der Zusammenarbeit von Informatikreferendaren und
% ehemaligen Informatikreferendaren der Studienseminare (heute ZfsL) Arnsberg,
% Hamm und Solingen entstanden.
%
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
%
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden,
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben
% und auf die ursprünglichen Urheber verwiesen wird.
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen.
%
% Die Namensnennung durch einen Verweis und die Lizenzangabe der ursprünglichen
% Urheber auf den Materialien für Schülerinnen und Schüler ist erforderlich.
%
% Die Sammlung der Dokumente steht unter
% http://ddi.uni-wuppertal.de/material/materialsammlung/
% zur Verfügung.
%
% Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht
% unter  http://www.ctan.org/pkg/schule
% zur Verfügung.

\usepackage[pdfauthor={Referendare der Informatikfachseminare Arnsberg, Hamm und Solingen}]{hyperref}
\includexmp{lizenz}
\cclizenz{byncsaeu}
\footerQRLink{materialsammlung_qr_url.pdf}

\svnid{$Id: ab_05_umsetzung_spielstrategie.tex 626 2014-05-22 21:36:50Z pieper $}

\dokName{Umsetzung der Spielstrategie im Programm}
\jahrgang{EF}

%%%%Speziell
\lstset{language=Java, basicstyle=\small}

\begin{document}

\section*{Umsetzung der Spielstrategie im Programm}
Die entworfene Spielstrategie soll nun schrittweise in das Java-Programm eingebunden werden. Um die Handlungen und Entscheidungen der Computerspieler nachzuvollziehen, sollen diese vom Programm jeweils ausgegeben werden. 

Im Gruppenverzeichnis finden Sie eine leicht erweiterte Version des Meiern-Programms. Die Klasse Spieler wurde um ein Attribut name erweitert, welches im Konstruktor gesetzt wird und dessen Wert über die Methode \textit{gibName()} abgefragt werden kann. Es existieren mit \textit{gibWertigkeitZu(pZahl\-)} und \textit{gibErgebnisZu(pWertigkeit\-)} zudem zwei Methoden, welche es dem Computerspieler erlauben, Würfelergebnisse korrekt zu bewerten (siehe Überlegungen auf Arbeitsblatt "`Wertung von Würfelergebnissen"').

\begin{small}
\begin{tabular}{l|l}
	& \textbf{Ausgabe-Anweisungen} \\
	\hline
	\hline
		1. & Zeige neue Spielrunde an \\
	\hline
		2. & Zeige Beginner an \\
	\hline
		3. & Zeige gewürfeltes Ergebnis an \\
	\hline
		4. & Zeige an, dass Spieler nun am Zug ist \\
	\hline
		5. & Zeige die vom Vorgänger genannte Zahl an \\
	\hline
		6. & Zeige Neu-Würfeln-Entscheidung an \\
	\hline
		7. & Zeige Weiterreichen-Entscheidung an \\
	\hline
		8. & Zeige Aufdecken-Entscheidung an \\
	\hline
		9. & Zeige Niederlage an \\
	\hline
		10. & Zeige Sieg an \\
	\hline
\end{tabular}

\begin{tabular}{l|l}
	& \textbf{Java-Programmcode der entsprechenden println-Anweisung: System.out.\textit{println(...})} \\
		\hline
		\hline
			1. &
			\begin{lstlisting}
("--- Neue Spielrunde ---");
			\end{lstlisting}  \\
		\hline
			2. &
			\begin{lstlisting}
("Es beginnt " + name);
			\end{lstlisting} \\
		\hline
			3. &
			\begin{lstlisting}
(name + " wuerfelt " + kenntBecher.zeigeWuerfelergebnis());
			\end{lstlisting} \\
		\hline
			4. &
			\begin{lstlisting}
(name + " ist am Zug");
			\end{lstlisting} \\
		\hline
			5. &
			\begin{lstlisting}
(name + " erhaelt vom Vorgaenger " + vorgaengerzahl + " genannt");
			\end{lstlisting} \\
		\hline
			6. &
			\begin{lstlisting}
(name + " entscheidet sich neu zu wuerfeln");
			\end{lstlisting} \\
		\hline
			7. &
			\begin{lstlisting}
(name + " entscheidet sich den Becher weiter zu geben");
			\end{lstlisting} \\
		\hline
			8. &
			\begin{lstlisting}
(name + " entscheidet sich den Becher aufzudecken");
			\end{lstlisting} \\
		\hline
			9. &
			\begin{lstlisting}
(name + " verliert);\end{lstlisting} \\
		\hline
			10. &
			\begin{lstlisting}
(name + " gewinnt);\end{lstlisting} \\
	\end{tabular}
\end{small}


\subsection*{Aufgaben}
\begin{enumerate}
	\item \textbf{Struktogramm erweitern}
		Erstellen Sie ein erweitertes Struktogramm zur Methode \textit{fuehreZugAus}, indem Sie die Anweisungen aus der ersten Tabelle an geeigneter Stelle als neuen Strukturblock einfügen, damit die jeweiligen Handlungen und Entscheidungen der Spieler im Spielverlauf nachvollzogen werden können.
	
	\item \textbf{Implementierung}
		Übersetzen Sie das erweiterte Struktogramm in Java-Programmtext, indem Sie die Methode \textit{fuehreZugAus(\-)} so abändern, dass Sie dem Struktogramm entspricht. 

		Erinnern Sie sich dabei an die Java-Syntax für Verzweigungen. Verwenden Sie zur Ausgabe der jeweiligen Handlungen und Entscheidungen der Spieler geeignete println-Anweisungen aus der zweiten Tabelle. 

	\item \textbf{Erweiterung der Methode starteSpielrunde()}
		Fügen Sie in der Methode \textit{starteSpielrunde()} geeignete println-Anweisungen aus der zweiten Tabelle ein, damit man anschließend die Startphase des Spiels auf dem Bildschirm nachvollziehen kann.

\end{enumerate}

\end{document}