Rallye Auswertung

Online-Hilfe

Zweck des Programmes

Das Programm ist als Hilfsmittel zur Auswertung von Orientierungsrallyes gedacht; insbesondere zur Berechnung der Strafpunkte, die sich aus den Einträgen der Durchfahrts-und Stempelkontrollen ergeben.

Realisierung

Das Programm ist in Javascript geschrieben.

Problemstellung

Das Kontrollieren von Bordkarten ist wirklich nicht trivial. Jeder, der schonmal an Orientierungsfahrten teilgenommen hat weiß, dass die Auswirkung sehr lange dauern kann und oftmals auch noch nachträglich Korrekturen verhandelt werden.
Wer schon einmal selber Bordkarten kontrolliert hat, der wird auch schnell durcheinander gekommen sein. Gerade dann, wenn nennenswerte Abweichungen zwischen der richtigen Lösung und den Einträgen auf der Bordkarte existieren und DKs auch mehrfach angefahren werden können (Das macht die Sache so richtig kompliziert).

Hier mal einige Beispiele

Lösung: 1 2 3 4 4 5 6 7 4 8 9
Bordkarte: 1 3 4 5 6 10 4 8 9

Hier ist es relativ einfach: Die 2 und eine 4 sind ausgelassen und statt der 7 ist die 10 angefahren worden (einmal 7 zuviel, einmal 10 zuwenig). Das gibt vier Strafpunkte.

Bordkarte: 1 3 4 6 5 17 4 5 8 17 4 9

Jetzt wird es schwieriger, denn hier ist neben 17 (zweimal zuviel) und 2 und 7 (beide zuwenig) die Reihenfolge der richtig angefahrenen DKs extrem durcheinander. Wieviele Strafpunkte gibt es hier?

Konzept

Bei der Auswertung gehen wir mehrstufig vor:
  1. Zuviel
    Alle DKs, die auf der Bordkarte stehen und nicht zu den DKs auf der Lösung gehören sind schonmal eindeutig falsch und können direkt Strafpunkte ergeben.
  2. Zuwenig
    Ebenso sind diejenigen DKs, die sich nur in der Lösung aber nicht auf der Bordkarte finden eindeutig nicht angefahren worden. Auch hier können einfach Strafpunkte vergeben werden.
  3. Für die weitere Auswertung können wir also auf das Konzentrieren, was übrig bleibt: die DKs, die sowohl in der Lösung (L) als auch in der Bordkarte (BK) aufgeführt sind. Wir haben also zwei Sätze von übrig gebliebenen Daten: Einmal die aus der Lösung und dann die aus der Borkarte. Im zweiten Beispiel bleiben also

    für   L:  [1 3 4 4 5 6 4 8 9]
    und BK:[1 3 4 6 5 4 5 8 4 9].

    Nun geht es darum, ob die Reihenfolge auch stimmt. Wie wird das erkannt?
    1. Wir fangen ganz vorne an (setzen also die Vergleichsmarkierung sozusagen noch VOR das jeweils erste Element)
    2. Wir betrachten nun diejeweils nächsten Elemente (am Anfang also genau die ersten; wir haben ja VOR dem Ersten angefangen; also L:1 und BK:1)
    3. Stimmen diese beiden Elemente bei L und BK überein? Das tun sie in diesem Fall: Prima. Also schieben wir unsere Vergleichs-Markierung zum jeweils nächsten Element weiter (Das wären dann L:3 und BK:3 und im nächsten Durchgang gleich nochmal 4 und 4; Wir hätten also schonmal 3 Richtige).
    4. Sollten die beiden Elemente nicht übereinstimmen (z.B. L=4 und BK=6), so schauen wir zunächst, in welcher Entfernung das Element bei L auf der BK vorkommt und dann in welcher Entfernung das Element bei BK in L vorkommt. Bei L=4 kommt die nächste 4 bei der Bordkarte erst zwei Schritte nach der 6. Bei BK=6 kommt die nächste 6 in der Lösung erst 2 Schritte nach der 4. Beides ist gleich ungünstig, also kein Treffer und wir rmüssen mit unserer Betrachtung (Vergleichsmarkierung) weiterrücken. Hierfür schauen wir nun, wo mehr Elemente übrig sind - in L oder in BK. Wenn in L mehr übrig sind, dann wird bei L vorgerückt; ansonsten bei BK. Hier ist B länger. Daher werden nun 4 und 5 verglichen. Auch kein Treffer, dann 4 und 4. Treffer, Regel 3 feuert.

    Und so fort.
    Insgesamt bringt uns dieses Verfahren zu 7 Richtigen bei 11 Lösungselementen und 12 Einträgen auf der Bordkarte. Da heißt, wir haben 23 zusammengenommene Elemente, von denen in BK und L jeweils 7 richtig sind. Macht 14 Richtige von 23 Einträgen.
    Das sind 9 Fehler, die sich folgendermaßen zusammensetzen: 2 zuviel (zweimal die 17), zwei zuwenig (2 und 7 fehlen) und dann noch 5 Reihenfolgefehler: 4 ausgelassen, 5 und 6 vertauscht, von denen aber einer gewertet werden kann (z.B. 5 und 5 ist richtig, aber dann wäre eine 6 vorher zuviel und eine 6 danach nicht angefahren), eine weitere 5 und danach nochmal eine 4 zuviel.