\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_06_klasse_basketballspiel.tex 1212 2015-05-12 05:36:38Z humbert $}

\dokName{Methoden von Klassen}
\jahrgang{EF}

%%%%%NEU
\usepackage[T1]{fontenc}
\newcommand{\anfz}{\textquotedbl}

\begin{document}

\section*{Methoden der Klasse (Basketball-)Spiel}

Auf dem Arbeitsblatt \enquote{Deklaration von Klassen in der Programmiersprache 
Python} wurde die Festlegung/Deklaration der Klasse \texttt{Sporthalle} in 
Python angegeben.
Sie haben auf dieser Grundlage selbst die Klasse \texttt{Mannschaft} in Python 
implementiert (d.\,h. programmiersprachlich umgesetzt).
Es wird davon ausgegangen, dass sich diese Klassendefinitionen in den Dateien 
\texttt{sporthalle.py} und \texttt{mannschaft.py} im selben 
Verzeichnis befinden.

Erstellen Sie nun (sofern noch nicht geschehen) die Klasse 
\texttt{Basketballspiel} (oder \texttt{Spiel}, je nachdem, welchen Namen Sie 
der Klasse in Ihrer Gruppenarbeit gegeben haben) und speichern Sie sie im 
gleichen Verzeichnis als Python-Code (z.\,B. als \texttt{basketballspiel.py}). 
Alle weiteren Angaben beziehen sich auf diese Datei.

Neben den bisher behandelten Methoden, die Attributwerte verändern 
(\texttt{setze\ldots}) oder zurückgeben (\texttt{gib\ldots}), sollen noch 
weitere Methoden definiert werden.
(Um den Sieger des Basketballturniers ermitteln zu können, könnte es 
beispielsweise hilfreich sein, zunächst festzustellen, welche 
Mannschaft ein einzelnes Spiel gewonnen hat.)

Ein Basketballspiel-Objekt soll wie folgt erstellt werden können:
\begin{center}
 \texttt{spielAB = Basketballspiel(\anfz 09:45\anfz, \anfz 10:15\anfz, 
 halleA, dieKaengurus, dieNowitzkis)}
\end{center}

\texttt{halleA}, \texttt{dieKaengurus} und \texttt{dieNowitzkis} sind die 
Objekte, mit denen das Basketballspiel \texttt{spielAB} in Beziehung steht.
Um Ihr Programm testen zu können, müssen Sie diese erst anlegen. 
In den folgenden beiden Absätzen wird erläutert, wie dies funktioniert.

Die ersten beiden Zeilen Ihres Programms sollten lauten:

\texttt{from mannschaft import Mannschaft}\\
\texttt{from sporthalle import Sporthalle}

Der Bezeichner hinter \texttt{from} ist der Dateiname (ohne \texttt{.py}), in 
dem die jeweilige Klasse definiert ist und hinter dem \texttt{import} steht der 
Klassenbezeichner für die Klasse, die aus der angegebenen Datei importiert 
werden soll.
Danach können Sie Mannschaften und Sporthallen erzeugen, als wären die Klassen 
in der aktuellen Datei definiert worden\footnote{%
Auf diese Weise können Sie alle Klassen, die sie einmal definiert haben, ganz 
einfach wiederverwenden, wenn Sie sie in einem anderen Programm noch einmal 
benötigen.}.

Mittels \texttt{halleA = Sporthalle(\anfz Halle A\anfz, \anfz Altbau\anfz)} 
erzeugen Sie (wie gehabt) das Sport\-hal\-len-Objekt, entsprechend erstellen 
Sie die Mannschaften.


Die Klasse Basketballspiel soll folgende Vorgaben erfüllen:
\begin{itemize}
 \item Der Konstruktor soll (wie oben angegeben) bereits die Werte für 
   \texttt{beginn}, \texttt{ende}, \texttt{ort}, \texttt{mannschaftA} und 
   \texttt{mannschaftB} als Attributwerte eintragen.
 \item Eine Methode \texttt{ergebnisEintragen()} soll das Spielergebnis 
  nachträglich eintragen, sobald das Spiel stattgefunden hat. 
  Argumente sind \texttt{punkteA} und \texttt{punkteB}, also etwa \\ 
  \texttt{spielAB.ergebnisEintragen(32, 20)}.
 \item Die Methoden \texttt{gibSieger()}, \texttt{gibVerlierer()}, 
  \texttt{gibPunkteSieger()} und \texttt{gibPunkteVer\-lierer()} sollen die 
  siegreiche bzw. unterlegene Mannschaft bzw. deren erzielte Punktzahlen 
  zurückgeben.
\end{itemize}

Mit welcher Anweisung bzw. mit welchen Anweisungen können Sie den Namen der 
siegreichen Mannschaft aus dem Spiel \texttt{spielAB} ausgeben?

\end{document}

