Informatik 8a-f

Diese Seite ist ebenfalls erreichbar unter:

bit.ly/informatik8a-f

2026-04-16 Programme gegenseitig vorstellen

2026-02-20 Programm so gut machen, dass es süchtig macht.

Bitte arbeitet weiter an dem Spiel, bis es wirklich Spaß macht.
am Ende des kommenden Termins werden wir die Spiele gegenseitig präsentieren.

2026-01-23 Programm lauffähig machen, ausprobieren

2025-12-05 Programm lauffähig machen

2025-11-28 Besprechen der Logik des Programms

2025-11-07 und folgende: Erste Schritte mit Python

Nachdem Du nun erfolgreich das Script in iServ durchgespielt hast kannst Du die folgende Seite aufrufen und einmal durchspielen.

Später kannst Du mit der folgenden Aufgabe beginnen:

Wir werden Schrittweise ein Spiel in Python programmieren. Es ist sinnvoll, dass Du erst einmal diesem Tutorial folgst. Du solltest immer versuchen den Code - zumindest grob - zu verstehen.

Schritt 0: Thonny installieren

  1. Lade diese Datei auf iServ auf deinen Desktop herunter.
  2. Entpacke die Datei durch Rechtsklick, ...
  3. erstelle eine Verknüpfung mit der Datei thonny.exe
  4. verschiebe diese Verknüpfung auf den Desktop
  5. Starte Thonny durch einen Doppelklick auf die Verknüpfung thonny.exe

Schritt 0.1: Pygame initialisieren

  1. Öffne Thonny und erstelle ein neues Python-Programm.
  2. Füge den folgenden Code ein, um Pygame zu initialisieren
  3. Speicher das Script in Deinem lokalen Portfolio-Ordner unter dem Namen
    pygame_v0.1_{name}.py
  4. Führe das Programm aus.
  5. Befolge die weiteren Anweisungen
  6. Speicher am Ende jeder Stunde Dein Ergebnis sowohl in Deinem lokalen Portfolio-Ordner sowie in unserem zentralen Portfolio-Ordner
import pygame

# Pygame initialisieren (das ist eine sogenannte Bibliothek die 
# einige Funktionen enthält die zur Programmierung von Spielen 
# hilfreich sind)
pygame.init()

# Fenstergröße festlegen (Breite, Höhe) 
# "pygame.display.set_mode(([ZAHL], [ZAHL]))" ist ein Beispiel für 
# eine Funktion aus "pygame", damit wird die Fenstergröße Festgelegt.
# Die Ausgabe dieser Funktion wird in der Variable "screen" gespeichert.
screen = pygame.display.set_mode((800, 600))

# Fenster-Titel setzen
pygame.display.set_caption("Mein erstes Pygame-Spiel")

# Farben definieren (RGB)
# Probiere mal aus, was passiert, wenn du die Zahlen änderst.
WHITE = (255, 255, 255)
BLUE = (0, 0, 255)

# Die Spielfigur: Ein blaues Rechteck
# Das Rechteck hat eine Größe von 20 x 30 Pixeln
# Und die Position ist 40 Pixel vom linken Bildschirmrand
# und 50 Pixel von oben und  entfernt.
# Spiele ein bisschen mit den Werten und schaue, was passiert.
player = pygame.Rect(20, 30, 40, 50)

# Hier beginnt die eigentliche Spiel-Schleife.
# Alles was hier um mindestens 4 Zeichen eingerückt ist 
# gehört zur Spielschleife und wird ununterbrochen wiederholt.
# In der Schleife passiert allerdings noch gar nichts,
# außer, dass der Hintergrund und das Rechteck gezeichnet werden.
running = True # in der Variablen "running" wird der Wert "True" gespeichert
while running:  # hier beginnt die Schleife. Es wird geprüft ob 
				# "running" den Wert "True" enthält. 
				# Dann wird die Schleife ausgeführt,
				# Sonst wird unter der Schleife fortgesetzt
	# Ereignisse überwachen
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			running = False # hier könnte "running" übrigens auf 
							# "False" gesetzt werden. Das wird aber 
							# noch nicht genutzt.

	# Bildschirm mit weißer Farbe füllen
	screen.fill(WHITE)

	# Spielfigur zeichnen (blaues Rechteck)
	pygame.draw.rect(screen, BLUE, player)

	# Bildschirm aktualisieren
	pygame.display.flip()

