Punktesystem - Testprogramm

Nach unten

Punktesystem - Testprogramm

Beitrag  Till am Di 7 Sep 2010 - 17:58

hab ich zum Testen von verschiedenen Punktesystemen geschrieben...

Bilder >>>> http://csmhd.nightforum.net/spiel-grafiken-f23/punktesystem-t27.htm

kann gerne weiterentwickelt werden... (um die Punktesystem-Formeln zu verändern sind C#-kenntnisse erforderlich)
wenn mir da jemand das elo-system noch hinzufügt wär auch klasse.
Anhänge
Punktesystem.zip Du hast hier nicht die Berechtigung, Dateien runterzuladen.(55 KB) Anzahl der Downloads 6
avatar
Till
Admin

Anzahl der Beiträge : 254
Ort : In der ''Hello World''
Laune : vorfreudig ;)

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  Zephir am Di 7 Sep 2010 - 23:24

Wow. Meine Kentnisse reichen zwar gerade mal dazu aus, ein Viertel zu verstehen, aber immerhin war ich in der Lage, die Spieler nach meinem Willen zu verstellen Twisted Evil .


Aber: Was ist "elo"?
avatar
Zephir

Anzahl der Beiträge : 48
Ort : In ur interwebz, stealing ur cookiez!
Laune : Wartend...Wartend...Wartend...

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  Till am Mi 8 Sep 2010 - 14:01

Das ist ein Verfahren was beim Schach oder anderen Spielen/Sportarten verwendet wird, um die Spielstärke eines Spielers zu messen.

http://de.wikipedia.org/wiki/Elo-Zahl

Hat Vor- und Nachteile, deshalb will ich 2 Punktesysteme in das Spiel einbauen. Eins mit Erfahrungspunkten und eins mit der Elo-Zahl.
avatar
Till
Admin

Anzahl der Beiträge : 254
Ort : In der ''Hello World''
Laune : vorfreudig ;)

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  Zephir am Do 9 Sep 2010 - 2:04

