faecher:informatik:oberstufe:modellierung:2018a:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:modellierung:2018a:start [16.12.2021 07:14] sbelfaecher:informatik:oberstufe:modellierung:2018a:start [16.12.2021 07:31] (aktuell) – [Teil 3] sbel
Zeile 1: Zeile 1:
 ====== Schatzssuche ====== ====== Schatzssuche ======
 +((Abituraufgabe 2018 in BW, Teil A)) 
  
 Im Folgenden sollen Teile eines Spiels implementiert werden, in dem zwei Schatzsucher auf Im Folgenden sollen Teile eines Spiels implementiert werden, in dem zwei Schatzsucher auf
Zeile 62: Zeile 62:
  
 Beschreibe wie die Methode ''akteurNachLinks'' jeweils abgeändert werden müsste, wenn man auf das Attribut ''position'' in der Klasse Figur bzw. das Array ''feld'' in der Klasse Welt verzichten würde. Beschreibe wie die Methode ''akteurNachLinks'' jeweils abgeändert werden müsste, wenn man auf das Attribut ''position'' in der Klasse Figur bzw. das Array ''feld'' in der Klasse Welt verzichten würde.
 +
 +===== Teil 2 =====
 +
 +
 +{{:aufgabe.png?nolink  |}}
 +=== (T2A1) ===
 +
 +
 +Die Methode ''getManhattanDistanz(p1: Position, p2: Position): int''
 +in der Klasse Welt gibt das Ergebnis von ''abs(p1.getZeile()-p2.getZeile())
 ++ abs(p1.getSpalte()-p2.getSpalte())'' zurück.
 +
 +Dabei berechnet die Methode ''abs'' den aus der Mathematik bekannten Betrag.
 +
 +  * Begründe, dass die Methode ''getManhattanDistanz'' die Anzahl der Schritte angibt, die mindestens nötig sind, um von Position ''p1'' zu Position ''p2'' zu gelangen, wenn nur waagerechte und senkrechte Bewegungen erlaubt sind.
 +  * Implementiere die Methode ''getAnzahlNaeherbei(a: Akteur, b: Akteur): int'' in der Klasse Welt,
 +die die Anzahl der Felder zurückgibt, die näher bezüglich der Manhattan-Distanz bei Akteur ''a'' als bei Akteur ''b'' liegen.
 +
 +===== Teil 3 =====
 +
 +
 +
 +{{ :faecher:informatik:oberstufe:modellierung:2018a:spieleruml.png?240|}}
 +Das Schatzsuchespiel soll um eine Highscore-Liste erweitert werden. Dazu wird eine Klasse ''Spieler''
 +eingeführt mit den Attributen ''name'' und ''punkte''. In der Klasse Spiel wird zusätzlich noch eine
 +''spielerListe'' in Form eines Arrays verwaltet.
 +
 +Nach dem Abschluss eines Spiels wird der neue Spieler an das Ende der bereits absteigend sortierten Highscore-Liste angehängt. Dann wird die Liste neu sortiert.
 +
 +Bei Punktegleichstand soll derjenige Spieler weiter vorne in der Liste stehen, der diesen Punktstand zuerst erreicht hat. Sortierverfahren, die dies gewährleisten, nennt man **stabil**.
 +
 +{{ :faecher:informatik:oberstufe:modellierung:2018a:hs.png?400 |}}
 +---- 
 +{{:aufgabe.png?nolink  |}}
 +=== (T3A1) ===
 +Für das Sortieren werden zwei Algorithmen vorgeschlagen
 +
 +**Algorithmus I**
 +<code>
 +for i = 0 ... spielerAnzahl-1
 +    for j = 1 ... spielerAnzahl-1
 +        if (spielerListe[j-1].getPunkte() < spielerListe[j].getPunkte()) then
 +            tausche Spieler j mit Spieler (j-1) in spielerListe
 +       endif
 +    endfor
 +endfor
 +</code>
 +
 +**Algorithmus II**
 +
 +<code pseudocode>
 +for i = 0 ... spielerAnzahl-1
 +    bester = i
 +    for j = i+1 ... spielerAnzahl-1
 +        if (spielerListe[bester].getPunkte() < spielerListe[j].getPunkte()) then
 +            bester = j
 +        endif
 +    endfor
 +    tausche Spieler i mit Spieler bester in spielerListe
 +endfor
 +</code>
 +
 +
 +  * Gib jeweils an, welches Sortierergebnis nach der Ausführung der Algorithmen I und II bei der Anwendung auf die Highscore-Liste "vorher" vorliegt.
 +  * Analysiere die beiden Algorithmen, und entscheide ob diese stabil sind.
 +
 +
 +
 +
  • faecher/informatik/oberstufe/modellierung/2018a/start.1639638888.txt.gz
  • Zuletzt geändert: 16.12.2021 07:14
  • von sbel