# Pygame beenden
pygame.quit()

Erklärung:

Aufgabe 0.1:


Schritt 0.2: Bewegung der Spielfigur hinzufügen

Jetzt machen wir die Spielfigur steuerbar:

  1. Füge den folgenden Code zur Bewegung der Spielfigur in die Schleife ein:
# Geschwindigkeit der Spielfigur
speed_x = 0
speed_y = 0

# Spiel-Schleife
running = True
while running:
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			running = False

		# Tastenereignisse überprüfen
		if event.type == pygame.KEYDOWN:
			if event.key == pygame.K_LEFT:
				speed_x = -5
			if event.key == pygame.K_RIGHT:
				speed_x = 5
			if event.key == pygame.K_UP:
				speed_y = -5
			if event.key == pygame.K_DOWN:
				speed_y = 5
		
		if event.type == pygame.KEYUP:
			if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
				speed_x = 0
			if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
				speed_y = 0

	# Bewegung der Spielfigur
	player.x += speed_x
	player.y += speed_y

	# Bildschirm aktualisieren
	screen.fill(WHITE)
	pygame.draw.rect(screen, BLUE, player)
	pygame.display.flip()

pygame.quit()

Erklärung:

Aufgabe 0.2:


Schritt 0.3: Hindernis hinzufügen

Nun fügen wir ein einfaches Hindernis hinzu, das sich auf dem Bildschirm bewegt.

  1. Ergänze den folgenden Code für das Hindernis:
# Hindernis: Ein rotes Rechteck
RED = (255, 0, 0)
obstacle = pygame.Rect(400, 300, 50, 50)
obstacle_speed = 3

# Spiel-Schleife
running = True
while running:
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			running = False

		# Bewegung der Spielfigur
		if event.type == pygame.KEYDOWN:
			if event.key == pygame.K_LEFT:
				speed_x = -5
			if event.key == pygame.K_RIGHT:
				speed_x = 5
			if event.key == pygame.K_UP:
				speed_y = -5
			if event.key == pygame.K_DOWN:
				speed_y = 5
		
		if event.type == pygame.KEYUP:
			if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
				speed_x = 0
			if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
				speed_y = 0

	# Bewegung der Spielfigur
	player.x += speed_x
	player.y += speed_y

	# Bewegung des Hindernisses (nach links und rechts) 
	obstacle.x += obstacle_speed
	if obstacle.x > 750 or obstacle.x < 0:
		obstacle_speed = -obstacle_speed

	# Bildschirm aktualisieren
	screen.fill(WHITE)
	pygame.draw.rect(screen, BLUE, player)
	pygame.draw.rect(screen, RED, obstacle)
	pygame.display.flip()

pygame.quit()

Erklärung:

Aufgabe 0.3:


Schritt 0.4: Kollisionserkennung hinzufügen

Um das Spiel interessanter zu machen, fügen wir eine Kollisionserkennung hinzu:

  1. Ergänze den folgenden Code, um die Kollision zwischen Spielfigur und Hindernis zu überprüfen:

        # Kollisionserkennung
        if player.colliderect(obstacle):
            print("Kollision!")
            running = False
    

Erklärung:

Aufgabe 0.4:


Bonusaufgaben:


Schritt 0.5: Objekte am Fensterrahmen abprallen lassen

Um die Kollisionserkennung auf den Fensterrahmen anzuwenden und ein Hindernis von den Rändern abprallen zu lassen, kannst du die folgenden Schritte unternehmen:

Erklärung:

Kollisionserkennung mit den Rändern:
Wenn die rechte Seite des Hindernisses (obstacle.right) den rechten Rand des Fensters erreicht (WIDTH) oder die linke Seite (obstacle.left) den linken Rand (0), wird die x-Geschwindigkeit umgekehrt.
Dasselbe passiert für die Kollision mit der oberen und unteren Kante.
Bewegung umkehren:
Die Geschwindigkeit wird umgekehrt, indem das Vorzeichen der Geschwindigkeitsvariablen (obstacle_speed_x oder obstacle_speed_y) geändert wird. Das führt dazu, dass das Hindernis "abprallt".


Schritt 0.6: Score hinzufügen

Ziel:

Wir fügen dem Spiel einen Score hinzu, der angibt, wie lange der Spieler überlebt.

  1. Ergänze den folgenden Code am Anfang deines Programms, um die benötigten Variablen zu erstellen:

    # Score-Variable hinzufügen
    score = 0
    
    # Schriftart für den Score festlegen
    font = pygame.font.SysFont(None, 36)
    
  2. In der Spiel-Schleife fügst du den Code hinzu, um den Score zu erhöhen und auf dem Bildschirm anzuzeigen:

    # Score um 1 erhöhen
    score += 1
    
    # Score anzeigen
    score_text = font.render(f"Score: {score}", True, (0, 0, 0))
    screen.blit(score_text, (10, 10))
    

Erklärung:

Aufgabe 0.6:

Bonusaufgabe:

Verändere den Score so, dass er nicht jede Runde hochzählt sondern jede Sekunde.


Schritt 7: Mehrere Hindernisse hinzufügen

Ziel:

Erstelle mehrere Hindernisse, die der Spieler vermeiden muss.

  1. Erstelle eine Liste für mehrere Hindernisse:

    obstacles = [
        pygame.Rect(400, 300, 50, 50),
        pygame.Rect(200, 150, 30, 30),
        pygame.Rect(600, 400, 40, 40)
    ]
    obstacle_speeds = [(3, 3), (2, -2), (-3, 2)]  # Geschwindigkeiten der Hindernisse
    
  2. In der Spiel-Schleife aktualisiere jedes Hindernis und überprüfe Kollisionen:

    for i, obstacle in enumerate(obstacles):
        # Aktualisiere Position
        obstacle.x += obstacle_speeds[i][0]
        obstacle.y += obstacle_speeds[i][1]
    
        # Hindernis prallt vom Rand ab
        if obstacle.left <= 0 or obstacle.right >= WIDTH:
            obstacle_speeds[i] = (-obstacle_speeds[i][0], obstacle_speeds[i][1])
        if obstacle.top <= 0 or obstacle.bottom >= HEIGHT:
            obstacle_speeds[i] = (obstacle_speeds[i][0], -obstacle_speeds[i][1])
    
        # Zeichne das Hindernis
        pygame.draw.rect(screen, RED, obstacle)
    
        # Kollisionserkennung
        if player.colliderect(obstacle):
            collision_sound.play()
            running = False
    

Erklärung:

Aufgabe 7:


Schritt 8: Spielfigur und Hindernisse mit Bildern

Ziel:

Verwende anstelle von farbigen Rechtecken Bilder für die Spielfigur und die Hindernisse.

Hier sind einige Vorschläge:

Spieler:

player.png|100
player1.png|100
player2.png|100
player3.png|100
player4.png|100
player5.png|100

Hindernisse:

obstacle.png|100
obstacle1.png|100
obstacle2.png|100
obstacle3.png|100

  1. Lade Bilder (z.B. player.png und obstacle.png) herunter und speichere sie im Projektverzeichnis.

  2. Lade die Bilder am Anfang des Programms:

    player_image = pygame.image.load("player.png")
    obstacle_image = pygame.image.load("obstacle.png")
    
  3. Zeichne die Bilder statt der Rechtecke:

    screen.blit(player_image, (player.x, player.y))  # Zeichne die Spielfigur
    
    # Für jedes Hindernis das Bild zeichnen
    for obstacle in obstacles:
        screen.blit(obstacle_image, (obstacle.x, obstacle.y))
    

Erklärung:

Aufgabe 8:


Zusätzliche Bonusaufgaben

Bonusaufgabe 1:

Bonusaufgabe 2:


.
.
.

Hier drunter folgen die alten Inhalte

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

2025-07-04 Pixelbilder selbst erstellen

Zeichne auf kariertem Papier folgendes Bild in einer 8 x 8 Matrix. Eine 0 bedeutet frei lassen, eine 1 bedeutet ausmalen:

0A943D88-7953-4BF5-888C-0B999B0BA9AE_4_5005_c.jpeg

2025-06-27 Wie arbeitet ein Bildschirm?

https://mia.phsz.ch/Informatikdidaktik/PixelBilder

2025-06-13 Modellierung

Weitere Planung:
https://stshorn.de/iserv/file/-/Groups/Unterricht Inf - Kow - 7a 7b 7c 7d 7/Schülerinfo Informatik.pdf?show=true

https://map2model.com

2025-05-09 3D-Modellierung

Aufgabe:

Erstelle ein Modell des Schulgebäudes Snitgerreihe.
Im ersten Schritt kannst Du die Maße schätzen und aus dem Gedächtnis oder mit Hilfe von Fotos einsetzen.

Zwischenschritte:

2025-04-25 Lernkurve 3D-Druck

Aufgabe:
Erstelle ein Modell des Schulgebäudes Snitgerreihe.
Im ersten Schritt kannst Du die Maße schätzen und aus dem Gedächtnis oder mit Hilfe von Fotos einsetzen.

2025-02-28 Einstieg 3D-Modellierung

Tritt unserer Klasse bei TinkerCAD bei. Hier ist der Link:

https://www.tinkercad.com/joinclass/ZLRQ6HFM6

2025-01-24 Präsentation zum Vortrag entwickeln

Hausaufgabe zum 14.2.2025:

  1. Speichere dein Handout so in iServ, dass du auch von zu Hause darauf zugreifen kannst (im PDF-Format)
  2. Überlege dir zu jedem deiner Punkte auf dem Handout eine "knackige" Formulierung und notiere diese
  3. Überlege dir zu jedem deiner Punkte wie das gut in einem Bild dargestellt werden kann und notiere eine Bildbeschreibung
  4. Suche ein geeignetes Bild zu jedem deiner Punkte.

Aufgaben:
Suche im Internet nach geeigneten Bildern für Deinen Vortrag wie du es vorher beschrieben hast

2025-01-17 Vorträge entwickeln

Aufgaben:

  1. Vollende ggf. die Aufagen aus der vergangenen Stunde (Achtung, sie wurden noch ergänzt!)
  2. Überlege dir für jeden Deiner Punkte,
    • einen guten "Claim" (kurz, knackig, informativ)
    • wie du den Punkt gut visualisieren kannst (beispielsweise ein Bild: was soll das Bild zeigen?)

2025-01-10 Vorträge entwickeln

Aufgaben:

  1. Erstelle eine neue Textdatei mit dem Programm "Libre Office Writer".
  2. Speicher die Datei in deinen eigenen Dateien in deinem Informatik-Portfolioordner.
  3. Notiere in dem Dokumet alle deine Gedanken zu den Fragen:
    • Was hilft dabei, eine Botschaft in einem Vortrag zum Publikum zu transportieren?
    • Was hilft dabei, einen Vortrag so zu gestalten, dass er ansprechend wirkt?
    • Was hilft dabei, einen Vortrag so zu gestalten, dass das Interesse des Publikums geweckt wird?
  4. Formuliere zu jedem deiner Punkte einen kurzen, griffigen Satz.
  5. Formuliere zu jedem deiner Punkte eine geeignete Überschrift.
  6. Überlege dir eine gute Überschrift für alle deine Punkte zusammen.
  7. Gestalte Nun dein Handout so, dass es gut zu lesen ist. Nutze für die Gestaltung die Formatvorlagen und passe diese ggf. an.
    • Titel
    • Überschrift 1
    • ggf. Überschrift 2
    • Standard
  8. Prüfe, ob du die Regeln der Rechtsschreibung, Grammatik, Zeichensatz korrekt verwendest. Korrigiere ggf.
  9. Speichere die Datei erneut und lege eine Kopie in deinen Portfolioordner in unserem Unterrichts-Ordner in iServ.

2024-12-13 Ein Handout für einen Vortrag

