MINT lernen

C#: Spiele und Anwendungen

Zehn interaktive Übungen zu C#, .NET und Unity-Skripten — von AFB I bis AFB III.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Zehn interaktive Übungen zu C#, .NET und Unity-Skripten — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung.

A1
Steckbrief C#
AFB I

Welche Aussagen über die Sprache C# stimmen?

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
C# gehört zur C-Familie und ist eng mit Java verwandt, nicht mit JavaScript. Es ist eine Mischform: erst Compiler (C# → CIL), dann JIT-Compiler zur Laufzeit. Neben Unity-Spielen entstehen damit Windows-Programme und mit ASP.NET Webanwendungen.
A2
Stimmt's? — C# und Unity
AFB I

Fünf Behauptungen über C#-Programme und Unity-Skripte.

Fünf Aussagen nacheinander. Eine falsche Einschätzung reicht — dann startest du die Serie mit „Neue Runde“ neu.
Aussage 1 von 5

Start() einmal, Update() in jedem Frame — und var ändert nichts daran, dass C# statisch typisiert ist.
A3
Sprache, .NET oder Unity?
AFB I

Ordne jeden Ausdruck zu: Ist er ein Schlüsselwort der Sprache C#, stammt er aus der .NET-Klassenbibliothek oder gibt es ihn nur in Unity?

Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1Schlüsselwort von C#
2.NET-Bibliothek
3nur Unity
Schlüsselwörter (class, if, void, int) gehören zur Sprache selbst. Console und Math sind Klassen aus .NET, die jedes C#-Programm nutzen kann. Time, GameObject und Debug.Log liefert erst die Unity-Bibliothek.
A4
Tore pro Spiel
AFB II

Was gibt dieses C#-Programm aus?

C#
int tore = 7;
int spiele = 2;
double schnitt = tore / spiele;
Console.WriteLine(schnitt * 2);
Rechne selbst und trage das Ergebnis ein — Enter prüft direkt.
Trick: Nicht 7! tore / spiele ist eine Division zweier int-Werte und liefert 3 (der Rest fällt weg). Erst danach wird 3 in den double-Wert 3,0 umgewandelt. Also 3 · 2 = 6. Richtig wäre (double)tore / spiele — dann käme 7 heraus.
A5
Vom Quelltext zum laufenden Programm
AFB II

Bringe die Stationen eines C#-Programms in die richtige Reihenfolge.

Ziehe die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
1Beim Programmstart lädt die .NET-Laufzeitumgebung die CIL.
2Du schreibst den Quelltext in die Datei Program.cs.
3Der Prozessor führt den Maschinencode aus.
4Der C#-Compiler prüft Syntax und Typen und übersetzt in CIL.
5Der JIT-Compiler übersetzt eine Methode beim ersten Aufruf in Maschinencode.
6Die CIL wird in einer Programmdatei (.dll oder .exe) gespeichert.
Zweimal wird übersetzt: vor dem Start vom C#-Compiler (Typfehler fallen hier auf) und während des Laufs vom JIT-Compiler. Häufig verrutscht der JIT-Schritt nach vorn — er passiert aber erst, wenn das Programm läuft.
A6
Rechenkette: Das Windrad
AFB II

Ein Windrad in einem Unity-Spiel soll sich mit 90 Grad pro Sekunde drehen. Das Skript enthält in Update() die Zeile

C#
transform.Rotate(0, 0, 90 * Time.deltaTime);

Das Spiel läuft gleichmäßig mit 40 fps (Bildern pro Sekunde).

Rechne die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
  1. Wert von Time.deltaTime s
  2. Drehung in einem Frame °
  3. Drehung nach 2 Sekunden °
  4. Drehung nach 2 Sekunden, wenn * Time.deltaTime fehlt °
1 s : 40 = 0,025 s pro Frame; 90 · 0,025 = 2,25° pro Frame; in 2 s gibt es 80 Frames, 80 · 2,25° = 180°. Ohne Time.deltaTime dreht es sich jedes Frame um 90°: 80 · 90° = 7200° — zwanzig volle Umdrehungen, und auf schnelleren Geräten noch mehr.
A7
Mix: Von Java zu C#
AFB II

Du kennst Java aus Kapitel 1. Verbinde jede Java-Zeile mit der gleichbedeutenden C#-Zeile.

A8
Fehlersuche: Die Münze dreht sich nicht
AFB III

Eine Münze soll sich in Unity drehen und beim Start eine Meldung ausgeben. Drei Zeilen sind fehlerhaft — zwei davon verhindert schon der Compiler, einer fällt erst beim Spielen auf.

Klicke genau die fehlerhaften Zeilen an — die richtigen musst du stehen lassen.
Der gemeinste Fehler ist update(): Das Programm kompiliert, aber die Münze steht still, weil Unity nur nach einer Methode namens Update sucht. Typfehler und fehlende Semikolons meldet dagegen der Compiler vor dem Start.
A9
Zwei Geräte, ein Rennen
AFB III

In einem Lauf-Spiel steht in Update(), dass sich die Figur in jedem Frame um 0,1 Einheiten nach rechts bewegt — ohne Time.deltaTime. Tom spielt auf einem Gaming-PC mit 120 fps, Mia auf einem alten Laptop mit 24 fps. Beide halten 5 Sekunden lang die Taste gedrückt. Wie viele Einheiten liegt Toms Figur danach vor Mias Figur?

Schiebe den Regler auf deine Antwort — Pfeiltasten bewegen ihn feiner. Nach dem Prüfen siehst du den Trefferbereich.
0 Einheiten100 Einheiten
Tom: 120 · 5 = 600 Frames · 0,1 = 60 Einheiten. Mia: 24 · 5 = 120 Frames · 0,1 = 12 Einheiten. Vorsprung 48 Einheiten — nur wegen der Hardware. Mit geschwindigkeit * Time.deltaTime kämen beide gleich weit.
A10
Passt C# zum Projekt?
AFB III

Für welche Projekte ist C# eine gute Wahl? Beurteile mit dem, was du über Einsatzgebiete und Plattformen weißt.

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Im Browser läuft JavaScript, auf einem winzigen Mikrocontroller ist C/C++ üblich (die .NET-Laufzeit wäre viel zu groß), und Datenbankabfragen schreibt man in SQL. Spiele mit Unity, Windows-Programme und ASP.NET-Webanwendungen sind dagegen typische C#-Einsatzgebiete.