
Hallo liebe Comunity
Das PureBasic-Wettbewerbskomitee freut sich, euch den ersten
gemeinsamen Wettbewerb für das PureBoard, die PureBasic-Lounge
und das internationale PureBasic-Forum vorstellen zu dürfen.
Mitmachen darf jeder, egal ob er nun einen Doktor der Informatik
hat oder erst seit ein paar Monaten mit PureBasic progammiert*
Du musst auch nicht alle Aufgaben lösen wenn du keine Zeit
oder Lust hast.
Bereits ein Beitrag zu einer Aufgabe wird gewertet.
Zum Schluss entscheidet natürlich die Gesamtpunktzahl.
Die unterschiedlichen Aufgaben und Themenbereiche sowie das
ausgeglichene Punktesystem werden dafür sorge tragen, dass
wirklich jeder mit ein wenig Talent hier eine Chance bekommt.
*Mitglieder des Wettbewerbskomitees dürfen nur außer
Konkurrenz mitmachen, d.h. Ihre Beiträge werden nicht bewertet
und sie können auch keine Preise gewinnen.
Näheres zum Punktesystem
Die Punktevergabe übernimmt das Wettbewerbskomitee,
nach dem Wettbewerb bekommt die Community jedoch
die Möglichkeit über die Vergabe eines Publikumspreises
abzustimmen.
Die Preise*
- 1. Platz - Eine funkelnagelneue topaktuelle USB2.0 Festplatte
Silver Line von OMEGA mit 300 GB, 7200 rpm , verwendbar für
PC (2k, XP) und MAC - 2. Platz - Ein Amazon-Gutschein (wahlweise .de oder .com)
über 25 Euro - 3. Platz - Ein Amazon-Gutschein über 15 Euro
- 4. Platz - The longest Journey und Morrowind (PC-Spiele)
- Sonderpreis (bester Einzelbeitrag) - Ein Amazon-Gutschein über 30 Euro
- Publikumspreis - Ein Amazon-Gutschein über 20 Euro
Die USB2.0 Festplatte wird erst ab mindestens zehn Teilnehmern vergeben.
Der Einsendeschluss
Alle Beiträge müssen bei uns am 20. März 2006 bis spätestens
23:59 Uhr eingegangen sein.
Die Aufgaben
Die folgenden Aufgaben warten auf ihre Bearbeitung*:
*Es ist darauf zu achten, dass für eine Teilnahme am
Wettbewerb nicht unbedingt alle Aufgaben bearbeitet werden
müssen, am Ende zählt nur die Anzahl der Punkte.
Zudem gibt es noch den Sonderpreis für den besten Einzelbeitrag
und den Publikumspreis.
1.
Christkind in Nöten
Das Christkind, gerade auf dem Weg zurück in den Winterwald,
bemerkte gerade noch rechtzeitig, dass es während seiner Tour
wohl ein Kind vergessen hatte zu besuchen. Um diesem Kind
denoch rechtzeitig vor Heilig Abend eine Freude bereiten zu
können, beschließt es sofort Kehrt zu machen und auf dem
schnellst möglichen Weg das Haus des Kindes aufzusuchen um
ihm ein paar der übrig gebliebenen Geschenke unter den
Weihnachtsbaum zu legen.
Deine Aufgabe ist es nun, dem Christkind bei der Suche nach
der schnellsten Strecke zu helfen und dabei so anschaulich wie
möglich die Funktionsweise des A*- oder auch alternativ
des Dijkstra-Algorithmus (Achtung: hier lauern eventuelle
Extrapunkte) darzustellen.
Bei dieser Aufgabe wird weniger Wert auf die handwerkliche
Geschicklichkeit gelegt als vielmehr auf die Originalität und den
didaktischen Nutzen des Programmes.
2.
Meteorologie für Anfänger
In dieser Aufgabe geht es ganz um das Wetter, genauer gesagt um
das schöne Winterwetter. Programmiere eine schöne
Wettersimulation, es ist dabei ganz egal ob du jetzt einen
Schneesturm oder "leise rieselt der Schnee" simulierst. Du
kannst auch eine Multimeteo Simulation machen in dem alle
Wetter des Winters vorkommen.
Desweiteren ist es auch egal ob du das ganze in 3D machst oder
nur mit den Spritefunktionen arbeitest. Wichtig dabei ist nur, dass
es möglichst realistisch aussieht und rein mit den Mitteln von
PureBasic realisiert wurde.
Eine kleine Hürde noch....
Baue einen Mausfächer ein mit dem man die Schneepartikel, an
der Stelle an der sich der Fächer befindet, durch einen Windstoss
manipulieren kann.
3.
Oh Tannenbaum
Weinachten steht vor der Tür und nun braucht man für ein richtiges
Weinachtsfest ja auch einen geschmückten Baum.
Da das Christkind gerade anderweitig beschäftigt war (siehe Aufgabe 1)
musst du wohl oder übel das Schmücken des Baumes übernehmen.
Als kleine Hilfe hast du dir vorgenommen ein Programm zu schreiben
mit dessen Hilfe sich ein virtueller Weihnachtsbaum schmücken lässt.
Entwickle dieses Programm, ob du dies mit 2D oder 3D machst bleibt
dir überlassen.
4.
Ordnung muss sein
Toll, du hast ne Menge Bücher bekommen! Nun, es sind aber so
viele, dass du sie nicht einfach so in dein Büchergestell
schmeissen kannst, da sie so viel zu viel Platz beanspruchen!
Du überlegst dir also, wie die Bücher am besten in das Regal
eingeordnet werden sollen. Dabei kannst du zusätzlich die
einzelnen Bretter des Regals in 4cm Schritten nach oben oder
unten verschieben.
Über den Büchern hin zum nächsten Brett muss mindestens ein
Abstand von 2cm vorhanden sein und die ersten Bücher
kommen ebenfalls auf ein Brett.
Schreibe ein Programm, dass die minimale Gesamthöhe
berechnet und in cm ausgiebt.
Daten:
Brettdicke = 1.5cm
Brettlänge = 1.0m
Alle Bücher haben Einheitsbreite = 1.5cm
die Tiefe der Bücher spielt keine Rolle!
Die Bretter können wie schon oben erwähnt in 4cm Schritten
angebracht werden, d. h. das Erste auf dem Boden bei 0cm,
dann alle restlichen Höhen die durch 4cm teilbar sind.
Abstand des höchsten Buchs zum nächstoberen Brett >= 2cm
Die Bücher, die du einordnen sollst, bekommst du als Datei
"books.txt". Diese wird den folgenden Grundaufbau habenIn der ersten Zeile steht die Anzahl der Bücher, jede folgendeCode: Alles auswählen
5 115 334 221 775 123
Zeile beschreibt die Höhe eines Buches in Millimeter (mm).
Da du in einem großen Schloss wohnst und der angrenzende
Wald noch genügend Bäume umfasst, mangelt es dir weder an
Höhe noch an Brettern.
5.
Karaoke-Star
Weihnachten ist toll. Du bekommst ne Menge toller Geschenke
(und nicht nur Bücher). Dass du selbst auch Geschenke kaufen
musst, ist dir viel zu spät eingefallen; nun haben aber leider schon
alle Läden zu. Um zu verhindern, dass deine kleine Schwester
deine Geschenke einverleibt, beschließt Du, ihr eine Karaoke-
Maschine zu programmieren. Natürlich im weihnachtlichem Flair
mit tollen Weihnachtsliedern und einer sehr einfachen Bedienung.
Dass damit deine Schwester deinen Rechner belagert, wird dir
erst viel später auffallen...
...zu spät.
Schwerpunkt dieser Aufgabe ist ein netter Look der Anwendung,
aber vor allem eine intuitive Programmführung, der auch nicht-
technisch-versierte Benutzer folgen können.
6.
Schneeflöckchen, Weißrö...
Winterzeit, Winterzeit, alles ist weiss.. Aber warum ist das so?
Wegen dem Schnee, danke, setzen. Aber wie sieht eine
Schneeflocke aus? Entwerfe ein Programm, dass möglichst
realistische Schneeflocken stark vergrößert anhand eines
zufälligen Startwertes (Seed) berechnet.
Die berechneten Schneeflocken müssen dabei eine Größe
von mindestens 256x256 Pixel haben.
Wieder einmal ist es egal ob du diese in 2D oder 3D angehst,
verboten sind lediglich externe Grafiken jeder Art.
7.
Das Lager vom Nikolaus
Stell dir vor du bist der Weihnachtsmann.
Jedes Jahr produzieren deine Elfen und Zwerge neue Geschenke
für alle lieben Kinder der Welt. Nur werden es leider jedes Jahr
mehr (kleine) Menschen auf dieser Welt und du bekommst
langsam aber sicher ein kleines Lagerproblem.
Erstelle einen virtuellen Lagerraum auf dem Bildschirm und einen
Stapel unterschiedlich geformter Geschenkkartons.
Die Geschenkkartons müssen mit der Maus verschiebbar sein.
Ziel des Minigames muss es sein so viele Geschenkkartons wie nur
möglich in das Lager zu verschieben.
8.
Winterzeit, Schlittenzeit
Da bei dir dieses Jahr wieder einmal kein Schnee liegen geblieben
ist, beschließt du einen Schlittenfahrsimulator zu programmieren.
Aber aufgepasst! Du bist dir ziemlich sicher, dass es dieses Jahr
nicht nur keinen Schnee sondern - wie schon die letzten sieben
Jahre davor - auch keinen neuen Computer zu Weihnachten geben
wird. Versuche deshalb deinen Simulator so abwärtskompatibel
und retro-style-mäßig wie möglich zu halten. Hier überzeugt nicht
die Anzahl der Pixel sondern der Spielspass.
9.
Himmelfahrtskommando
Das ist gar nicht lustig, der Weihnachtsmann hat wieder mal
Lemminge vor den Schlitten gespannt. Schreibe ein Programm,
in welchem der Weihnachtsmann samt Schlitten und Lemminge
immer einfach vorwärts von oben links nach rechts fährt, dabei
soll man aber mit Linien, die man zur Laufzeit zeichnet, den
Untergrund festlegen können. Der Weihnachtsmann fährt also
immer nach rechts, folgt aber immer dem Untergrund, fällt also
auch solange er keinen hat... Dabei soll der Schlitten auch
aufwärts und abwärts fahren können, solange er Untergrund hat.
Also einfach ein Programm, in dem man Linien zeichnen kann,
wo der Weihnachtsmann ohne fliegen zu können mit Lemmingen
und den Linien als Hintergrund von links nach rechts fährt.
Der Schlitten des Weihnachtsmann muss immer Bodenkontakt
halten, ansonsten fällt er runter.
Kleines Bsp:Das wäre ein Beispielterrain welches man zur Laufzeit zeichnenCode: Alles auswählen
**-### -> ________ ______ _____/ \________/ **: Schlitten #: Lemming ->: Fahrtrichtung
können muss, danach fährt der Schlitten von oben links bis zum
Abgrund, fällt runter, fährt weiter, fährt hoch, fährt weiter, fährt
hoch, fährt weiter bis ans Ende des Bildschirms.
Es soll also dynamisch berechnet werden, wo der Schlitten
durchfahren wird.
10.
Newsmachine
Du bist es Leid! Es ist Winter und es gibt so gut wie nur noch
schlechte Neuigkeiten. Anstatt dich aber noch weiter in deine
Winterdepression zu flüchten, beschließt du etwas dagegen zu
unternehmen, setzt dich vor deinen Computer und beginnst ein
Programm zu schreiben welches aus einer Anzahl von Nachrichten
alle schlechten herausfiltert und nur die guten durchlässt.
Die Nachrichten liegen dabei in einer Datei mit folgendem Aufbau
vor.
Hier schauen wir auch mal etwas genauer in den Code, eineCode: Alles auswählen
=Nachrichtentitel auf einer Zeile, führendes Gleichheitszeichen Nachricht mit beliebig vielen Zeilen ... =2.er Nachrichtentitel 2. Nachricht ...
besonders raffinierte oder witzige Vorgehensweise wird
garantiert belohnt.
Die Regeln
Weitere Spielregeln für den PB-WinterWettbewerb:
- Der Sourcecode muss bei Abgabe offengelegt werden.
- Kein ausufernder Einsatz von Assembler.
- Nur die Standard-Libraries welche mit PureBasic
installiert wurden sind zugelassen.- Keine systemfremden DLLs wie z.B. FMOD und
dergleichen, d.h. nur DLLs die mit ziemlicher Sicherheit
auf jedem Rechner installiert sind.- Das Programm muss zu 100% aus eigener Feder stammen.
- Es können beliebig viele der zehn Aufgaben bearbeitet werden.