Elo ist laut Wikipedia ein Zwei-Spieler-Ranking, das wird also kompliziert (man bräuchte bei einem 4-er Spiel bereits (4*3*2*1)=24 Berechnungen, das ganze steigt exponentiell mit jedem weiteren Spieler und wenn das ganze wirklich bis 8 Spieler gehen soll, wären das 8!= 40.320 Berechnungen...
avatar
Zephir

Anzahl der Beiträge : 48
Ort : In ur interwebz, stealing ur cookiez!
Laune : Wartend...Wartend...Wartend...

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  me_1000 am Do 9 Sep 2010 - 2:09

ja aber das berechnet eh ein computer und beim creepsmash hats auch immer funktioniert also seh ich da kein problem



Foren-Regeln | Suchfunktion | Blog
Release- und Supportanfragen per PN unerwünscht! (Bitte die entsprechenden Foren und die Suchfunktion verwenden!)

Wir suchen immer noch User die uns als C#/HTML/PHP/MySQL-Programmierer oder Beta-Tester unterstützen.
avatar
me_1000

Anzahl der Beiträge : 256
Ort : Österreich

http://www.csmhd.de

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  Zephir am Do 9 Sep 2010 - 3:03

Ja, aber auch ein Computer hat begrenzte Rechenleistug. Und CS Original muss ja auch nur 4 Spieler berechnen.
avatar
Zephir

Anzahl der Beiträge : 48
Ort : In ur interwebz, stealing ur cookiez!
Laune : Wartend...Wartend...Wartend...

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  me_1000 am Do 9 Sep 2010 - 3:12

stimmt, aber wir haben eigentlich einen ziemlich guten server und 1und1 hat auch hohe performance



Foren-Regeln | Suchfunktion | Blog
Release- und Supportanfragen per PN unerwünscht! (Bitte die entsprechenden Foren und die Suchfunktion verwenden!)

Wir suchen immer noch User die uns als C#/HTML/PHP/MySQL-Programmierer oder Beta-Tester unterstützen.
avatar
me_1000

Anzahl der Beiträge : 256
Ort : Österreich

http://www.csmhd.de

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  waschi am Do 9 Sep 2010 - 13:48

Jetzt werd ich auch noch gezwungen wieder VS2008 zu nehmen... Und dabei hat mein VS2010 soviele tolle Plugins... Steig auf VS2010 um Till! Ein bischen mehr Kommentare und Ordnung wäre auch nicht schlecht...


Zuletzt von waschi am Do 9 Sep 2010 - 15:21 bearbeitet; insgesamt 1-mal bearbeitet
avatar
waschi

Anzahl der Beiträge : 54
Ort : Hauptstadt
Laune : Heiter bis wolkig

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  waschi am Do 9 Sep 2010 - 15:13

Zephir schrieb:Elo ist laut Wikipedia ein Zwei-Spieler-Ranking, das wird also kompliziert (man bräuchte bei einem 4-er Spiel bereits (4*3*2*1)=24 Berechnungen, das ganze steigt exponentiell mit jedem weiteren Spieler und wenn das ganze wirklich bis 8 Spieler gehen soll, wären das 8!= 40.320 Berechnungen...

Vielleicht verstehe ich ja das Prinzip der Elo-Zahl nicht, aber wieso sollten das soviele Berechnungen sein? Erklär das bitte mal, vlt. kapiere ich das nicht. Ich teste grad eine Elo-Brechnung und die funktioniert bei 4 Spielern etwa so (schaut euch die untere funktion an):

public static class Elo
{
public static double CalcElo(cSpieler pA_platz1, cSpieler pB_platz2)
{
[Elo-Berechnung nach Wikipedia]
}

public static void CalcElo(SortedList<int, cSpieler> nachPlatzGeordneteListe)
{
[Anm.: Darstellung der Schleife, das ist als Schleife für x-Spieler realisiert]
var l = nachPlatzGeordneteListe;
http://z.B. für 4 Spieler
//Spieler A gewinnt gegen B,C,D
CalcElo(l[1], l[2]);
CalcElo(l[1], l[3]);
CalcElo(l[1], l[4]);

//Spieler B gewinnt gegen C,D
CalcElo(l[2], l[3]);
CalcElo(l[2], l[4]);

//Spieler C gewinnt gegen D
CalcElo(l[3], l[4]);
}
}

Wie man im Screenshot sieht klappt das aber noch nicht so ganz mit meinem Elo-System, es sei denn man hat Gruppe 2.

Bei Gruppe 2 bleibt der Elo-Wert stabil beim Anfangswert, selbst nach 2000 Spielen Wink

avatar
waschi

Anzahl der Beiträge : 54
Ort : Hauptstadt
Laune : Heiter bis wolkig

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  Till am Do 9 Sep 2010 - 17:57

wow super danke!!! ich schätze du has alles richtig gemacht. wenn jemand unter 500 punkte kommt setzt du ihn einfach wieder auf 500 punkte.
das wurde auch so bei creepsmash gemacht. die anzeige im spiel ist dann aber Elo - 500 == startet also wie gewohnt bei 0 punkten.

muss mir da für den 8er noch was einfallen lassen. vielleicht kann man die ja auch in gruppen zusammenfasssen. weiß nicht wie stark dann die genauigkeit darunter leidet. 40.320 berechnungen sind natürlich zu viele. auch wenn eine berechnung sehr schnell geht ist das verschwendete leistung.
avatar
Till
Admin

Anzahl der Beiträge : 254
Ort : In der ''Hello World''
Laune : vorfreudig ;)

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  waschi am Do 9 Sep 2010 - 19:50

Also ich hab schon eine Idee wegen dem Elo-Wert. Der sollte nicht zu stark Inflationär sein, daher werd ich bei der Berechnung eine Grenze von 250 einbauen (bei Schach ist der Wert bei 400) und ab einer Elo-Differenz von 500 wird das Spiel nicht mehr gewertet. Außerdem brauch ein Spieler bei der neuen Formel eine Mindestanzahl von Spielen für einen Elo-Wert, werd ich vom Schach übernehmen.

Bei einem 8er Spiel funktioniert meine Klasse übrigens auch... bei gleichem Elo-Wert würden dann die ersten 4 Spieler Plus machen und die letzten 4 Spieler Minus an Elo. Das Problem ist dann nur, dass durch ein 8er Spiel und einen Sieg der Sieger überproportional viel Elo-Punkte gewinnen würde, da er ja 7 andere Spieler besiegt hat.

Wird der Elo-Wert zurückgesetzt wie du es vorschlägst wäre das System zu stark inflationär, das wäre nicht gut.

Es werden keine 40.000 Berechnungen gemacht, wer kommt den auf sowas? Vielleicht versteh ich ja das Elo-System falsch, aber bei 4 Spieler sind es 6 Berechnungen...

Wieso arbeitest du noch mit WinForms?
avatar
waschi

Anzahl der Beiträge : 54
Ort : Hauptstadt
Laune : Heiter bis wolkig

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  waschi am Do 9 Sep 2010 - 20:14

So ich denke jetzt hab ich es, der Elo-Wert wird nur bis zu einer Differenz von 500 Elo-Punkten berechnet. Bei 0 Elo-Punkten wird dann ein Reset durchgeführt. Deutlich zu sehen im Bild: Nach 1000 Spielen hat sich der Elo-Wert dem Skill angenähert.

Anzumerken ist noch, dass beim Elo-System die mittlere Spielstärke immer gleich bleibt. Erst wenn neue Spieler beitreten ändert sich der mittlere Elo-Wert. D.h. wenn in der "Simulation" die Spieleranzahl verdoppelt wird, dann wird sich mit der Zeit auch der höchste Elo-Wert noch weiter erhöhen, da "mehr im Pool" ist. Das ist auch wichtig, da manche Spieler mit einer hohen Elo-Zahl evtl aufhören zu spielen und deren Punkte damit "verloren" wären, das wird aber durch Neuanmeldungen ausgeglichen.



Für das Spiel: Der Elo-Wert sollte erst ab einer gewissen Anzahl an Spielen angezeigt werden. Derzeit startet jeder mit 500 Elo-Punkten. Bei einer Startmenge von gerankten Spielern kann das System aber deutlich verbessert werden.

Dann ergibt sich der Elo-Wert nämlich wie beim Schach nach 7 Spielen aus dem Durchschnittswert der anderen Spieler. Kann ich gerne implementieren und ist deutlich vom Vorteil, das setzt aber voraus, dass bereits einige Spieler geranked sind, ansonsten müssen sich die ersten Spieler sehr langsam nach oben kämpfen ^^ Deswegen sollte sich das System nach einer bestimmten Anlaufphase von selbst umstellen, aber das ist kein Problem.

avatar
waschi

Anzahl der Beiträge : 54
Ort : Hauptstadt
Laune : Heiter bis wolkig

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  Zephir am Do 9 Sep 2010 - 22:22

waschi schrieb:Jetzt werd ich auch noch gezwungen wieder VS2008 zu nehmen... Und dabei hat mein VS2010 soviele tolle Plugins... Steig auf VS2010 um Till! Ein bischen mehr Kommentare und Ordnung wäre auch nicht schlecht...

Ich konnte das ganz einfach übertragen auf Visual C# 2010 Express.

waschi schrieb:
Es werden keine 40.000 Berechnungen gemacht, wer kommt den auf sowas? Vielleicht versteh ich ja das Elo-System falsch, aber bei 4 Spieler sind es 6 Berechnungen...


Ja, ich hab mich vertan, die Anzahl der Berechnungen ist nicht n!, sondern n-1 + n-2 + ... + 1 (für n Spieler)
avatar
Zephir

Anzahl der Beiträge : 48
Ort : In ur interwebz, stealing ur cookiez!
Laune : Wartend...Wartend...Wartend...

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  waschi am Fr 10 Sep 2010 - 6:37

Warum sollte es nicht möglich sein das auf VS2010 zu konvertieren? Hab ich auch gemacht, aber dann kann ich Till das Projekt nicht mehr zusenden bzw. es würde auch im Versionsverwaltungssystem inkompatibel werden wenn ich eine Änderung commiten würden Wink
avatar
waschi

Anzahl der Beiträge : 54
Ort : Hauptstadt
Laune : Heiter bis wolkig

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  Till am Fr 10 Sep 2010 - 9:26

kanste ruhig in 2010 umwandeln. hab ab nächster woche auch das neue. soo viel anders ist da auch nich.
kann die datei auch mit VS expr. 2008 öffnen & verwenden, selbst wenn du sie als 2010er gespeichert hast.
avatar
Till
Admin

Anzahl der Beiträge : 254
Ort : In der ''Hello World''
Laune : vorfreudig ;)

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  waschi am Fr 10 Sep 2010 - 9:34

