Software Challenge : Spieldefinition

GameDefinition.create :"<GameName>" do
players <n>
 # Anzahl der Spieler pro Match
plugin_guid "<s>"
 # z.B. "swc_2010_hase_und_igel"
test_rounds <n>
 # Wieviele Runden spielt ein Client im Test?
leagueend
do
rounds<n>
# Einstellungen zur Ligaphase
# Wieviele Runden pro Match
finaledo
day
:<sym>
:human_name => "<s>"
:order => <n>
:depends => [
:use:<sym>,
:... ]
=>
{:best => <n>}
:winners
:losers
:from =>
:contest
:<sym>
:multipleWinners => <bool>
end
:reorder_slots => <bool>
:editable => <bool>
:lineup_publishable => <bool>
:ranking => {
<n> =>
:winners
:losers
<n> => ... }
day ...
# Einstellungen zur Finalphase
# ID des Finaltages
# Name des Finaltages
# Bestimmung der Reihenfolge der Finaltage
# Array der Finaltage, die gespielt sein
# müssen, bevor dieser gespielt werden kann
# Wie werden die Spieler für diesen Finaltag
# ausgewählt:
# Entweder: Die n besten Spieler
# Oder: Die Gewinner
# Oder: Die Verlierer
# Woher kommen die Spieler für diesen Finaltag?
# Entweder: Aus der regulären Spielphase
# (Rangliste)
# Oder: Aus dem angegebenen Finaltag
# true => Es können mehrere Gewinner aus
# einem Match hervorgehen
# (Mit Vorsicht zu benutzen!)
# true => Die Spieler werden neu sortiert:
# 1. vs 8., 2. vs 7. ...
# true => Die Aufstellung dieses Finaltages
# kann vom Admin bearbeitet werden
# true => Die Aufstellung dieses Finaltages
# kann veröffentlicht werden
# Einstellungen zur Aufstellung der Rangliste
# An n-ter Stelle in der Rangliste stehen...
# ... entweder die Gewinner dieses Finaltages
# ... oder die Verlierer dieses Finaltages.
round_score do
field :<sym>,
:ordering =>
"ASC"
"DESC",
:precision => <n>
field ...
end
# Einstellungen für die Rundenwertung
# Erstellt ein Wertungskriterium mit gegebenem Namen
# Wie soll nach diesem Kriterium sortiert werden?
# Aufsteigend
# oder absteigend
# Auf wieviele Nachkommastellen soll geachtet werden?
# Hinweise zur match_score:
# Die Optionen :sum/:average und :aggregate nicht zusammen benutzen!
# :sum/:average machen alle Berechnungen automatisch inklusive der Ranglistenberechnung
# Bei Benutzung von :aggregate muss im Block die Berechnung für das Match-Wertungskriterium
# selbst durchgeführt werden. Für die Rangliste funktioniert die Berechnung dann wieder
# automatisch, je nachdem ob :aggregate die Option :sum oder :average bekommt
match_score do
field :<sym>,
:ordering =>
"ASC"
"DESC",
:sum => :<sym>,
end
:average => :<sym>,
:inherit => :<sym>,
:aggregate =>
:sum
:average,
:precision => <n>
do |my_scores, their_scores|
...
end
field ...
main :<sym>
# Einstellungen für die Matchwertung
# Erstellt ein Wertungskriterium mit gegebenem Namen
# Wie soll nach diesem Kriterium sortiert werden?
# Aufsteigend
# oder absteigend
# Aufsummierung des gegebenen Rundenkriteriums
# über alle Runden
# Durschnitt des gegebenen Rundenkriteriums
# über alle Runden
# ??? (:sum und :average implizieren diese Option)
# Wie soll dieses Wertungskriterium in die
# Gesamtwertung (Rangliste) einfließen?
# Entweder: Die Matchwertungen werden aufsummiert
# Oder: Der Durchschnitt der Matchwertungen zählt
# Auf wieviele Nachkommastellen soll gerundet werden
# Block ist nur bei Benutzung von :aggregate anzugeben
# Optional: Angabe, welches Feld als Hauptkriterium
# dienen soll (zur Anzeige des Spielergebnisses z.B.)
end