Aufgaben:

  1. Erstelle eine neue Textdatei mit dem Programm "Libre Office Writer".
  2. Speicher die Datei in deinen eigenen Dateien in deinem Informatik-Portfolioordner.
  3. Erstelle in der Datei ein Handout zu einem Vortrag mit dem Thema: "Wie gute Vorträge gehalten werden". Das Handout soll deine Zuhörer dabei unterstützen deinem Vortrag aufmerksam zu folgen und deine "Message" zu verstehen.
  4. Überlege dir einen geeigneten Titel für Deinen Vortrag.
  5. Überlege dir wichtige Aspekte die du in dem Vortrag unbedingt ansprechen möchtest. Denke dabei auch an dein Sprechen, deine Haltung, deine Zielgruppe, deine Bildschirmpräsentation, deine eigenen Verständnisprobleme bezüglich des Themas etc.
  6. Erstelle für jeden dieser Aspekte eine Überschrift und notiere dazu deine Gedanken darunter.
  7. Formatiere die Überschriften mit geeigneten Formatvorlagen und passe die Formatvorlagen an deine Vorstellungen an.
  8. Speichere die Datei erneut und lege eine Kopie in deinen Portfolioordner in unserem Unterrichts-Ordner in iServ.

2024-12-06 Dateisystem, Textdateien & Textdokumente

Aufgaben für heute:

  1. Erstelle mit dem Programm Text-editor eine neue Datei und kopiere den Text dieser Aufgaben in die Datei. Speichere diese Datei unter dem Namen [Dein_Name]_Text.txt
    • Prüfe im Dateimanager welche Größe die Datei hat und wann sie erstellt wurde:
    • Größe der Datei:
    • Erstellungsdatum und Zeit:
  2. Speichere die Datei - in deinem eigenen Ordner und als Kopie in deinem Portfolioordner.
  3. Erstelle mit dem Programm Libre Office Writer eine Datei und kopiere den Text dieser Aufgaben in die Datei. Speichere die Datei unter dem Namen [Dein_Name]_Textdokument.odt
    • Prüfe im Dateimanager welche Größe die Datei hat und wann sie erstellt wurde:
    • Größe der Datei:
    • Erstellungsdatum und Zeit:
    • Notiere in dieser Datei außerdem, welche Unterschiede Du zwischen beiden Dateien erkennen kannst.
  4. Speichere die Datei - in deinem eigenen Ordner und als Kopie in Deinem Portfolioordner.
  5. Probiere in dem Textdokument verschiedene Formatierungen aus.
  6. Lade ein geeignetes Bild aus dem Internet herunter, erkläre im Textdokument warum du dieses Bild ausgewählt hast und füge das Bild in das Textdokument hinzu.
  7. Speichere das Dokument an beiden Speicherorten.

2024-11-22 Buchstaben codieren

2024-11-15 Codierung in Binärcode reloaded

Portfolioordner einrichten
Kopie unter "Eigene" Dateien auf iServ einrichten
Hier noch einmal der Link zum Material: https://l.fobizz.com/i2kuh

2024-11-08 Codierung im Binärcode

Karten malen
Digitalen Ordner einrichten
https://l.fobizz.com/i2kuh

2024-10-11 Codierung von Daten

Wir steigen in ein neues Thema ein. Die Calliope brauchen wir erstmal nicht mehr.
Stattdessen bearbeitet Ihr bitte das folgende Arbeitsblatt.
https://l.fobizz.com/codall1

Hier noch mal das Abaschlussvideo.

Und die Darstellung der verschiedenen Ebenen bei der Kommunikation:


2024-09-27 Schleifen mit der Calliope

Bitte arbeitet weiter an den Aufgaben der vergangenen Woche. Wer damit schon fertig ist kann schon die folgende Aufgabe bearbeiten:

https://l.fobizz.com/c2kreisel
https://l.fobizz.com/c1stopp
https://l.fobizz.com/visitme

2024-09-20 Die Calliope programmieren

weitere Anleitungen findet Ihr unter:

2024-09-13 Einstieg mit Programmierung

Auf der Seite https://l.fobizz.com/c1affe findest du Lernkarten mit denen du die Grundlagen der Programmierung mit der Calliope Mini lernen kannst.

Arbeite die Lernkarten durch.

Powered by Forestry.md