Ok... Wie immer gibt es mehrere Möglichkeiten. Bei dem Spiel kommt erschwerend hinzu, dass die Antwort auf die Frage nicht bekannt ist, wenn die Spieler antworten, sondern erst später ausgewertet werden kann....
Folgendes ist die einfachste: Erstmal eine Tabelle für die Spieler: - User(id, name, email, ....) Gehen wir davon aus, dass Du nicht per SQL auf die einzelnen Elemente einer Frage zugreifen musst... Dann kannst Du alle Fragen in einem Text-Feld definieren: - Fragen(id, definition, antwort, ausgewertet...) In dem definitions-Feld definierst Du dann die Frage nach ner eigenen Fragen-Definitionssprache so, dass Du sie wieder aufbauen kannst. So ist das Später auch ohne Probleme auf neue Fragetypen ausbaubar Wie ich das sehe ist im Moment alles mit Dropdown lösbar... Fragendefinitionen setzen verschiedene Trenner ein. Trenner erster Ebene ist ein Zeilenumbruch, also vbCrLf(für classic ASP), für die Zweite Ebene ein Tab, also vbTab und als Trenner letzter Ebene nehmen wir |. Natürlich wäre die Definition auch als XML lösbar. Zum Feld antwort und ausgewertet kommen wir später. Am Anfang sind diese mit "" bzw. mit false zu belegen. Definitionen könnten also Z.B. So aussehen: > 1. Fragetyp: > Wie endet das Match? > Antwort sind je 2 Zahlen, ergibt dann je nach Antwort verschiedene > Punkte. (also z.B. 4:8) 1 TXT Wie endet das Match?<br> DD A 0|1|2|3|4|5|6|7|8|9 TXT zu DD B 0|1|2|3|4|5|6|7|8|9 > 2. Fragetyp: > Wann wird die erste Strafe gesprochen? > Antwort ist z.B. Zeitspanne (Minuten) über ein Dropdown-Feld wählbar. > Punkte, wenn die Richtige Antwort gegeben wurde. Je nach > Schwierigkeitsgrad der Frage verschiedene Punktzahlen. 2 TXT Wann wird die erste Strafe gesprochen?<br> TXT Nach DD A 5|10|15|20|25|30|... TXT Minuten > 3. Fragetyp: > Wer wird gewinnen? > Antwort als DropDown mit Namen. Punkte wenn richtig gewählt. 3 TXT Wer wird gewinnen?<br> DD A MannschaftA|MannschaftB > 4. Fragetyp: > Bester Spieler? > Auswahl eines Spielers. Jedes Mal wenn dieser Spieler ein Tor > schiesst, > erhält der Benutzer Punkte. 4 TXT Bester Spieler? DD A SpielerA|SpielerB|SpielerC|SpielerD|... Zur Erklärung: Die erste Zeile gibt den Typ an und der ist wichtig, damit man weiss wie die Antwort zu bewerten ist, bzw. welcher Funktion die Auswertung übernehmen soll - dazu später mehr. Jede weitere Zeile ist ein Befehl zur Definition der Frage. Bis jetzt gibt es nur zwei Befehle. TXT enthält nur einen Parameter und der wird direkt ausgegeben. DD rendert eine Dropdownlist, wobei der erste Parameter den Namen angibt und der zweite Parameter die per | getrennten Optionen. Weiter: Damit man die Antworten der Spieler speichern kann braucht man eine zusätzliche Tabelle: - Antworten(ID, UserID, FrageID, antwort, Punkte) Darin speichert man die Antworten der Spieler. Hätte z.B. User 3 die erste Frage da oben mit "3:4" beantwortet, also 3 im ersten Dropdown und 4 im zweiten gewählt, könnte der Eintrag inder Tabelle so aussehen: 123, 3, 1, "A=3|B=4", NULL Das Punkte-Feld wird erst bei der Auswertung ausgefüllt. Irgendwann ist dann das Spiel gelaufen und man kann die Antwort-Spalte in der Fragen-Tabelle ausfüllen. Für die Frage vom Typ 1 könnte das so aussehen: 5|2 Für Typ 2: 15 Für Typ 3: MannschaftA=50|MannschaftB=0 Für Typ 4: SpielerA=4|SpielerB=2|... Dann kann man die Auswertung starten, wobei je nach Typ eine andere Funktion jeweils die Antwort-Definition und die Antwort des Spielers bekommt und dann eine Punktzahl ausspuckt, die dann für den Spieler in die Antworten-Tabelle eingetragen wird... Wenn alles bewertet ist, kann man noch in der Fragen-Tabelle die Frage auf ausgewertet=true setzen. Wie man sieht kann man die Fragen Typ 4 und Typ 3 und wenn man die Antwort-Definition entsprechen macht auch Typ 2 mit der gleichen Funktion abhandeln, da diese Funktion einfach nur die entsprechende Punktzahl für die Antwort ausgeben muss. Für Typ 1 kann man berechnen wie weit man vom Ergebnis entfernt ist o.ä.... Keine Ahnung wie man sowas normalerweise bewertet. Ich würde zusätzlich noch alle Fragen eines Spiels zusammenfassen indem man ne weitere Tabelle Spiel vorsieht auf die dann die Fragen des Spiels referenzieren, also dann so: - Spiele(id, titel, ausgewertet, ...) - Fragen(id, spielID, definition, antwort, ...) Noch Fragen? Claudius _______________________________________________ Coffeehouse Mailingliste, Postings senden an: [email protected] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/coffeehouse