Till schrieb:kanste ruhig in 2010 umwandeln. hab ab nächster woche auch das neue. soo viel anders ist da auch nich.
kann die datei auch mit VS expr. 2008 öffnen & verwenden, selbst wenn du sie als 2010er gespeichert hast.

Ja, du kannst aber mit VS2008 keine Projekte mehr von VS2010 öffnen. Der Quelltext ist eh nur Text, den kannste mit allem öffnen... Wenn du magst stell ich dir meine VS2010-MSDN-Version zur Verfügung, kannste dir direkt bei MS runterladen wenn du willst.

Und es ist wirklich anders: Es sind die Plugins, die das Arbeiten mit VS2010 einfach bequemer machen.

Must-Have sind dabei (geordnet mit dem Besten beginnend)
- VS10x Code Map
- Productivity Power Tools (Hier müssen aber in den Optionen 2 Sachen deaktiviert werden, die nervig sind)
- Snippet Designer
- Code Scrap Window
avatar
waschi

Anzahl der Beiträge : 54
Ort : Hauptstadt
Laune : Heiter bis wolkig

Nach oben Nach unten

Re: Punktesystem - Testprogramm

Beitrag  Gesponserte Inhalte


Gesponserte Inhalte


Nach oben Nach unten

Nach oben


 
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten