Ergebnis 1 bis 20 von 45

Thema: Progforum Contest 2013 - Teenage Mutant Ninja (?) Turtles

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Progforum Contest 2013 - Teenage Mutant Ninja (?) Turtles

    Willkommen, liebes Progforum, zu unserem alljaehrlichen Programmier-Contest !

    Dieses Jahr haben wir (d.h. Jeez, DFYX und ich) uns etwas ganz Besonderes ausgedacht.
    Um allen gerecht zu werden, haben wir uns ueberlegt, dieses Mal sowohl etwas Programmiertechnisches als auch etwas Kuenstlerisches zu machen.

    Ziel ist es, einen Interpreter fuer unseren speziellen Turtle-Graphik-Dialekt zu schreiben und damit ein aesthetisch besonders ansprechendes Bild (inklusive des Turtle-Graphik-Codes) zu generieren.
    Hierzu bieten sich L-Systeme an, muessen aber nicht verwendet werden.

    Wie letzten Endes die Graphiken erzeugt werden, ist jedem selbst ueberlassen. Hauptsache ist, man kann sie am Ende hier im Forum praesentieren. Valide Moeglichkeiten sind so z.B.

    • C++ Programm mit SDL / OpenGL
    • Javascript und / oder HTML5
    • Bashscript, das eine SVG-Datei erzeugt
    • DCPU16 Assembler, welches eine Portable Pixmap Datei ausgibt
    • ... was euch sonst noch einfaellt


    Der Contest besteht aus drei abstimmbaren Teilen.
    1. Der Sourcecode des Interpreters - wie elegant und womit setzt ihr den Turtle-Graphik-Interpreter um?
    2. Die Aesthetik eueres eingesendeten Beispielbildes
    3. Die Art und Weise, wie ihr zum Code eueres Beispielbildes gekommen seid.

    Gewinner ist derjenige, der in der Summe aller drei Multiple-Choice-Umfragen die meissten Prozentpunkte erreicht.

    Einsendeschluss ist voraussichtlich Sonntag, der 14. April. Anschliessend gibt es zwei Wochen Zeit für die Abstimmung.

    Jeder Interpreter gilt als eigenstaendige Einsendung. Es steht allerdings jedem frei, mehrere Einsendungen zu machen oder mehrere Bilder zu seinem Interpreter abzugeben. Es zaehlt dann in allen Kategorien das jeweils beste Ergebnis.

    Dieses Mal wird es sogar etwas zu gewinnen geben. Jeez, DFYX und ich haben ein paar Steam-Keys gesponsort (wenn ihr euch anschliessen wollt, weitere Keys sind gerne willkommen), aus denen die Gewinner waehlen koennen.
    Der erste Platz darf sich 3 Keys aussuchen, der zweite Platz zwei Keys und der dritte Platz bekommt noch einen Key. Bisher haben wir folgende Keys im Angebot:

    • Bastion
    • Cargo! The Quest for Gravity
    • Cave Story +
    • 2x Crayon Physics Deluxe
    • 2x Cogs
    • Defcon
    • 2x Dungeon Defenders + DLC
    • Gemini Rue
    • Gish
    • Humble Bundle 3
    • 2x Machinarium
    • Multivinia
    • NightSky
    • Resonance
    • 3x Superbrothers: Sword & Sorcery EP
    • Swords and Soldiers HD
    • The Binding of Isaac
    • Titan Quest (German)
    • Trine
    • Warhammer 40,000: Dawn of War


    Und damit ihr auch wisst, was euerer Interpreter mindestens koennen muss, hier alle notwendigen Befehle fuer die Turtle-Graphik:
    Code:
    2D Turtle-Grafik, optional auf 3D (oder mehr) erweiterbar
    
    F  : move forward $length units while drawing
    X  : move forward $length units without drawing
    *  : multiply length with $factor
    /  : divide length by $factor
    +  : turn left by $angle degrees
    -  : turn right by $angle degrees
    >  : multiply angle with $factor
    <  : divide angle by $factor
    !  : increase $factor by 1
    ?  : decrease $factor by 1
    [  : push all states to stack
    ]  : pop all states from stack
    0-7: line colour, Palette: black, red, green, yellow, blue, magenta, cyan, white
    
    Es duerfen auch zusaetzliche Operationen verwendet werden.
    (z.B. Laden von RGB-Farbpaletten, etc)
    
    Startzustand: 
    $factor: 2
    $length: 1
    $angle: 90
    Facing up at start
    Und nun viel Spass mit unserem Contest.

    Geändert von Ineluki (05.04.2013 um 23:01 Uhr)

  2. #2
    Kleine Anmerkung:
    Code:
    [...]
    0-8: line colour, Palette: black, red, green, yellow, blue, magenta, cyan, white
    [...]
    Das muss "0-7" heißen. ^^

    Aber dass mit dem Stack versteh ich noch nicht so ganz. Heißt das, wenn ich z.B. "[FFF]" eingebe, dass er dann die drei Schritte nochmal ausführt? Kann man dann mit "]" den Stack nochmal ausführen? Also "[FFF]]"?

    Ansonsten: Sehr netter Wettbewerb. Ich versuch da auch mal was zu basteln. Ich hoffe, dass Java trotz der ganzen Sicherheitsbedenken erlaubt ist. ^^

  3. #3
    Sollte 0-7 heißen, ja.

    Stack ist so zu verstehen, dass bei "]" die Position und Orientierung des "Stifts", sowie $factor, $length und $angle wieder auf die Werte gesetzt werden, die sie beim zugehörigen "[" hatten.

    "F/[+F]-F" würde also zum Beispiel ein T zeichnen. (Gibt übrigens ein schönes Fraktal, wenn man rekursiv jedes F außer dem ersten wieder durch diese Zeichenkette ersetzt)

  4. #4
    ah, ok. Also leichter, als ich dachte. Danke

  5. #5
    Noch zwei Dinge, die mir grade so aufgefallen sind:

    Ihr solltet für euch selbst definieren, was passiert, wenn jemand eine ungültige Operation ausführen will. Also etwa durch 0 teilen oder von einem leeren Stack poppen. Ich für meinen Teil werde solche Befehle schlicht ignorieren und eine Warnmeldung ausgeben. Ähnliche Überlegungen sollte man auch für die Multiplikation mit 0 anstellen, weil sich der Stift anschließend nicht mehr bewegen bzw. nicht mehr rotieren lässt.

    Außerdem wird natürlich auch die Farbe auf den Stack gepusht. Das hatte ich vorhin vergessen.

  6. #6
    Wie soll der Code eingelesen werden? Command-Prompt, Textdokument oder dergleichen?

  7. #7
    Bleibt euch überlassen. Insgesamt habt ihr so ziemlich überall, wo wir nichts vorgegeben haben, freie Hand.

  8. #8
    mmh, Programm steht, aber ich bin zu untalentiert für solche Grafiken >_<

  9. #9
    Wie sollen die Einsendungen eingeschickt werden?

  10. #10
    Bis jetzt war es immer so, dass die Ergebnisse in einem Thread präsentiert wurden waren.

  11. #11
    Genau. Einsendungen hier in den Thread. Die Umfragen kommen dann in jeweils separate Threads, ebenso wie die Siegerehrung.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •