Empfohlen

Über die Prog-AG

Gegründet von Herrn Reinfeld und nun betreut von Herrn Peters ist die Prog-AG eine auf Programmierung und Informatik ausgerichtete Arbeitsgemeinschaft der Cäcilienschule Oldenburg.

Aktuelle Projekte beinhalten die Teilnahme an Informatikwettbewerben, die Veranstaltung eines eigenen Scratch-Wettbewerbes sowie einen eigenen Minecraft-Server.

Pong in Python mit PyGame

Dieser Beitrag erklärt Schritt für Schritt die Vorangehensweise um ein Pong Spiel mit Python zu entwickeln.

Benötigt wird die Bibliothek pygame, welche mit pip installiert werden kann.

Als erstes muss das entsprechende Modul importiert werden. Zusätzlich wird math zur Berechnung und random benötigt

Nun wird pygame initialisiert und eine clock erstellt, welches die Bildwiederholfrequenz des Spiels steuert und die Bewegung des Puks.

Als nächstes ist es Zeit ein Spielfenster zu erstellen. Alternativ kann der Titel des Fensters definiert werden. In diesem Falle hat das Fenster eine Größe von 1280×720 und den Titel PyPong 2.0

Eine GameLoop ist essentiell. Sie kann folgendermaßen erstellt werden.

In der GameLoop werden nun die FPS definiert und alle Objekte im Spiel aktualisiert. Dies sollte dazu führen, dass das Fenster nicht unmittelbar nach dem Starten des Programms abbricht und das man Objekte visuell darstellen kann.

WHITE stellt in diesem Falle die Farbe Weiß da. Folgende Farben werden im Laufe noch benötigt (RGB Format)

Nun müssen nach und nach relevante Events initialisiert werden. Zum Beispiel, ob der Benutzer das Spiel beenden möchte

Weitere Events werden noch folgen.

Es ist Zeit, die Paddles zu erstellen. Jedes Paddle besitzt eine X und Y Position, wobei die X Position optional durch eine allgemeine Konstante ersetzt werden kann, da diese absolut ist und nicht vom Benutzer verändert werden kann. height kann ebenfalls durch eine Konstante ersetzt werden. Zudem besitzt jedes Paddle für X und Y eine Variable, welche definiert, ob sich das Paddle bewegen kann (Ansonsten könne das Paddle aus dem Fenster raus bewegt werden) Der MovementFactor legt fest, wie schnell sich das Paddle bewegt.

Um das Paddle steuern zu können, wird eine InputMap benötigt. Diese speichert die momentan gedrückten Tasten. (W, S, UP, DOWN)

Mit Events werden die entsprechenden Inputs des Benutzers erfasst und in der InputMap gespeichert

Nun müssen die Paddles nur noch basierend auf den UserInput bewegt werden. Es muss zusätzlich noch überprüft werden, dass die Paddles sich nicht außerhalb des Spielfelds bewegen werden können

Nun ist es Zeit den Puck zu erstellen. Der Puck besitzt eine X und Y Position und einen MovementFactor

Um den Puck zum bewegen zu bringen, muss eine Richtung bestimmt werden und die X, sowohl als auch die Y-Position durch eine lineare Funktion aktualisiert werden.

Jetzt muss noch die Kollision des Pucks berechnet werden

Damit wäre das Pong Spiel fast fertig. Es muss nur noch überprüft werden, ob ein Spieler einen Punkt erziehlt hat

Der Score wird zuguterletzt noch auf dem Display angezeigt

Source code: https://github.com/IntenceYT/PyPong/

Minecraft in der Schule

Da es sich bei Minecraft „nur um ein Spiel“ handelt, ist der Einsatz eines Spiels in der Schule durchaus umstritten. Allerdings lässt sich selbst durch die härtesten Kritiker nicht bestreiten, dass bei Minecraft hauptsächlich kreativ und nicht destruktiv gespielt wird.

Deshalb stehen dem Einsatz von Minecraft als Physik oder Informatik-Sandbox-Spiel nur die Üblichen Probleme des Medieneinsatzes im Wege.
Konkret sollte der Einsatz von Minecraft nicht als Selbstzweck, sondern zur Vermittlung anderer Inhalte dienen:

Im Fall der Prog-AG sind dies direkt mehrere Inhalte:
– Aufbau von Serverstrukturen, Linux-Grundlagen
– Programmierung von Plugins in Java
– Koordination im Team – d.h. Abstimmung bei Bauprojekten
– Schaffen und Verwenden von Teamwerkzeugen

Das „Abdriften“ in ein rein kreatives Schaffen bzw. Spielen von Minecraft ist zwar nicht ausschließlich kritisch zu sehen, sollte aber trotzdem zielgebunden eingesetzt werden.

Hürden hierbei stellen jedoch die notwendige Serverstruktur und die notwendigen Lizenzen von Minecraft dar.

In der Prog-AG wird aktiv an einem Minecraft-Server gearbeitet, welcher (nach Fertigstellung) sowohl eine Bauwelt für interessierte SchülerInnen als auch einen kompletten Nachbau der Cäcilienschule beinhalten soll.

Aktuell ist der Server ausschließlich für Teilnehmer der Prog-AG zugängig.

Das Cäci-C in Minecraft

Schon einmal etwas von Minecraft-Commandblöcken gehört?
Dabei handelt es sich um Programmierung „in einer Box“ – konkret in einem einzelnen Minecraft-Block.

Programmiert von Jan S.

Ausflug zur Gamescom 2016

Der Ausflug zur Gamescom war ein voller Erfolg!
Durch tatkräftige Unterstützung aller Beteiligten gab es (bis auf einen Zugausfall auf den letzten Metern) keine Komplikationen und den ungetrübten „Gamescom-Eindruck“.

Die Cantina-Band der Gamescom 2016
Die Cantina-Band der Gamescom 2016

Java-Tutorial

Guten Tag und willkommen beim interaktiven Java-Tutorial!

Hier lernen sie alles über die Programmiersprache Java und es kommt immer neuer Inhalt hinzu!

Java ist eine sogenannte OOP (Objekt-Orientierte-Programmiersprache). Mit Java haben sie die Möglichkeit Anwendungen oder gar Webseiten zu programmieren. Ich möchte ihnen in diesem Blog zeigen, wie das geht. Fangen wir an mit dem, was man zum programmieren braucht. Zum einen sollte man logisch denken können. Das kann man sich wie bei Mathe oder Chemie, Physik vorstellen. Zum einen muss man die Formeln auswendig lernen und zum anderen, muss man sie logisch verwenden können. Die nächste Sache, die sie brauchen, ist das sogenannte JDK (Java-Development-Kit). Einen Link zur Webseite finden sie hier. Dann benötigen sie noch eine Entwicklungsumgebung. Diese soll ihnen helfen, schneller Fehler im Code zu finden und sie bietet zahlreiche andere Features. Man könnte auch theoretisch betrachtet auf jedem x-beliebigen Text-Editor programmieren, sie werden aber schnell merken, warum man dies nicht tut. Einer der besten Entwicklungsumgebungen ist Eclipse. Sie können Eclipse bequem hier herunterladen. Das installieren beider Anwendungen, sollte keine Probleme aufweisen. Im nächsten Teil, werden wir damit mit dem programmieren anfangen!