Programmierwettbewerb - for fun... ?!?



  • Moin,

    ich hatte gestern eine lustige Idee...
    Wie wäre es wenn verschiedene Leute jeweils eine 'Spiel-Engine' programmieren, die dann bei dem Treffen gegeneinander antreten?!? (also die engines, nicht die Leute... :D)

    Was die Spiele angeht, könnte man z.b. eines der folgenden nehmen:
    - Tic tac toe (wohl das simpleste) - RB (=Rundenbasiert)
    - Vier gewinnt - RB
    - Schiffe versenken - RB
    - Snake - EZ (=Echtzeit)
    - Bomberman - EZ
    - Schach (wohl das umfangreichste) - RB
    - eigenes Spielprinzip - RB/EZ
    - etc...

    Wenn man sich für ein Spiel entschieden hat, kann ja jemand ein grafisches gerüst bauen, dann brauchen die anderen Teilnehmer wirklich nur die Engine bereitstellen und müssen sich nicht mit unnötigen dingen aufhalten. (Wobei natürlich ein paar Bedingungen gestellt werden, wie daten behandelt werden, etc...)

    Bei RB Engines hätte man keinen so großen aufwand, verschiedene Engines miteinander zu kombinieren... notfalls kann man ja eine menschliche Komponente als 'Datenüberträger' nutzen, die dann halt immer die Daten von hier nach da übertragen 😉
    Bei Spielen, die in echtzeit laufen bräuchte man allerdings noch eine 'Mutteranwendung' in die man dann die engines einbauen müsste...
    Wie genau alles später funktionieren soll, muss man sowieso erstmal diskutieren... deshalb erstmal genug von mir. 🙂

    Was haltet ihr von der Idee?!?

    P.S. notfalls verschieben, wenn falsches Unterforum 🤡

    ndT Lupo

    Wir leben alle unter demselben Himmel, aber wir haben nicht alle denselben Horizont.
    ^Konrad Adenauer^



  • Lustige Idee, aber es wäre geschickter, sowas "on site" zu hacken... denn Du kannst nicht sicherstellen, daß es genug Vorbereitung gibt, und dann hat jemand eine 100%-Lösung, einige 30%, viele gar nix, das ist doof.

    Vom Aufwand her wäre sowas wie Tic Tac Toe sicherlich angemessen...



  • Tic Tac Toe ist meiner Meinung nach zu einfach. Die paar Möglichkeiten, die es für ein Spiel da überhaupt gibt kann man in ein paar Minuten von Hand kodieren. Eine Stufe mehr, zum Beispiel was ähnliches wie 4 gewinnt dürfte es schon sein. Sonst spielen alle Programme unentschieden.



  • Marc++us schrieb:

    denn Du kannst nicht sicherstellen, daß es genug Vorbereitung gibt, und dann hat jemand eine 100%-Lösung, einige 30%, viele gar nix, das ist doof.

    Sicher, das muss so gut wie möglich verhindert werden...
    Deshalb würde ich einen geeigneten Zeitrahmen setzen, in dem die Projekte fertig sein müssen... (bis einen monat vorm Treffen, oder so)
    Wenn zu diesem Zeitpunkt nicht genug Projekte eingereicht wurden (werden halt irgendwo gesammelt) dann kann man den Wettbewerb abblasen.
    Wenn aber genug Engines eingegangen sind, kann man denjenigen die noch nicht fertig sind, trotzdem die möglichkeit geben bis zum Forentreff fertig zu werden.
    So hätte man im schlimmsten Fall trotzdem genug Projekte, damit es ein interessanter Wettkampf wird 😃

    Das mit Tic Tac toe könnte man wirklich direkt beim treffen machen... da kann man ja alle stellungen errechnen/ notieren und am ende sollten in 99% der Fälle wirklich nur Unentschieden auftreten :p

    Ich hatte ja auch hauptsächlich an Vier Gewinnt gedacht, aber mir ist gerade aufgefallen das es schon einiges dazu im Netz gibt...
    Man bräuchte quasi ein neues, rundenbasiertes (weil einfach leichter zu entwickeln) Spielprinzip, damit alle den gleichen Wissensstand haben, wenn die Projekt-Entwicklungsphase anfängt.

    Z.B. eine vereinfachte Schachvariante, mit weniger figuren (nur Turm, Läufer, Springer... keine bauern, dame, könig)
    wo derjenige gewinnt, der seinen Gegner auslöscht.
    auf einem kleiner Spielfeld, versteht sich...

    Ich kann ja über WE mal über Spielprinzipien nachdenken... vielleicht habe ich ja eine Eingebung... 🤡

    ndT Lupo

    Wer mir eine Bibel schenkt, verschenkt Papier.
    unbekannt



  • Lupo4u2 schrieb:

    Man bräuchte quasi ein neues, rundenbasiertes (weil einfach leichter zu entwickeln) Spielprinzip, damit alle den gleichen Wissensstand haben, wenn die Projekt-Entwicklungsphase anfängt.

    Der Nachteil dabei ist, daß man dann keine Erfahrung hat, wie sich das Spiel spielt. Man müßte also erstmal jemanden finden, der mal ein paar Runden mitspielt. Das ist manchmal garnicht so einfach. Beim wpc war mal sone Aufgabe dabei, da startetetn schwarz und weiß sogar in unterschiedlichen Ausgangssituationen und hatten afair auch unterschiedliche Ziele. Resultat war, daß keiner auch nur versucht hat dafür ne KI zu schreiben.



  • Lupo4u2 schrieb:

    Deshalb würde ich einen geeigneten Zeitrahmen setzen, in dem die Projekte fertig sein müssen...

    Das Wort "müssen" passt sicherlich nicht zum Rahmen dieser Treffen.



  • Ich hatte vor vielen Jahren mal so eine KI-Aufgabe auf dem CPC464 in einer Computerzeitschrift, mit einem Programm namens "Minischach".

    Feldgröße 4x4

    Jeder Spieler hat 4 Bauern. Gezogen wird 1 Feld nach Vorne. Geschlagen wird schräg 1 Feld.

    Wenn man einen Bauern in die letzte Reihe des Gegners bringt, wandelt sich dieser in eine Dame um. Die Dame schlägt diagonal/längs, beliebig weit.

    Die Komplexität der Züge und der Varianten ist relativ überschaubar.

    [Die Aufgabe damals war, den Computergegner lernfähig zu machen, d.h. er konnte gar nix, aber er speicherte sich erfolgreiche und erfolglose Stellungen/Züge. Mit jedem Spiel wurde er besser. War sehr interessant, das Programm war nicht ganz schuldlos an meinen schlechten Lateinnoten.]



  • Jester schrieb:

    Der Nachteil dabei ist, daß man dann keine Erfahrung hat, wie sich das Spiel spielt.

    Richtig. da kommen ja dann die individuellen Vorstellungen/ Erfahrungen zum vorschein, die jeder selbst entdeckt/ entwickelt.
    Das ist, wie wenn du einem Freund ein Schachbrett gibt, der vorher noch nie schach gespielt hat.
    Du sagst ihm was die einzelnen Figuren können und was das Ziel des spiels ist.
    Danach wird er die ersten Spiele spielen. Vermutlich immer gegen dich verlieren, aber bei jedem Spiel etwas neues lernen.
    Irgendwann hat er eine Strategie entwickelt, mit der gut spielen kann und er dich jetzt immer öfter besiegt.
    Aber irgendwann spielt er gegen jemand anderen und verliert haushoch, weil sein Gegner eine komplett andere Strategie verfolgte wie du und dein Kumpel muss wieder was dazu lernen um auch mal gegen den anderen zu gewinnen.

    So, viel text... Was ich damit sagen wollte ist, das natürlich jeder erstmal ein neues Spielprinzip austesten muss...
    Man kann nicht gleich mit der Programmierung anfangen sondern muss erstmal herausfinden, wie das Prinzip funktioniert, welche Möglichkeiten es gibt, und so weiter...
    Und dadurch, glaube ich zumindest, würden mehr unterschiede bei den einzelnen KIs deutlich werden.
    Je nachdem wie jemand eine Strategie verfolgt oder seine Taktik aufbaut.

    Marc++us schrieb:

    Das Wort "müssen" passt sicherlich nicht zum Rahmen dieser Treffen.

    Du hast recht.
    falsche Wortwahl, aber die Aussage sollte dennoch verständlich sein, weil sonst würde halt das eintreffen was du schon erwähnt hast. Das manch einer nur teilweise fertig ist, ein anderer gar nicht, etc...

    ndT Lupo

    *Kein Mensch kann ein reiner Spezialist sein, ohne im buchstäblichen Sinn ein Idiot zu sein.
    *
    ^George Bernard Shaw^



  • wenn interesse besteht, könnte ich ein spiel zusammenkloppen zusammen mit nen framework für tourniere und nem spieler, von dem ihr dann erben könnt, um mitzumachen.



  • Interesse hätte ich. Allerdings habe ich keine Lust da alleine rumzuprogrammieren. Wenn zur Lösung aber kleine Teams (2-3 Mann) zugelassen sind, könnte ich mir das gut vorstellen.



  • Jester schrieb:

    Interesse hätte ich. Allerdings habe ich keine Lust da alleine rumzuprogrammieren. Wenn zur Lösung aber kleine Teams (2-3 Mann) zugelassen sind, könnte ich mir das gut vorstellen.

    natürlich sind teams zugelassen. du kannst auch am freitag in einem team mitmachen und am samstag in nem anderen. der spaß dran ist ja nur das team-programmieren, jedenfalls hat mir das bei den letzten beiden malen viel spaß gemacht.
    edit: ich stelle nur das framework, das als ausgabe eine highscoreliste mit den eingespeisten klassen ist und definiere die spielregeln im rechner. über außenweltdinge, wann abgabe ist, ob man code auch gelegentlich veröffentlichen muss, ob man teams wechslen darf, da kann sich die gruppe schon einigen.



  • Klingt super!

    edit: moment mal, Freitag auch schon? Ich denke Du kommst erst am Samstag?



  • Jester schrieb:

    Klingt super!
    edit: moment mal, Freitag auch schon? Ich denke Du kommst erst am Samstag?

    ich habe meine termine am samstag bis auf einen absagen können und den letzten dürfte ich auch noch wegkriegen.
    ich fürchte, am freitag aber erst gegen 21:15h da zu sein.



  • volkard schrieb:

    Jester schrieb:

    Klingt super!
    edit: moment mal, Freitag auch schon? Ich denke Du kommst erst am Samstag?

    ich habe meine termine am samstag bis auf einen absagen können und den letzten dürfte ich auch noch wegkriegen.
    ich fürchte, am freitag aber erst gegen 21:15h da zu sein.

    Zum essen könntest es dann noch schaffen :p

    Ich komme erst gegen 18:40 am Bahnhof an, bis ich dann da bin und das essen dann fertig ist wird sicherlich so spät 🙂

    Und jo ich hätte auch interesse an dem Wettbewerb. Mit anderen zusammen bringts das ganz bestimmt 🙂

    BR
    Vinzenz



  • hab den samstag freiräumen können. und das framework ist soweit fertig und stabil. wenn ich heute früh noch dazu komme (ca. 3h) , baue ich noch ne wichtige bescheleunigung ein, wenn nicht, muss halt ein schneller prozessor benutzt werden.



  • Was ist mit den Ergebnissen? Hat sich am Sonntag noch etwas wesentlich verändert?



  • TactX schrieb:

    Was ist mit den Ergebnissen? Hat sich am Sonntag noch etwas wesentlich verändert?

    nein. das sind die letzten elo-punkte:

    UnnamedPlayer IV
    MIM
    1947.77

    Vorausschauer
    Felix/Christoph
    1771.73

    marlow1
    r0nny
    1724.58

    marlow2
    r0nny
    1702.91

    Speicherer
    Felix/Christoph
    1583.64

    3142
    4Muskeltiere
    1452.91

    Stoerer4
    Volkard
    1193.86

    LDOD
    Volkard
    1117.06

    Zuf4
    Volkard
    1070.25

    Zuf
    Volkard
    990.234

    Nachm
    Volkard
    765.49



  • ich hab nun im forum ein bisschen gestöbert und bin nun draufgekommen, dass es hier wirklich leute gibt, die wirklich eine ahnung haben von c#.
    ich kann mich leider nicht dazuzählen.
    in meinem informatik studium hab ich dieses semester c# dazubekommen, und habe vorher aber noch nicht wirklich viel damit programmiert.
    nun bekommen wir jede woche recht umfangreiche hausübungen, die jeweils immer positiv sein müssen. und bis jetzt habe ich alle so mehr oder weniger geschafft!
    diese woche lautet die aufgabe: 4 GEWINNT!
    und ich stehe im moment voll an. 😕
    keine ahnung, wie ich anfangen soll, wie der spieler wechsel funktioniert, etc.
    die hü is bis montag!
    ich weiß, dass man alle seine programme wirklich immer selber schreiben sollte, aber jetzt weiß ich echt nicht mehr weiter und die zeit is auch verdammt knapp.

    vielleicht gibt es ja jemanden, der mir in diesem einen fall wirklich aus der patsche helfen könnte.



  • ich hab meinen letzten stand mal gepackt und als http://www.volkard.de/4g.3.7z gespeichert.



  • VIELEN DANK fürs erste!
    blöde frage nur: in c# hast du die programmierung nicht, oder?
    wenn ja: könnte ich NUR die spiel programmierung ?? ohne spielerstände etc...


Anmelden zum Antworten