Grafisches Programmieren

Hey, da ich nicht genau wusste, in welche Kategorie ich das Thema einordnen soll hab ich es einfach mal hier geschrieben.

Ich bin beim Bundeswettbewerb Informatik in die zweite Runde gekommen und muss 2 von 3 Aufgaben bearbeiten, die alle eine grafische Ausgabe erfordern.
Leider kann ich in keiner Programmiersprache, die ich bisher gelernt habe wirklich grafisch programmieren und wollte mal fragen, welche Programmiersprache dafür am besten geeignet ist.
Erlaubte Programmiersprachen sind:
C/C++, C#, Delphi, Java, Lisp, ML, Objective-C, Pascal, Perl, Prolog, Python, Ruby, Scala, …
(Von denen kann ich nur Python und das auch nicht grafisch, aber ich hab 4 Monate Zeit um mich einzulesen…)

Link zu den Aufgaben (falls es von Nöten ist): http://www.bwinf.de/fileadmin/templates/bwinf/aufgaben/bwinf34/aufgaben342.pdf

Würde mich freuen, wenn ich Feedback bekomme,
Danke! :slight_smile:

ERGÄNZUNG:

Ich habe zusätzlich noch eine Frage.
Die Aufgabe 3 wird in solch einem Format vorgegeben, wie hier zu sehen: http://www.bundeswettbewerb-informatik.de/fileadmin/templates/bwinf/aufgaben/bwinf34/A3_beispiele.pdf

Wie liest man denn bitte soetwas in irgendeiner Programmiersprache ein?..

Ich habe das mal überflogen und denke, die Grafiken sind keine wirklichen Probleme und so einfach, dass die Darstellung deine Entscheidung nicht beeinflussen sollte. Die einfachste Lösung wäre eventuell, ein paar Basisgrafiken als Datei zu erstellen und diese dann auf dem Bildschirm zu positionieren. Ich mag die Microsoft Sprachen VB.NET und C#, weil die einfach zu erlernen sind, die Entwicklungsumgebung kostenlos ist und es auch massig Beispiele und User im Netz gibt, was viel Hilfe verspricht. Delphi oder Pascal ist zum Lernen sicher auch nicht verkehrt, aber glaub nicht kostenlos und weniger verbreitet. C++ halt ich als Einstiegssprache für zu komplex. Von Scriptsprachen wie Perl, Python oder Ruby würde ich absehen.

Die Bilder mit den Yamyams sind meines Erachtens falsch bzw. können so nicht ohne weitere Bedingung aus Textdateien erzeugt werden. Die Begründung ist einfach, in den Textdateien gibt es 3 Zeichen #, E[xit] und Leer, die Grafiken zeigen aber neben Exit und Leer noch mindestens 2 verschiedene Arten von Mauersteinen.

Das die Grafiken keine Probleme sind ist mir auch klar und dass sie einfach sind auch
Nur habe ich halt absolut 0 Ahnung von Objektorientiertem Programmieren, aber ich denke, dass ich mir mal CSharp(#) anschaue.

Bei der Aufgabe 2 mit der Animation bin ich noch stutzig…

Aufjedenfall schonmal danke :slight_smile:

Deine Grafiken sind einfach und statisch, also musst du die nicht komplex und dynamisch was tolles verändern wie eine Welle im Meer oder wandernde Dünen oder einen maulenden Mund. Wie du dann diese Pakete dann von Dach zu Dach wirfst ist von der grafischen Erstellung des Paketes relativ unabhängig. Da die Grafiken so einfach sind, kannst die sicher auch mit ein paar Zeilen Code dynamisch erstellen. Wie gesagt, um die Grafiken würde ich mir keine Sorgen machen :). Schau mal unter http://www.w3schools.com/svg/svg_examples.asp wie man einfache Verkorgrafiken mittels SVG erstellt, und solche Tools hast eigentlich auch in jeder höheren Programmiersprache.

Mir ist noch etwas eingefallen. Deine Yamyams Aufgabe erinnert doch sehr an die Sokoban Spieletypen wie Boxworld http://spiele.liliput.ch/Box_World/Box_World.aspx . Hier könnte man die Situation ähnlich mit einer Textdatei beschreiben. Ein Raum mit einem Arbeiter (Yamyam) ist durch Wände (#) begrenzt und es gibt freie Wege (leer). Da gibt es aber noch n Kisten (K) auf Startpositionen (S), die an vorgegebene Zielpositionen (Z) geschoben werden müssen. Der Arbeiter kann immer nur eine Kiste schieben und er muss hinter die Kiste können, um sie zu schieben. Kisten in Ecken sind somit tot, das Spiel ist verloren. Ich denke, wenn du die Aufgaben aus dem Bundeswettbewerb programmiert hast, dann ist das Schreiben einer Lösung für Boxworld eine einfache weitere Übung :smiley: