2
0
Fork 0

Update of exercises

main
Thomas Smits 2024-09-15 15:48:58 +02:00
parent 3ae4c12387
commit 343e62f1d1
119 changed files with 6553 additions and 111 deletions

View File

@ -0,0 +1,28 @@
# Abstrakte Klassen
## Lernziel
Eine abstrakte Klasse einsetzen, um eine einheitliche Schnittstelle für unterschiedliche Klassen anzubieten.
## Aufgabe
Im Paket [pr2.interfaces.abstrakte_klassen_e](../sources/src/main/java/pr2/interfaces/abstrakte_klassen_e/) finden Sie Klassen, welche geometrische Figuren repräsentieren.
Betrachten Sie die vorhandenen Klassen `Dreieck`, `Kreis` und `Geometer` und finden Sie Gemeinsamkeiten und Unterschiede. Lassen Sie das Programm laufen und notieren Sie sich die Ausgabe.
Führen Sie eine neue _abstrakte_ Klasse `Figur` ein und vereinfachen Sie mit dieser Klasse das vorhandene Programm. Lassen Sie das Programm erneut laufen und vergleichen Sie die Ausgabe mit der vorher notierten.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,31 @@
# Abstrakte Klasse
## Lernziel
Abstrakte Klasse verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.interfaces.abstrakt_form](../sources/src/main/java/pr2/interfaces/abstrakt_form/).
Schreiben Sie bitte eine abstrakte Klasse `Form` mit den folgenden abstrakten Methoden:
* `flaeche()` liefert die Fläche der Form als Gleitkommazahl mit doppelter Genauigkeit zurück
* `umfang()` liefert den Umfang der Form als Gleitkommazahl mit doppelter Genauigkeit zurück
Fügen Sie außerdem noch zwei Attribute für die x- und y-Position der Form hinzu und schreiben Sie einen entsprechenden Konstruktor. Wählen Sie die Sichtbarkeiten der Attribute so, dass Subklassen sie lesen und schreiben können.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,33 @@
# String in Großbuchstaben umwandeln
## Lernziel
* Daten von der Kommandozeile lesen.
* Einfache String-Operationen.
## Aufgabe
Gehen Sie in das Paket [pr2.auffrischung.grossmacher](../sources/src/main/java/pr2/auffrischung/grossmacher).
Schreiben Sie bitte ein Programm mit der Hauptklasse `Grossmacher`, das einen Text als Parameter auf der Kommandozeile nimmt, diesen in Großbuchstaben umwandelt und dann, zusammen mit der enthaltenen Anzahl von Zeichen, wieder auf der Konsole ausgibt.
```console
> java Grossmacher "Hallo, dies ist ein Test"
Ergebnis: HALLO, DIES IST EIN TEST
Zeichen : 24
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Labeled Break
## Lernziel
Ein labeled break verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.auffrischung.labeled_break](../sources/src/main/java/pr2/auffrischung/labeled_break).
Schreiben Sie eine Methode `suche`, die ein zweidimensionales `int`-Array übergeben bekommt und das erste Element sucht, das keine `0` ist. Wenn ein solches gefunden wird, soll die Methode `true` zurückgeben, andernfalls `false`.
Verwenden Sie bitte ein **labeled break** für Ihre Implementierung.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,33 @@
# Passwortbewertung
## Lernziel
Einfache String-Verarbeitung.
## Aufgabe
Gehen Sie in das Paket [pr2.auffrischung.password](../sources/src/main/java/pr2/auffrischung/password).
Schreiben Sie eine Klasse `PasswortChecker` mit einer Methode `checkPassword`, die die Qualität von Passwörtern bewertet. Die Methode vergibt Punkte für bestimmte Qualitätskriterien des Passworts. Es gibt jeweils einen Punkt für:
* Das Passwort ist mindestens 8 Zeichen lang.
* Das Passwort enthält Groß- und Kleinbuchstaben.
* Das Passwort enthält Buchstaben und Zahlen.
* Das Passwort enthält mindestens eines der Sonderzeichen `!"()%`
Testen Sie die Methode mit verschiedenen Passwörtern.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# printf mit Formatstring
## Lernziel
Formatierung mit Formatstrings.
## Aufgabe
Gehen Sie in das Paket [pr2.auffrischung.printf](../sources/src/main/java/pr2/auffrischung/printf).
Schauen Sie sich die JavaDoc der Methode `printf` in der Klasse `PrintStream` an.
Schreiben Sie eine Methode `printDouble`, die eine beliebige double-Zahl mit immer genau drei Nachkommastellen ausgibt. Testen Sie die Methode mit einigen Testzahlen.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Maximum in einem Array suchen
## Lernziel
Über Arrays iterieren.
## Aufgabe
Gehen Sie in das Paket [pr2.auffrischung.suchemax](../sources/src/main/java/pr2/auffrischung/suchemax).
Schreiben Sie bitte eine Klasse `GroessteZahl` mit der Methode `sucheMax`, die ein `int`-Array übergeben bekommt und die größte Zahl aus diesem heraussucht und zurückgibt.
Testen Sie die Methode mit einigen Testzahlen.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Taschenrechner
## Lernziel
`case` verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.auffrischung.taschenrechner](../sources/src/main/java/pr2/auffrischung/taschenrechner).
Schreiben Sie eine Klasse `Taschenrechner`, die genau eine Methode namens `rechne` hat. Die Methode nimmt zwei `double`-Werte, die die Operanden darstellen und ein `char`, das den Operator symbolisiert. Die Methode soll Addition (`+`), Subtraktion (`-`), Multiplikation (`*`), Division (`/`) und Potenzieren (`^`) unterstützen. Geben Sie das Ergebnis der Rechnung als `double`-Wert zurück und behandeln Sie den Fall, dass ein ungültiger Operator übergeben wird, indem Sie `NaN` (Not a Number) zurückgeben.
Testen Sie Ihre Klasse und Methode mit einigen einfachen Rechnungen.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,30 @@
# Ausnahmen testen
## Lernziel
Bei einer gegebenen Klasse Testfälle mit JUnit schreiben, die auf das Werfen von Ausnahmen testen.
## Aufgabe
Gehen Sie in das Paket [pr2.exceptions.ausnahmen_testen](../sources/src/main/java/pr2/exceptions/ausnahmen_testen/).
Sie finden in der Aufgabe eine einfache Implementierung einer [Caesar-Verschlüsselung](https://de.wikipedia.org/wiki/Caesar-Verschlüsselung) in der Klasse `CrypterCaesar`. Außerdem finden Sie noch einen JUnit-Test in dem entsprechenden Paket `test`.
Im JUnit-Test `CaesarTest` fehlen aber noch die Tests für die Ausnahmen. Diese werden geworfen, wenn die übergebenen Schlüssel bzw. die Klar- und Cypher-Texte nicht den Vorgaben entsprechen. Lesen Sie daher sorgfältig die JavaDoc der Klasse `CrypterCaesar` und fügen Sie dann entsprechende Testfälle in `CaesarTest` hinzu, die auf das korrekte Werfen der Ausnahmen testen.
Lassen Sie Ihre Unit-Tests laufen und testen Sie, ob die Ausnahmen entsprechend der Vorgaben aus der JavaDoc geworfen werden.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,34 @@
# Eigene Ausnahmen schreiben und an entsprechender Stelle werfen
## Lernziel
Ausnahmen programmieren und sinnvoll einsetzen. Bedeutung der Schlüsselwörter `throws` und `throw` verstehen.
## Aufgabe
Gehen Sie in das Paket [pr2.exceptions.eigene_ausnahme](../sources/src/main/java/pr2/exceptions/eigene_ausnahme/).
In der vorliegenden Aufgabe sollen Sie eine Sicherung (`Fuse`) programmieren. Sicherungen gibt es (in unserer Modellwelt) nur für 16, 25 und 32 Ampére.
Beim Anlegen erfährt die Sicherung über den Konstruktor bei welchem Strom sie auslösen soll. Hierbei soll es nur möglich sein, Sicherungen in den vorhandenen Stärken anzulegen. Bei jedem anderen Wert soll der Konstruktor eine `IllegalCurrentException` werfen. In der Ausnahme soll gespeichert werden, mit welchem (falschen) Wert die Sicherung angelegt werden sollte. Diese Information wird beim Aufruf von `toString()` auf der Ausnahme wieder zurückgegeben.
Die Sicherung wird benutzt, indem die `use`-Methode mit dem aktuellen Strom aufgerufen wird. Ist dieser größer als der Nennstrom der Sicherung löst diese aus und wirft eine `FuseTrippedException`. In der Ausnahme sind sowohl der Nennstrom als auch der Auslösestrom gespeichert und werden in der `toString`-Methode ausgegeben.
Beachten Sie die TODO-Kommentare und passen Sie das Programm entsprechend an, damit es die oben beschriebenen Anforderungen erfüllt.
Kommentieren Sie die Tests ein und lassen Sie diese laufen. Erst wenn alle Tests grün sind, gilt die Aufgabe als bestanden.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# Eigene Exception schreiben
## Lernziel
Eigene Exceptions entwerfen und verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.exceptions.fakultaet](../sources/src/main/java/pr2/exceptions/fakultaet/).
Schreiben Sie bitte eine Klasse `Fakultaet`, die die Fakultät einer Zahl zwischen 0 und 20 berechnen kann. Wenn der Wertebereich über- oder unterschritten wird, soll die entsprechende Methode der Klasse eine `FakultaetException` werfen. Schreiben Sie weiterhin einen JUnit-Test, der sowohl die korrekte Funktion, als auch das Werfen der Ausnahme überprüft.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,31 @@
# Handle-or-Declare-Regel anwenden
## Lernziel
In einem vorhandenen Programm die Ausnahmen korrekt weiter deklarieren und an den richtigen Stellen fangen.
## Aufgabe
Gehen Sie in das Paket [pr2.exceptions.handle_or_declare](../sources/src/main/java/pr2/exceptions/handle_or_declare/).
Entfernen Sie auskommentierten Zeilen in der Klasse `Buchstabenzaehler`. Das Programm wird nicht korrekt kompilieren, weil die Ausnahmen nicht richtig deklariert und behandelt wurden.
Korrigieren Sie diesen Fehler und sorgen Sie dafür, dass die Ausnahmen an den Stellen behandelt werden, an denen Sie behandelt werden sollten, d.h. dort wo die Verursachung liegt. Bei der `StatistikException` handelt es sich um eine Inkonsistenz im Programm. Überlegen Sie, wo diese behandelt werden sollte und wann sie auftreten kann.
Sie müssen die Ausnahmen sinnvoll behandeln. Sie einfach an der `main`-Methode
zu deklarieren ist keine valide Lösung dieser Aufgabe.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,30 @@
# Ausnahmen mit `try` und `catch` behandeln.
## Lernziel
Vorhandene Ausnahmen mit `try` und `catch` abfangen und behandeln.
## Aufgabe
Gehen Sie in das Paket [pr2.exceptions.try_catch](../sources/src/main/java/pr2/exceptions/try_catch/).
Betrachten Sie das sehr einfache Zahlenraten-Spiel. Lassen Sie es laufen und spielen Sie ein paar Runden. Versuchen Sie das Programm durch falsche Eingaben zum Absturz zu bringen.
Im Augenblick werden die Ausnahmen in der `main()`-Methode weiter deklariert, was schlechter Stil ist und zu bei Falscheingaben zu Programmabstürzen führt. Ändern Sie das Programm stattdessen so ab, dass die Ausnahmen korrekt behandelt werden. Entfernen Sie danach die `throws`-Deklaration aus dem Kopf der `main()`-Methode.
Lassen Sie das Programm erneut laufen und testen Sie, ob es jetzt nach Falscheingaben immer noch abstürzt.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,30 @@
# Iterator schreiben
## Lernziel
Für eine gegebene Klasse einen Iterator schreiben.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.iterator](../sources/src/main/java/pr2/collections/iterator/).
In dieser Aufgabe sollen Sie für eine bereits vorhandene Klasse einen Iterator schreiben. Bei dieser Klasse (`SimpleStack`) handelt es sich um einen sehr einfach (und nicht sehr sicher) programmierten Stack.
Implementieren Sie in `SimpleStack<T>` das Interface `Iterable<T>` und schreiben Sie, wie vom Interface verlangt einen Iterator für die Klasse. Sie sollten hier innere Klasse verwenden, um den Zugriff auf die privaten Attribute von `SimpleStack` zu vereinfachen.
Benutzen Sie die Tests in `SimpleStackTest`, um zu überprüfen, dass Ihre Implementierung des Iterators richtig funktioniert. Hierzu müssen Sie die entsprechenden Tests allerdings erst einkommentieren.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# Iterator programmieren
## Lernziel
Iteratoren verstehen und programmieren.
## Aufgabe
Im Paket [pr2.collections.list_iterator](../sources/src/main/java/pr2/collections/list_iterator/) finden Sie den Code für eine einfach verkettete Liste `Liste<T>`.
Geben Sie bitte den fehlenden Code für die innere Klasse `ListenIterator` an.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,36 @@
# `List<T>` und dessen Implementierungen
## Lernziel
Das Interface `List<T>` und eine passende Implementierung einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.list](../sources/src/main/java/pr2/collections/list/).
Im Projekt finden Sie die Klasse `WordCollector` mit deren Hilfe man die Wörter in einem Text analysieren kann. Nach Übergabe eines Dateinamens wird die Datei eingelesen und die vorhandenen Wörter werden gesammelt. Am Ende wird die Liste der Wörter alphabetisch sortiert ausgegeben.
Leider wurde `WordCollector` von einem Entwickler geschrieben, der nichts von dem Collection-Framework wusste und daher alles mit Array realisiert hat. Hierdurch sind einige sehr komplexe Konstruktionen entstanden.
Lassen Sie das Programm laufen und betrachten Sie die Ausgabe. Schauen Sie sich die Klasse `WordCollector` an und versuchen Sie die Funktionsweise und die Implementierung genau zu verstehen. Dieser Schritt ist wichtig, um die im Folgenden beschriebenen Änderungen an der Klasse vornehmen zu können, lassen Sie sich also Zeit für diesen Schritt.
Ändern Sie die Klasse nun so, dass anstatt Arrays `List<T>` und deren Implementierungen verwendet werden. Ändern Sie die Schnittstellen und Parameter der Methoden von `String[]` auf `List<String>`. Modifizieren Sie auch die Implementierung der Methoden und versuchen Sie Arrays wo immer möglich durch Listen zu ersetzen. Schauen Sie sich auch die JavaDoc der Klassen `java.util.Arrays` und `java.util.Collections` an, um möglicherweise sehr hilfreiche Methoden zu finden.
__Hinweis:__ Die Konstruktion `String[] words = line.toLowerCase().split("[,. ]");` können Sie nicht durch Listen ersetzen, da die `split`-Methode Arrays verwendet.
Die Datei mit dem Text finden Sie unter [kafka.txt](../sources/src/main/resources/pr2/collections/list/kafka.txt).
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,50 @@
# `Map<T>` verwenden
## Lernziel
Das Interface `Map<T>` und seine Implementierungen verwenden, um Daten effizient zu verarbeiten.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.map](../sources/src/main/java/pr2/collections/map/).
In dieser Aufgabe geht es darum, die Häufigkeit von Wörtern in einem Text zu analysieren. Ein grundlegendes Gerüst für das Programm ist auch bereits vorgegeben, damit Sie sich auf das Wesentliche konzentrieren können.
Betrachten Sie die Klasse `WordCount`. In dieser fehlen noch einige Elemente, damit das Programm korrekt funktionieren kann.
Die innere Klasse `WordFrequency` muss das Sortieren unterstützen. Implementieren Sie daher das Interface `Comparable`.
Fügen Sie in der Klasse `WordCount` an den durch TODO-Kommentare markierten Stellen Code hinzu, der mithilfe einer Map die Worthäufigkeiten bestimmt.
Die Datei mit dem Text finden Sie unter [kafka.txt](../sources/src/main/resources/pr2/collections/map/kafka.txt).
Lassen Sie das Programm laufen. Es sollte eine Ausgabe wie folgt erzeugen:
```console
er: 80
sie: 66
und: 64
die: 59
der: 51
zu: 46
es: 45
nicht: 41
das: 38
in: 35
...
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# ReverserGeneric
## Lernziel
`Comparable` verstehen und nutzen.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.reverser_generic](../sources/src/main/java/pr2/collections/reverser_generic/).
Schreiben Sie bitte eine generische Klasse `Reverser` mit einer Methode `reverse`, der man eine Liste (`java.util.List`) von Objekten übergeben kann und diese absteigend sortiert wird. Stellen Sie durch korrekte Wahl des Typ-Parameters sicher, dass die in der Liste gespeicherten Objekte das Interface `Comparable` implementieren.
Testen Sie Ihre Implementierung mit der Klasse `ReverserTest`.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Strings umgekehrt sortieren: Reverser
## Lernziel
`Comparable` verstehen und nutzen.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.reverser](../sources/src/main/java/pr2/collections/reverser/).
Schreiben Sie bitte eine Klasse `Reverser` mit einer Methode `reverse`, der man eine Liste (`java.util.List`) von `String` übergeben kann und die diese dann absteigend sortiert, d.h. als Erstes kommen die Einträge mit Z, dann die mit Y etc.
Testen Sie Ihre Implementierung mit der Klasse `ReverserTest`.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,36 @@
# `Set<T>` und dessen Implementierungen
## Lernziel
Das Interface `Set<T>` und eine passende Implementierung einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.set](../sources/src/main/java/pr2/collections/set/).
Im Projekt finden Sie die Klasse `WordCollector` mit deren Hilfe man die Wörter in einem Text analysieren kann. Nach Übergabe eines Dateinamens wird die Datei eingelesen und die vorhandenen Wörter werden gesammelt. Am Ende wird die Liste der Wörter alphabetisch sortiert ausgegeben.
Leider wurde `WordCollector` von einem Entwickler geschrieben, der nichts von dem Collection-Framework wusste und daher alles mit Array realisiert hat. Hierdurch sind einige sehr komplexe Konstruktionen entstanden.
Lassen Sie das Programm laufen und betrachten Sie die Ausgabe. Schauen Sie sich die Klasse `WordCollector` an und versuchen Sie die Funktionsweise und die Implementierung genau zu verstehen. Dieser Schritt ist wichtig, um die im Folgenden beschriebenen Änderungen an der Klasse vornehmen zu können, lassen Sie sich also Zeit für diesen Schritt.
Ändern Sie die Klasse nun so, dass anstatt Arrays `Set<T>` und deren Implementierungen verwendet werden. Ändern Sie die Schnittstellen und Parameter der Methoden von `String[]` auf `Set<String>` bzw. `List<String>`. Modifizieren Sie auch die Implementierung der Methoden und versuchen Sie Arrays wo immer möglich durch Sets und Listen zu ersetzen. Schauen Sie sich auch die JavaDoc der Klassen `java.util.Arrays` und `java.util.Collections` an, um möglicherweise sehr hilfreiche Methoden zu finden.
__Hinweis:__ Die Konstruktion `String[] words = line.toLowerCase().split("[,. ]");` können Sie nicht durch Listen ersetzen, da die `split`-Methode Arrays verwendet.
Die Datei mit dem Text finden Sie unter [kafka.txt](../sources/src/main/resources/pr2/collections/set/kafka.txt).
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,37 @@
# CommandLineSorter
## Lernziel
Sortieren von Collections.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.sorter_1](../sources/src/main/java/pr2/collections/sorter_1/).
Schreiben Sie bitte eine Klasse `CommandLineSorter`, die eine Reihe von Wörtern auf der Kommandozeile als Parameter annimmt und diese dann alphabetisch sortiert wieder ausgibt.
```console
> java CommandLineSorter Albert Dieter Sigmund Thomas Frank Dieter Herbert
Albert
Dieter
Dieter
Frank
Herbert
Sigmund
Thomas
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,36 @@
# CommandLineSorter -- Version 2
## Lernziel
Sortieren von Collections.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.sorter_2](../sources/src/main/java/pr2/collections/sorter_2/).
Schreiben Sie bitte eine Klasse `CommandLineSorter`, die eine Reihe von Wörtern auf der Kommandozeile als Parameter annimmt und diese dann alphabetisch sortiert wieder ausgibt. Hierbei sollen alle Dubletten entfernt werden, d.h. es soll kein Wort doppelt in der Liste auftauchen.
```console
> java CommandLineSorter Albert Dieter Sigmund Dieter Thomas Frank Herbert
Albert
Dieter
Frank
Herbert
Sigmund
Thomas
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,32 @@
# `Comparator<T>` verwenden und Objekte sortieren
## Lernziel
Verschiedene Sortierreihenfolgen durch die Implementierung von `Comparator<T>` realisieren.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.sortieren](../sources/src/main/java/pr2/collections/sortieren/).
Sie finden in der Aufgabe bereits die Klasse `Sorter` und den JUnit-Test `SorterTest` vor. Schauen Sie sich die Klasse `Sorter` an und versuchen Sie anhand der JavaDoc und des bereits vorhandenen Codes zu verstehen, was die Klasse machen soll.
Lassen Sie den Test laufen. Sie werden feststellen, dass ein Testfall grün ist, obwohl in `Sorter` gar keine Implementierung vorhanden ist. Versuchen Sie herauszufinden, warum dies so ist.
Fügen Sie nun den fehlenden Code in die Klasse `Sorter` ein, und geben Sie entsprechende `Comparator`-Objekte zurück, sodass die Daten entsprechend dem Parameter `order` sortiert werden können.
Lassen Sie erneut die Tests laufen. Es müssen alle Testfälle grün sein, bevor Sie die Lösung einchecken.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,41 @@
# Wörterbuchprogramm
## Lernziel
Interface `Map` und seine Implementierungen einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.collections.woerterbuch](../sources/src/main/java/pr2/collections/woerterbuch/).
Schreiben Sie ein einfaches Wörterbuchprogramm, dem man auf der Kommandozeile eine beliebige Anzahl von Wörtern übergeben kann und das dann die entsprechende Übersetzung ausgibt. Die Wörter des Wörterbuchs sollen fest im Programm einprogrammiert sein. Es reicht, wenn Sie einige wenige Wörter vorsehen.
Berücksichtigen Sie bitte den Fall, dass der Benutzer kein Wort auf der Kommandozeile angibt bzw. dass ein Wort nicht im Wörterbuch vorhanden ist.
```console
> java Woerterbuch
Bitte mindestens ein Wort angeben!
```
```console
>java Woerterbuch gehen schlafen tanzen hopsen
gehen => go
schlafen => sleep
tanzen => dance
hopsen => <unbekanntes Wort>
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Java-Coding-Standard anwenden
## Lernziel
Java-Code korrekt entsprechend dem [Coding-Standard von Oracle](http://www.oracle.com/technetwork/java/codeconventions-150003.pdf) formatieren.
## Aufgabe
Im Paket [pr2.intro.coding_standard](../sources/src/main/java/pr2/intro/coding_standard/) finden Sie eine Klasse `CodingStandard`. Compilieren Sie die Datei `CodingStandard.java` und stellen Sie so sicher, dass es sich um eine syntaktisch korrekte Java-Klasse handelt.
Formatieren Sie `CodingStandard` so um, dass sie dem in der Vorlesung vorgestellten Coding-Standard entspricht.
Prüfen Sie, ob sich die Klasse noch korrekt compilieren lässt, bevor sie fortfahren.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# JavaDoc schreiben
## Lernziel
Eine vorhandene Klasse mit korrekten JavaDoc-Kommentaren versehen.
## Aufgabe
Im Paket [pr2.intro.javadoc](../sources/src/main/java/pr2/intro/javadoc/) finden Sie eine Klasse namens `Waehrung`, die eine Währung repräsentiert. Leider hat ein böser Geist bei dieser Klasse fast die gesamte JavaDoc gelöscht.
Schreiben Sie eine sinnvolle JavaDoc für die Klasse `Waehrung`, die insbesondere die Funktion der Methoden und deren Parameter und Rückgabewerte erläutert. Vergessen Sie nicht, auch die Klasse selbst zu dokumentieren.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# Klasse mit JUnit testen
## Lernziel
Einen JUnit-Test für eine gegebene Klasse schreiben.
## Aufgabe
Gehen Sie in das Paket [pr2.intro.junit_faculty](../sources/src/main/java/pr2/intro/junit_faculty/).
Schreiben Sie bitte einen JUnit-Test für folgende Klasse `Fakultaet`, der die Funktionalität der Methode `fact` testet. Denken Sie insbesondere daran, die Randfälle zu testen.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,36 @@
# Eigene Enumeration schreiben und verwenden
## Lernziel
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.enums.eigene](../sources/src/main/java/pr2/enums/eigene/).
In Rollenspielen verwendet man oft Würfel mit einer unterschiedlichen Anzahl von Seiten. Üblich sind 4-, 6-, 8-, 10-, und 12-seitige Würfel. Das vorliegende Programm erlaubt es unterschiedliche Würfel zu simulieren.
Betrachten Sie das vorliegende Projekt. Darin gibt es eine Klasse `Wuerfel`, die einen Würfel in einem Rollenspiel simulieren kann und einen dazugehörigen Test in `WuerfelTest`. Welche Art von Würfel man haben möchte, setzt man über den Konstruktorparameter von `Wuerfel` und die entsprechenden Konstanten (z.B. `D6`). Lassen Sie die Unit-Test laufen. Wahrscheinlich wird einer fehlschlagen. Korrigieren Sie den Fehler, damit alle Tests grün sind.
Das Problem mit der vorliegenden Klasse ist, dass man auch Würfel mit einer anderen Augenzahl (insbesondere ungerade) erzeugen kann. Um dies zu verhindern, sollen Sie das Programm auf die Verwendung von Enumerationen umstellen.
Schreiben Sie eine Enumeration `WuerfelTyp`, die über die Konstanten `D4`, `D6`,`D8`, `D10` und `D12` die möglichen Würfelarten vorgibt. Ändern Sie den Konstruktorparameter von `Wuerfel` so, dass er anstatt eines `int` einen `WuerfelTyp` nimmt. Damit das Programm erweiterbar bleibt, speichern Sie die Anzahl der Seiten, die zu den jeweiligen Typen gehören in der Enumeration und nicht in der Klasse `Wuerfel`. Geben Sie der Enumeration außerdem eine Methode mit, welche den erwarteten Durchschnittswert für eine große Anzahl von Würfen zurückgibt (Methodenname `average`).
Ändern Sie die Tests so, dass sie mit der Enumeration arbeiten. Codieren Sie die Enum-Werte (`D4`...`D12`) nicht hart im Test, sondern verwenden Sie die Methode `values()`, um die Tests möglichst generisch zu gestalten.
Fügen Sie nun einen weiteren Würfeltyp `D20` ein und testen Sie diesen. Wenn Sie alles richtig gemacht haben, müssen Sie hierfür nur die Enumeration `WuerfelTyp` ändern, alle anderen Klassen bleiben unverändert.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,14 @@
# Enumeration schreiben
## Lernziel
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.enums.filme](../sources/src/main/java/pr2/enums/filme/).
Schreiben Sie eine Enumeration `LieblingsFilme`, die Ihre Lieblingsfilme enthalten soll. Speichern Sie zu jedem Film bitte den Titel, den Regisseur und eine Bewertung auf einer Skala von 0 bis 10. Bieten Sie weiterhin eine `toString`-Methode an, die diese Informationen wieder ausgibt und denken Sie an Methoden, um später wieder auf die Daten zu den Filmen zugreifen zu können.
Schreiben Sie eine Klasse `Main`, welche alle Lieblingsfilme auf der Konsole ausgibt.

View File

@ -0,0 +1,14 @@
# Singleton-Eigenschaft von Enumerationen
## Lernziel
Die Singleton-Eigenschaft von Enumerationen verstehen.
## Aufgabe
Gehen Sie in das Paket [pr2.enums.singleton](../sources/src/main/java/pr2/enums/singleton/).
Enumerationen werden in Java durch echte Klassen und Objekte dargestellt. Eine Besonderheit ist allerdings, dass von jeder Enumerationskonstante immer genau ein Objekt existiert, es sich also um Singletons handelt. Daher darf man Java-Enumerationen sicher mit `==` vergleichen.
Schreiben Sie bitte ein kleines Java-Programm `SingletonBeweis`, das nachweist, dass es sich bei Enumerationen wirklich um Singletons handelt. Verwenden Sie dazu die bereits vorgegebene Enumeration `MyEnum`.

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,52 @@
# Assignment: Stein, Papier, Schere, Echse, Spock
## Lernziel
Mit Enumerationen arbeiten.
## Aufgabe
Gehen Sie in das Paket [pr2.enums.schnick](../sources/src/main/java/pr2/enums/schnick).
![Regeln für Schnick-Schnack-Schnuck](img/schnick.png)
Schreiben Sie ein einfaches Spiel (Klasse `SchnickSchnackSchnuck`), bei dem Sie gegen den Computer Schnick-Schnack-Schnuck spielen (auch Rock, Paper, Scissors genannt) mit folgenden Eigenschaften:
* Das Spiel geht über drei Runden.
* Es fragt den Spieler nach seiner Auswahl (r, p, s).
* Der Computer zieht zufällig eine der drei Möglichkeiten.
* Nach jeder Runde sagt das Spiel, wer welche Möglichkeit gewählt hat und wer die Runde gewonnen hat.
* Ein Sieg bringt einen Punkt, ein Unentschieden 0 Punkte.
* Die Punkte jeder Runde werden addiert.
* Am Ende wird der Gesamtpunktestand ausgegeben.
Eine beispielhafte Session mit dem Programm sieht dann wie folgt aus:
```console
Runde 1: Dein Zug ([r]rock, [p]aper, [s]cissors)? r
Der Computer hat gewonnen - Du: ROCK, Computer: PAPER - [0:1]
Runde 2: Dein Zug ([r]rock, [p]aper, [s]cissors)? p
Unentschieden - Du: PAPER, Computer: PAPER - [0:1]
Runde 3: Dein Zug ([r]rock, [p]aper, [s]cissors)? s
Du hast gewonnen: Du: SCISSORS, Computer: PAPER - [1:1]### Abgabe
Ergebnis - Du 1 Punkt(e), Computer 1 Punkt(e)
```
Repräsentieren Sie die Züge mithilfe einer Enumeration `Move`. Diese soll auch die Tasten beinhalten, welche man für die einzelnen Züge (`r`, `p`, `s`) drücken muss.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,32 @@
# Einen generischen Typ schreiben
## Lernziel
Einen vorhandenen Typ so umgestalten, dass er als generischer Typ verwendet werden kann.
## Aufgabe
Gehen Sie in das Paket [pr2.generics.einfach](../sources/src/main/java/pr2/generics/einfach/).
Sie finden mit `Liste` eine sehr simple Implementierung einer einfach verketteten Liste vor. Zusätzlich gib es auch noch Tests, die die Liste testen.
Führen Sie die Tests aus und überzeugen Sie sich, dass die Liste korrekt funktioniert.
Schreiben Sie die Klasse `Liste` so um, dass sie zu einem generischen Typ wird. Dies bedeutet insbesondere, dass die Methoden `get` und `add` nicht mehr mit `Object` arbeiten, sondern typsicher werden. Sie dürfen in Ihrer Lösung __keine Casts__ verwenden, d.h. Sie müssen sich auch mit der Klasse `ListNode` beschäftigen und hier Änderungen vornehmen.
Führen Sie die Tests erneut aus, um sicherzugehen, dass Sie bei Ihren Änderungen nichts kaputt gemacht haben.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Generische Klasse Pair schreiben
## Lernziel
Von einem generischen Typ erben.
## Aufgabe
Gehen Sie in das Paket [pr2.generics.pair](../sources/src/main/java/pr2/generics/pair/).
Schreiben Sie eine generische Klasse `Pair`, die zwei Objekte unterschiedlichen Typs verwalten kann. Die Instanzen von `Pair` sollen unveränderlich (**immutable**) sein.
Testen Sie Ihre Implementierung mit der vorhandenen `Main`-Klasse.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Generische Klasse Pair erweitern: NumberPair
## Lernziel
Von einem generischen Typ erben.
## Aufgabe
Gehen Sie in das Paket [pr2.generics.number_pair](../sources/src/main/java/pr2/generics/number_pair/).
Schreiben Sie eine generische Klasse `NumberPair`, die von der Klasse `Pair` aus der vorhergehenden Aufgabe abgeleitet ist und erzwingt, dass beide verwaltete Objekte von `Number` oder einer Subklasse von `Number` (`Double`, `Integer`, `Long` etc.) sind.
Testen Sie Ihre Implementierung mit der vorhandenen `Main`-Klasse.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Generische Klasse Pair erweitern: SamePair
## Lernziel
Von einem generischen Typ erben.
## Aufgabe
Gehen Sie in das Paket [pr2.generics.same_pair](../sources/src/main/java/pr2/generics/same_pair/).
Schreiben Sie eine generische Klasse `SamePair`, die von der Klasse `Pair` aus der vorhergehenden Aufgabe abgeleitet ist und erzwingt, dass beide verwaltete Objekte vom selben Typ sind.
Testen Sie Ihre Implementierung mit der vorhandenen `Main`-Klasse.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# PairList
## Lernziel
Sammlungen von Objekten eines generischen Typs erstellen.
## Aufgabe
Gehen Sie in das Paket [pr2.generics.pairlist](../sources/src/main/java/pr2/generics/pairlist/).
Schreiben Sie eine generische Klasse `PairList`, die eine beliebige Anzahl von `Pair`-Objekten verwalten kann. Die Anzahl der maximal gespeicherten Objekte wird beim Erzeugen mitgegeben. Die Klasse erlaubt das Hinzufügen (`add`) und das Auslesen von Objekten anhand des Indexes (`get`).
Testen Sie Ihre Implementierung mit der vorhandenen `Main`-Klasse.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# Wildcard benutzen
## Lernziel
Wildcards einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.generics.printer](../sources/src/main/java/pr2/generics/printer/).
Schreiben Sie eine Klasse `CollectionPrinter` mit einer statischen Methode `print`, der man eine beliebige (generische) Collection übergeben kann und die dann deren Inhalt ausdruckt. Eine _Collection_ ist eine Klasse, die beliebig viele Objekte verwalten kann und über die man mit der _for each_-Schleife iterieren kann.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,30 @@
# Generische Queue
## Lernziel
Einen komplexeren generischen Typ entwickeln.
## Aufgabe
Gehen Sie in das Paket [pr2.generics.queue](../sources/src/main/java/pr2/generics/queue/).
Schreiben Sie eine generische Klasse `Queue`, die eine einfache Warteschlange (Queue) realisiert. Über die Methode `offer` können Objekte hinzugefügt werden, über `poll` wieder ausgelesen. Über Probleme des Over- und Underflows brauchen Sie sich hier keine Gedanken zu machen.
Erweitern Sie die Klasse `Queue` um eine Methode `addAll`, der man eine andere `Queue` übergibt und die dann alle Elemente der übergebenen Queue in die aktuelle übernimmt.
Erweitern Sie die Klasse `Queue` aus der vorhergehenden Aufgabe um eine Methode `copyInto`, der man eine andere `Queue` übergibt und die dann alle Elemente der aktuellen Queue in die übergebenen kopiert.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,35 @@
# `super` und `extends` einsetzen
## Lernziel
Methoden unter Verwendung von `super` und `extends` gestalten, sodass sie flexibel auch mit Sub- bzw. Supertypen umgehen können.
## Aufgabe
Gehen Sie in das Paket [pr2.generics.super_extends](../sources/src/main/java/pr2/generics/super_extends/).
In dieser Aufgabe sollen Sie die Klasse `Liste` erweitern.
Fügen Sie `Liste` zwei Methoden hinzu:
* `fillFrom`: befüllt die Liste mit den Daten aus einer anderen (übergebene) Liste.
* `copyInto`: kopiert die Daten der Liste in eine andere (übergebene) Liste.
Verwenden Sie für Ihre Lösung `super` und `extends` zusammen mit Wildcards (`?`).
Kommentieren Sie die Testmethode in den vorhandenen Tests ein und führen Sie diese danach aus. Versichern Sie sich, dass Ihre Implementierung korrekt funktioniert, bevor Sie die Lösung abgeben.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,49 @@
# Generische Typen zusammen mit Wildcards einsetzen
## Lernziel
Gebundene und ungebundene Wildcards einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.generics.wildcards](../sources/src/main/java/pr2/generics/wildcards/).
In dieser Aufgabe finden Sie bereits eine Implementierung einer generischen, auf Arrays basierenden Liste namens `SimpleList` vor. An dieser müssen Sie nichts verändern, sondern verwenden die Klasse wie sie ist.
Schreiben Sie nun eine _nicht generische_ Klasse `ListHelper`, die zwei statische Methoden enthält:
* `printList`: Diese Methode bekommt eine beliebige `SimpleList` übergeben und druckt deren Inhalt einfach auf der Konsole aus. Deswegen hat die Methode auch den Rückgabetyp `void`.
* `sumList`: Diese Methode nimmt als Parameter `SimpleList`-Objekte, die irgendeine Form von Zahlen enthalten (`Number` oder Subklassen davon) und berechnet deren Summe. Das Ergebnis wird als `double`-Wert zurückgegeben.
Verwenden Sie für die Methoden gebundene bzw. ungebundene Wildcards.
Kommentieren Sie die entsprechenden Zeilen in der Klasse `Main` aus und sehen überprüfen Sie, ob Ihre Implementierungen auch wie gewünscht funktionieren. Die Ausgabe sollte sein:
```console
Dies
ist
ein
Test
.
1
2
3
4
5
15.0
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# MatrixSuche
## Lernziel
Statische innere Klassen einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.lambda.matrixsuche](../sources/src/main/java/pr2/lambda/matrixsuche/).
Schreiben Sie eine Klasse `MatrixSuche`, die eine statische Methode `findEntry` anbietet. Die Methode soll in einem zweidimensionalen `int`-Array nach einem gegebenen Eintrag suchen und die Position des gefundenen Eintrags in der Matrix zurückgeben. Um die Position zurückzugeben, verwenden Sie bitte eine statische innere Klasse namens `Position`, die die x- und y-Postion enthält.
Überschreiben Sie die `toString`-Methode in `Position` und testen Sie, ob Ihre Implementierung richtig funktioniert.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,30 @@
# Innere Klasse Beobachter
## Lernziel
Zugriff von inneren Klassen auf die umgebende Klasse.
## Aufgabe
Gehen Sie in das Paket: [pr2.lambda.observer](../sources/src/main/java/pr2/lambda/observer/).
Dort finden Sie das Interface `Beobachter`.
Schreiben Sie eine Klasse `Datenhalter`, die eine einziges, privates Attribut vom Typ `int` enthält. Setzen Sie das Attribut im Konstruktor, erzeugen Sie aber keinen Getter.
Implementieren Sie das Interface `Beobachter` als nicht-statische, private innere Klasse in `Datenhalter` und erlauben Sie über den Beobachter Zugriff auf das Attribut, indem Sie ein entsprechendes Objekt vom Typ `Beobachter` zurückgeben. Testen Sie Ihre Implementierung mit einem JUnit-Test.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,30 @@
# Callback mit anonymer Klasse realisieren
## Lernziel
Eine gegebene Funktion durch einen Callback parametrieren. Der Callback wird als anonyme innere Klasse realisiert.
## Aufgabe
Gehen Sie in das Paket [pr2.lambda.callback](../sources/src/main/java/pr2/lambda/callback/).
In dieser Aufgabe wird ein sehr gängiges Muster benutzt, dass auch bei großen Suchmaschinen zum Einsatz kommt. Über eine Filter-Funktion werden aus einer Menge von Daten diejenigen ausgewählt, die gewünscht sind. Die Auswahlfunktion wird von außen vorgegeben, sodass beliebige Filteroperationen möglich sind, auch solche, die beim Schreiben des Rahmenwerkes noch nicht bekannt waren.
Sehen Sie sich das Interface `Prediacte` und die Klasse `NumberSelector` an und versuchen Sie die Funktionsweise der beiden zu verstehen. Betrachten Sie nun die Klasse `Main`, die versucht zuerst die geraden und dann die ungeraden Zahlen auszuwählen und auszugeben. Der hierfür nötige Code ist zwar schon weitgehend vorhanden, aber in der `main`-Methode müssen Sie noch zwei passende Filterfunktionen als **anonyme innere Klassen** realisieren.
Nachdem Sie die beiden Filter geschrieben haben, lassen Sie das Programm laufen und überprüfen Sie, ob wirklich die richtigen Zahlen ausgewählt werden.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,39 @@
# `BufferedReader` zum zeilenweisen Lesen einsetzen
## Lernziel
Daten Zeilenweise mit einem `BufferedReader` verwenden und dabei das Decorator Pattern einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.io.buffered_reader](../sources/src/main/java/pr2/io/buffered_reader/).
Lesen Sie die Datei [kafka.txt](../sources/src/main/resources/pr2/io/buffered_reader/kafka.txt) zeilenweise ein und geben Sie die Zeilen mit einer fortlaufenden Zeilennummer wieder aus. Verwenden Sie hierzu einen `BufferedReader`.
Eine beispielhafte Ausgabe sieht wie folgt aus:
```console
1: Verhaftung - Gespräch mit Frau Grubach - Dann Fräulein Bürstner
2:
3: Jemand mußte Josef K. verleumdet haben, denn ohne daß er etwas Böses
4: getan hätte, wurde er eines Morgens verhaftet. Die Köchin der Frau
5: Grubach, seiner Zimmervermieterin, die ihm jeden Tag gegen acht Uhr früh
6: das Frühstück brachte, kam diesmal nicht. Das war noch niemals
```
Lassen Sie das Programm laufen und überprüfen Sie, ob die Ausgabe korrekt ist. Die Beispieldatei hat 232 Zeilen.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,38 @@
# DataOutputStream
## Lernziel
Daten mit einem `DataOutputStreams` manuell serialisieren.
## Aufgabe
Gehen Sie in das Paket [pr2.io.datainputoutput_1](../sources/src/main/java/pr2/io/datainputoutput_1/).
Schreiben Sie eine Klasse `DateWriter`, die ein Datum in der Form yyyy-MM-dd (z.B. 1997-08-29) von der Konsole annimmt und als `long`-Wert mithilfe eines `DataOutputStreams` in eine Datei schreibt.
Schreiben Sie eine Klasse `DateReader`, die den `long`-Wert aus der Datei ausliest und wieder in das ursprüngliche Format bringt und auf der Konsole ausgibt.
**Hinweis:** Zur Konvertierung eines Strings in ein Datum und umgekehrt, können Sie die Klasse `SimpleDateFormat` verwenden. Ein `Date`-Objekt lässt sich leicht über die Methode `getTime` in einen `long`-Wert umwandeln. Denken Sie an eine korrekte Behandlung von möglichen Fehlern.
```console
> java DateWriter 1997-08-29
> java DateReader
Das Datum war: 1997-08-29
```
**Zusatzfrage:** Welche besondere Bedeutung hat das hier als Beispiel verwendete Datum?
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# DataOutputStream durch Serialisierung ersetzen
## Lernziel
Daten mit einem `ObjectOutputStreams` serialisieren.
## Aufgabe
Gehen Sie in das Paket [pr2.io.datainputoutput_2](../sources/src/main/java/pr2/io/datainputoutput_2/).
Verändern Sie die beiden Klassen aus der vorhergehenden Aufgabe so, dass sie jetzt anstatt eines `DataOutputStreams` bzw. eines `DataInputStreams` Serialisierung verwenden.
Vergleichen Sie bitte die Dateien, die bei diesem und der anderen Lösung entstanden sind. Was fällt ihnen auf?
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,53 @@
# Daten mit `DataOutputStream` und `DataInputStream` verarbeiten
## Lernziel
Ein eigenes Format für die Daten einer Klasse definieren und diese Dann in einer Datei speichern und aus dieser wieder laden.
## Aufgabe
Gehen Sie in das Paket [pr2.io.data_output](../sources/src/main/java/pr2/io/data_output/).
In dieser Aufgabe finden Sie bereits eine fertig implementierte Klasse `Board` vor, die ein Schachbrett repräsentiert. Allerdings wird dieses nicht für Schach benutzt, sondern für ein Spiel, bei dem man nur schwarze und weiße Steine auf das Brett stellen kann (z.B. Dame). Die Farbe der Steine wird durch die Enumeration `Color` dargestellt.
Was bei dem Schachbrett allerdings noch fehlt, ist eine Möglichkeit den Spielstand zu speichern und später wieder einzulesen.
Schauen Sie sich die Klassen `Board` und `Color` genau an und versuchen Sie diese zu verstehen. Sie können auch testweise ein Brett anlegen und mit Daten befüllen. (Wie dies geht, sehen Sie im JUnit-Test). Die `toString()`-Methode liefert eine anschauliche Darstellung des Spielfeldes.
Implementieren Sie nun die Methoden `writeToFile` und `loadFromFile` unter Zuhilfenahme von `DateOutputStream` und `DataInputStream`. Hierzu müssen Sie noch das Datenformat für die Speicherung festlegen. Dieses ist wie folgt definiert:
1. Als erstes der String "Schachbrett" im UTF8-Format, um das Datenformat zu kennzeichnen.
2. Die Koordinaten der ersten Figur im Format x-Pos, y-Pos (beide als `byte`) und Farbe entsprechend `Color.ordinal()` (als `int`)
3. Wiederholung von Schritt 2. bis alle Figuren gespeichert sind.
4. Werte `0xff`, `0xff`, `-1`, um das Dateiende zu kennzeichnen
Lassen Sie den JUnit-Test laufen, um zu sehen, ob die Daten korrekt verarbeitet werden.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

Binary file not shown.

View File

@ -0,0 +1,34 @@
# Daten mit einem `InputStream` lesen
## Lernziel
Einen `InputStream` benutzen, um Daten aus einer Datei zu lesen.
## Aufgabe
Gehen Sie in das Paket [pr2.io.datei_lesen](../sources/src/main/java/pr2/io/datei_lesen/).
Lesen Sie die Daten aus der Datei [daten.dat](../sources/src/main/resources/pr2/io/datei_lesen/daten.dat) byteweise und geben Sie den Inhalt auf der Konsole aus. Für die Ausgabe verwenden Sie bitte die Hexadezimale Darstellung, also z.B. `0x0a` für den Wert 11.
Lassen Sie das Programm laufen und betrachten Sie die Ausgabe. Wenn Sie alles korrekt implementiert haben, sollten Sie den Text
0xca 0xff 0xfe 0xba 0xbe 0x0 0xde 0xad 0xbe 0xef
sehen.
Denken Sie auch an eine Fehlerbehandlung für eventuelle Ausnahmen im Zusammenhang mit der Datei.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,36 @@
# Daten mit einem `OutputStream` schreiben
## Lernziel
Einen `OutputStream` verwenden, um Daten zu schreiben.
## Aufgabe
Gehen Sie in das Paket [pr2.io.datei_schreiben](../sources/src/main/java/pr2/io/datei_schreiben/).
In dieser Aufgabe sollen Sie eine Reihe von Bytes in eine Datei schreiben. Ein JUnit-Test wird überprüfen, ob Sie dies richtig getan haben.
Öffnen Sie einen passenden `OutputStream`, um in die Datei `output/daten.dat` zu schreiben (verwenden Sie die Konstante `FILE` für den Dateinamen). Schreiben Sie nun die Byte-Folge
```console
0xca 0xff 0xfe 0xba 0xbe 0x0 0xde 0xad 0xbe 0xef
```
hinein und schließen Sie die Datei wieder.
Führen Sie den JUnit-Test aus, der überprüft, ob alle Daten korrekt in die Datei geschrieben wurden.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,47 @@
# Filesystem-Abstraktion mit `File`
## Lernziel
Die Klasse `Path` einsetzen, um plattformunabhängig Operationen auf dem Dateisystem durchzuführen.
## Aufgabe
Gehen Sie in das Paket [pr2.io.file](../sources/src/main/java/pr2/io/file/).
Benutzen Sie die Klasse `Path`, um die Festplatte Ihres Computers, ausgehend von dem als `root` bezeichneten Verzeichnis `../..` zu durchsuchen und die Größe der Verzeichnisse zu berechnen.
Sie können die Größe eines Verzeichnisses nur indirekt bestimme, indem Sie die Größe aller Dateien in dem Verzeichnis addieren. Das Verzeichnis direkt kann man _nicht_ mit `size()` nach seiner Größe fragen, wohl aber normale Dateien. Deswegen müssen Sie in Ihrem Programm immer sauber unterscheiden, ob ein Verzeichnis vorliegt (das sie rekursiv durchlaufen müssen) oder eine normale Datei (deren Größe Sie abfragen).
Geben Sie die Verzeichnisse mit Ihrer Größe aus. Am Ende des Programms geben Sie noch die Gesamtgröße aller Unterverzeichnisse aus. Eine beispielhafte sähe wie folgt aus:
```console
Untersuche: /home/thomas/eclipse-workspace
465 Byte - /home/thomas/eclipse-workspace/.recommenders/snipmatch/repositories
1,4 kByte - /home/thomas/eclipse-workspace/.recommenders/snipmatch
4,6 MByte - /home/thomas/eclipse-workspace/.recommenders
57,5 MByte - /home/thomas/eclipse-workspace
103 Byte - /home/thomas/lib/.settings
5,8 MByte - /home/thomas/lib
Gesamtgröße: 80,4 MByte
```
Lassen Sie Ihr Programm laufen und überprüfen Sie, ob die Ausgaben plausibel sind. Vergleichen Sie das Ergebnis mit den Angaben des Windows-Explorers, Mac-Finders oder Linux-Dateimanagers.
Unter Linux und MacOS müssen Sie darauf achten, dass Sie symbolischen Links in Ihrem Programm nicht folgen, sonst zählen Sie möglicherweise zu viel.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,42 @@
# Fileattribute lesen
## Lernziel
Methoden der Klassen `Path` und `Files` nutzen und verstehen.
## Aufgabe
Gehen Sie in das Paket [pr2.io.filetest](../sources/src/main/java/pr2/io/filetest/).
Schreiben Sie eine Klasse `FileInfo`, der man auf der Konsole einen Datei- oder Verzeichnisnamen übergeben kann. Sie soll dann einige grundlegende Informationen über die Datei ausgeben (siehe Beispiel).
```console
> java FileTest /Users/thomas/Documents/../Documents/
/Users/thomas/Documents existiert
/Users/thomas/Documents ist 408 Bytes groß
/Users/thomas/Documents ist ein Verzeichnis
/Users/thomas/Documents darf gelesen werden
/Users/thomas/Documents darf geschrieben werden
> java FileTest /Users/thomas/Documents/../Documents/Uebungsklausur.pages
/Users/thomas/Documents/Uebungsklausur.pages existiert
/Users/thomas/Documents/Uebungsklausur.pages ist 258920 Bytes groß
/Users/thomas/Documents/Uebungsklausur.pages ist ein normale Datei
/Users/thomas/Documents/Uebungsklausur.pages darf gelesen werden
/Users/thomas/Documents/Uebungsklausur.pages darf geschrieben werden
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# `FilterReader`
## Lernziel
Einen eigenen Filter in Form eines `FilterReaders` programmieren und hiermit in den Datenstrom eingreifen.
## Aufgabe
Gehen Sie in das Paket [pr2.io.filter](../sources/src/main/java/pr2/io/filter/).
Vervollständigen Sie die Klasse `UCaseReader` so, dass Sie als Filter (`FilterReader`) verwendet werden kann. Die Aufgabe dieses Filters besteht darin, alle gelesenen Zeichen in Großbuchstaben umzuwandeln.
Testen Sie, ob Ihre Implementierung korrekt ist, indem Sie die JUnit-Tests ausführen.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,30 @@
# Konsolen Input/Output
## Lernziel
Daten von der Konsole lesen und über eine Ausgabeumlenkung in eine Datei umlenken. `PrintStream` und `InputStreamReader` einsetzen.
## Aufgabe
Gehen Sie in das Paket [pr2.io.konsole](../sources/src/main/java/pr2/io/konsole/).
Lesen Sie zeilenweise mithilfe eines `BufferedReaders` von der Konsole Zeichen ein. Geben Sie diese wieder auf `System.out` aus und zeigen Sie die aktuelle Zeilennummer auf `System.err` an.
Testen Sie das Programm.
Lenken Sie nun die Ausgabe von `System.out` in die Datei `output/console.log` um (siehe Konstante `LOGFILE`). Lassen Sie das Programm erneut laufen und betrachten Sie danach die Datei mit den umgeleiteten Daten.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,31 @@
# Zeilen einer Textdatei zählen
## Lernziel
Dateien zeilenweise lesen und verarbeiten.
## Aufgabe
Gehen Sie in das Paket [pr2.io.linecounter](../sources/src/main/java/pr2/io/linecounter/).
Schreiben Sie eine Klasse `LineCounter`, die den Namen einer Textdatei von der Kommandozeile entgegennimmt und dann die Anzahl der Zeilen in der Datei ausgibt.
```console
> java LineCounter ../src/LineCounter.java
Datei: ../src/LineCounter.java hat 30 Zeilen
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

Binary file not shown.

View File

@ -0,0 +1,32 @@
# `RandomAccessFile`
## Lernziel
`RandomAccessFile` sowohl zum Lesen, als auch zum Schreiben von Daten einsetzen. Verstehen, dass man sich wahlfrei durch die Datei bewegen kann.
## Aufgabe
Gehen Sie in das Paket [pr2.io.random_access](../sources/src/main/java/pr2/io/random_access/).
Bei dieser Aufgabe werden Sie ein Verfahren anwenden, das bei sehr großen Datenmengen zum Einsatz kommt: das Sortieren der Daten direkt auf der Festplatte, ohne sie vollständig in den Hauptspeicher zu laden.
Implementieren Sie einen [Bubblesort](https://de.wikipedia.org/wiki/Bubblesort) mithilfe von `RandomAccessFile` direkt auf einer Datei. Bubblesort ist ein ausgesprochen ineffizienter Algorithmus (O(n*n)), er ist aber sehr einfach zu implementieren. Da die zu sortierende Datei klein ist, können wir hier mit den Nachteilen von Bubblesort leben.
Implementieren Sie die bereits vorhandene Methode `sortFile` der Klasse `FileSort`. Öffnen Sie zuerst die Datei mithilfe von `RandomAccessFile` im Modus `"rw"`. Wandern Sie nun - entsprechend dem Bubblesort-Algorithmus - über die Daten und sortieren Sie die Bytes der Datei. Halten Sie nie mehr als zwei `byte` und die Position als `long` im Speicher. Weitere Variablen können auch noch nötig sein, um den Algorithmus zu implementieren.
Testen Sie Ihre Implementierung mit den JUnit-Tests. Die Testdatei für den Unit-Test ist [data.dat](../sources/src/main/resources/pr2/io/random_access/data.dat)
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,26 @@
# `Reader` verwenden
## Lernziel
Textdaten mithilfe von `Reader` verarbeiten.
## Aufgabe
Gehen Sie in das Paket [pr2.io.reader_writer](../sources/src/main/java/pr2/io/reader_writer/).
Lesen Sie die Datei [kafka.txt](../sources/src/main/resources/pr2/io/reader_writer/kafka.txt) mit einem passenden `Reader` ein und geben Sie sie auf der Konsole aus. Verwenden Sie nicht die `read()`-Methode, die einzelne Zeichen verarbeitet, sondern arbeiten Sie mit einem `char[]`-Buffer.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,36 @@
# Rot13-Verschlüsselung
## Lernziel
Funktionsweise und Einsatz von Filtern.
## Aufgabe
Gehen Sie in das Paket [pr2.io.rot13](../sources/src/main/java/pr2/io/rot13/).
Schreiben Sie eine Klasse `Rot13Reader`, die als Filter-Reader implementiert ist und jedes eingelesene Zeichen durch ein Zeichen ersetzt, dessen numerischer Wert um 13 höher ist (d.h. um 13 Schritte im Alphabet verschoben ist).
Schreiben Sie eine Klasse `Rot13`, die einen Dateinamen von der Kommandozeile nimmt und diese Text-Datei mithilfe von `Rot13Reader` liest und auf der Konsole ausgibt.
```console
> cat /tmp/test
DIES IST EIN TEXT, DER GLEICH ROT13 VERSCHLUESSELT WIRD.
> java Rot13 /tmp/test
QVR`-V`a-RV[-aRea9-QR_-TYRVPU-_\a>@-cR_`PUYbR``RYa-dV_Q;
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,39 @@
# Datei zerhacken
## Lernziel
Daten byteweise aus einem Stream lesen.
## Aufgabe
Gehen Sie in das Paket [pr2.io.scrambler](../sources/src/main/java/pr2/io/scrambler/).
Schreiben Sie eine Klasse `Scrambler`, die einen Dateinamen von der Kommandozeile entgegennimmt, die Datei einliest und dann wieder auf der Konsole ausgibt. Allerdings soll bei der Ausgabe nur jedes zweite Byte berücksichtigt werden.
```console
> java Scrambler ../src/Scrambler.java
motjv.oFlIpttem
motjv.oFlNtonEcpin
motjv.oIEcpin
pbi ls cabe
pbi ttcvi anSrn[ rs hosIEcpin{ i ag.egh! ){ Sse.r.rnl(
Bteen ae nee"; Sse.xt1; }
ienuSra i;
r
i e ienuSra(rs0)
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,34 @@
# Serialisierung
## Lernziel
Serialisierung einsetzen können, um Objekte zu persistieren und wieder zu laden.
## Aufgabe
Gehen Sie in das Paket [pr2.io.serialisierung](../sources/src/main/java/pr2/io/serialisierung/).
In dieser Aufgabe finden Sie bereits eine fertig implementierte Klasse `Board` vor, die ein Schachbrett repräsentiert. Allerdings wird dieses nicht für Schach benutzt, sondern für ein Spiel, bei dem man nur schwarze und weiße Steine auf das Brett stellen kann (z.B. Dame). Die Farbe der Steine wird durch die Enumeration `Color` dargestellt.
Was bei dem Schachbrett allerdings noch fehlt, ist eine Möglichkeit den Spielstand zu speichern und später wieder einzulesen.
Schauen Sie sich die Klassen `Board` und `Color` genau an und versuchen Sie diese zu verstehen. Sie können auch testweise ein Brett anlegen und mit Daten befüllen. (Wie dies geht, sehen Sie im JUnit-Test). Die `toString()`-Methode liefert eine anschauliche Darstellung des Spielfeldes.
Implementieren Sie nun die Methoden `writeToFile` und `loadFromFile` unter Zuhilfenahme von Serialisierung. D.h. anders als in der Aufgabe zu `DataOutputStream`, sollen Sie hier kein eigenes Datenformat implementieren. Verwenden Sie stattdessen einen `ObjectOutputStream` bzw. `ObjectInputStream`.
Lassen Sie den JUnit-Test laufen, um zu sehen, ob die Daten korrekt verarbeitet werden. Die Test-Datei für den Unit-Test ist [testdata.dat](../sources/src/main/resources/pr2/io/serialisierung/testdata.dat)
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

Binary file not shown.

View File

@ -0,0 +1,26 @@
# Comparable implementieren
## Lernziel
Klasse "comparable" machen.
## Aufgabe
Im Paket [pr2.interfaces.comparable_student](../sources/src/main/java/pr2/interfaces/comparable_student/) finden Sie die Klasse `Student`.
Ändern Sie die Klasse bitte so ab, dass sie das `Comparable`-Interface implementiert. Die Sortierfolge soll sein: Nachname, Vorname, Matrikelnummer.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,35 @@
# Interface Stack entwerfen
## Lernziel
Ein Interface entwerfen und dieses dann implementieren.
## Aufgabe
Gehen Sie in das Paket [pr2.interfaces.stack](../sources/src/main/java/pr2/interfaces/stack/).
Entwerfen Sie bitte ein Interface `Stack`, das die grundlegenden Operationen eines Stacks definiert:
* `push` -- schiebt ein neues Objekt auf den Stack
* `pop` -- holt das obere Element vom Stack und gibt es zurück
* `peek` -- gibt das obere Element zurück, lässt es aber auf dem Stack liegen
* `size` -- gibt die Anzahl der Elemente auf dem Stack zurück
Der Stack soll beliebige Objekte verwalten können.
Implementieren Sie das Interface mit einer Klasse `StackImpl` und schreiben Sie JUnit-Tests, um Ihre Implementierung zu testen.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,42 @@
# Interface: Uebersetzer
## Lernziel
Ein Interface implementieren.
## Aufgabe
Im Paket [pr2.interfaces.uebersetzer](../sources/src/main/java/pr2/interfaces/uebersetzer/) finden Sie das Interface `Uebersetzer`, das eine Methode zum Übersetzen von Strings definiert.
Implementieren Sie das Interface für die Sprachen Spanisch (`UebersetzerDeutschSpanisch`) und Englisch (`UebersetzerDeutschEnglisch`) und schreiben Sie eine Klasse `Translator`, die auf der Kommandozeile als erstes Argument die Sprache und als zweites das zu über\-setzende deutsche Wort nimmt und dann auf der Konsole die Übersetzung ausgibt. Es genügt, wenn Sie einige wenige Worte in den Klassen als Übersetzungen vorhalten.
```console
> java Translator englisch gehen
Übersetzung: deutsch -> englisch
gehen -> go
> java Translator spanisch gehen
Übersetzung: deutsch -> spanisch
gehen -> ir
> java Translator deutsch gehen
Unbekannte Sprache
> java Translator spanisch fliegen
Unbekanntes Wort: fliegen
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,38 @@
# Interfaces anwenden und entwerfen
## Lernziel
Ein vorhandenes Interface implementieren und ein eigenes Interface programmieren. Klassen schreiben, die mehrere Interfaces implementieren. Die Kollision von gleichnamigen Interface-Methoden und deren Konsequenzen verstehen.
## Aufgabe
Im Paket [pr2.interfaces.interfaces_e](../sources/src/main/java/pr2/interfaces/interfaces_e/) finden Sie Klassen für einen einfachen Spielecontroller.
Bei dieser Aufgabe geht es um Spielecontroller (Joysticks) und deren Abbildung in einem Programm. Schauen Sie sich das Interface `DigitalController` und die dazugehörige Implementierung `DigitalControllerImpl` an. Führen Sie die passenden Tests aus.
Schreiben Sie nun ein neues Interface `AnalogController` im Paket `api`, das dieselben Methoden wie `DigitalController` hat, mit dem Unterschied, dass die Methoden `up`, `down`, `left` und `right` einen Prozentsatz (Wert zwischen `0.0` und `1.0`) bekommen, der die Auslenkung des Joysticks anzeigt. Die Methode `getPosition` bleibt im Vergleich zum `DigitalController` unverändert. Aus z.B. der Methode `void up()` aus `DigitalController` wird also `void up(double percentage)` in `AnalogController`.
Implementieren Sie das Interface jetzt in einer Klasse `AnalogControllerImpl` im Paket `impl` und testen Sie Ihre Implementierung mit dem Test `AnalogControllerTest`. Damit der Test ausgeführt werden kann, müssen Sie die Tests noch einkommentieren.
__Hinweis:__ Lassen Sie sich bei der Implementierung der Klasse `AnalogControllerImpl` nicht zu sehr von `DigitalControllerImpl` beeinflussen. Sie müssen einen anderen Weg wählen und die Position als `double`-Werte speichern. Eine direkte Verwendung von `Point` wird nicht funktionieren, da `Point` nur ganzzahlige Positionen verwalten kann. Erst in `getPosition` sollten Sie die `double`-Werte runden.
Schreiben Sie nun eine Klasse `DualShock4` im Paket `impl`, die beide Interfaces implementiert. Beachten Sie, dass der Controller zwar zwei Steuerknüppel hat (einen analogen und einen digitalen), aber aus beiden nur eine gemeinsame Position errechnet.
__Hinweis:__ `DualShock4` implementiert zwar die Interfaces, er erbt aber nicht von den Implementierungen. Modellieren Sie die Beziehung zwischen `DualShock4` und `DigitalControllerImpl` bzw. `AnalogControllerImpl` als Assoziation. Leiten Sie dann die Aufrufe der implementierten Methoden an diese Instanzvariablen weiter.
Testen Sie die Implementierung mit dem entsprechenden Test `DualShock4Test`. Auch hier müssen Sie erst die Kommentarzeichen entfernen, bevor der Test laufen kann.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,34 @@
# StringTransmogrifier
## Lernziel
Funktionale Interfaces entwerfen und verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.lambda.mogrifier_1](../sources/src/main/java/pr2/lambda/mogrifier_1/).
Schreiben Sie ein funktionales Interface namens `StringFunction`. Die Methode des Interfaces nimmt eine String und gibt einen String zurück.
Schreiben Sie eine Klasse `StringTransmogrifier`, die eine statische Methode `transmogrify` hat, der man ein String-Array und eine `StringFunction` übergibt. Die Methode wendet die Funktion auf jedes Element des Arrays an und gibt ein neues Array mit dem Ergebnis zurück.
Schreiben Sie eine Klasse `StringTransmogrifierTest`, die ein String-Array erzeugt und dann mithilfe der Klasse `StringTransmogrifier` die Elemente verändert. Nehmen Sie folgende Änderungen am Array vor, indem Sie entsprechende Lambda-Ausdrücke oder Methodenreferenzen übergeben:
* Umwandeln aller Buchstaben in Kleinbuchstaben.
* Umwandeln aller Buchstaben in Großbuchstaben.
* Ersetzen jedes Buchstaben durch den im Alphabet folgenden.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# StringTransmogrifier erweitern
## Lernziel
Funktionale Interfaces entwerfen und verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.lambda.mogrifier_2](../sources/src/main/java/pr2/lambda/mogrifier_2/).
Ausgehend von der vorhergehenden Aufgabe, erweitern Sie das Interface `StringFunction` um eine _statische Methode_ namens `caesar`, mit der man sich eine `StringFunction` erzeugen lassen kann, die die Buchstaben des Strings um einen frei wählbaren Wert verschiebt.
Teste Sie Ihre Implementierung wieder mit `StringTransmogrifierTest`.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# Deep-Copy mit `clone()`
## Lernziel
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
## Aufgabe
Im Paket [pr2.object.clone_alien](../sources/src/main/java/pr2/object/clone_alien/) fügen Sie der Klasse `Alien` eine `clone()`-Methode hinzu, die eine _tiefe Kopie_ der Objekte anlegt. Hierzu müssen Sie auch Raumanzug mit einer `clone()`-Methode ausstatten.
Testen Sie, ob Ihre Implementierung korrekt funktioniert, indem Sie die vorhandenen Testfälle ausführen. Damit die Tests laufen können, müssen Sie die Kommentarzeichen entfernen.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# Clone
## Lernziel
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
## Aufgabe
Im Paket [pr2.object.clone_person](../sources/src/main/java/pr2/object/clone_person) finden Sie die Klasse `Person`.
Erweitern Sie die Klasse bitte um eine `clone()`-Methode, die eine tiefe Kopie (**deep copy**) durchführt.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,32 @@
# `equals()` und `hashCode()` implementieren und nutzen
## Lernziel
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
## Aufgabe
Im Projekt finden Sie ein Paket [pr2.object.equals_hashcode](../sources/src/main/java/pr2/object/equals_hashcode/) mit zwei Klassen `Wesen` und `Ork` und einen Testfall `WesenTest`.
Wenn Sie den Test ausführen wird er nicht erfolgreich sein, da die Methoden `equals` und `hashCode` in der Klasse Ork fehlen.
Schauen Sie sich die `equals`- und `hashCode`-Methoden in `Wesen` an und versuchen Sie die Methoden zu verstehen.
Schreiben Sie im nächsten Schritt korrekte `equals`- und `hashCode`-Methoden für `Ork`. __Achtung:__ Sie sollten für Ihre Lösung die Klasse `Wesen` nicht verändern.
Führen Sie den Test erneut aus, um sicherzustellen, dass die Methoden richtig funktionieren.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# equals und hashCode
## Lernziel
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
## Aufgabe
Im Paket [pr2.object.equals_person](../sources/src/main/java/pr2/object/equals_person) finden Sie die Klasse `Person`.
Geben Sie bitte den Java-Quelltext einer `equals`- und `hashCode`-Methode für diese Klasse an, die die in der Klasse `java.lang.Object` zugesicherte Äquivalenzbeziehung einhalten.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,38 @@
# `toString()`-Methode implementieren
## Lernziel
Klassen mit einer `toString()`-Methode versehen und diese gegenseitig nutzen.
## Aufgabe
Gehen Sie in das Paket [pr2.object.tostring](../sources/src/main/java/pr2/object/tostring/).
Lassen Sie die Klasse `Ausgabe` laufen und sehen Sie sich die Ausgabe an. Versuchen Sie zu verstehen, wie es zu dieser Ausgabe kommt und was sie bedeutet.
Schreiben Sie im nächsten Schritt für die Klassen `Alien` und `Raumanzug` passende `toString()`-Methoden, sodass beim Aufruf der Klasse `Ausgabe` eine sinnvolle Ausgabe entsteht. Geben Sie
* den Namen des Aliens,
* die Marke des Raumanzuges und
* den vorhandenen Sauerstoffvorrat
aus.
Eine beispielhafte Ausgabe könnte wie folgt aussehen:
`Ich bin ein Alien und heiße 'E.T.'. Ich trage einen Raumanzug von Spaceman 2000 (Füllstand 19%).`
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Optimierung bei Integer
## Lernziel
Wrapper-Klassen und deren Optimierungen verstehen.
## Aufgabe
Gehen Sie in das Paket [pr2.object.wrapper_boxsearch](../sources/src/main/java/pr2/object/wrapper_boxsearch/).
Bei den Wrapper-Typen (z.B. `Integer`) wird eine interne Optimierung durchgeführt, die dazu führt, dass bei Werten unterhalb einer bestimmten Schranke, beim Autoboxing immer wieder dasselbe Objekt verwendet wird, anstatt ein neues Wrapper-Objekt zu erzeugten.
Schreiben Sie bitte ein Programm in der Klasse `BoxSearcher`, das für `Integer` diese Schranke sucht, indem es die Werte von `0` bis `200` auf diese Eigenschaft hin untersucht und für jeden Integer-Wert ausgibt, ob der Mechanismus bei ihm greift oder nicht.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,39 @@
# Methoden der Wrapper-Klassen
## Lernziel
Wrapper-Klassen nutzen, um Zahlen umzuwandeln.
## Aufgabe
Gehen Sie in das Paket [pr2.object.wrapper_umwandler](../sources/src/main/java/pr2/object/wrapper_umwandler/).
Vervollständigen Sie die Klasse `Umwandler` so, dass die Methode `toString` eine Zahl nimmt und in vier verschiedenen Formaten ausgibt. Schauen Sie sich die Klasse `Integer` an und überlegen Sie, welche der vorhandenen statischen Methoden für das Problem passend sein könnten.
Eine beispielhafte könnte wie folgt aussehen:
```console
Dezimal: 17871
Hex : 45cf
Oktal : 42717
Binär : 100010111001111
```
Im nächsten Schritt stellen Sie bitte die Methode `fromString` fertig. Auch hierzu sollten Sie sich die Klasse `Integer` genauer anschauen.
Führen Sie das Programm aus und schauen Sie, ob das Ergebnis sinnvoll ist.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,36 @@
# Klasse per Reflection analysieren
## Lernziel
Reflection einsetzen, um Klassen zu untersuchen.
## Aufgabe
Gehen Sie in das Paket [pr2.reflection.analyzer](../sources/src/main/java/pr2/reflection/analyzer/).
Schreiben Sie eine Klasse `Analyzer`, der man auf der Kommandozeile den Namen einer Klasse übergeben kann. Diese Klasse wird dann von `Analyzer` geladen und alle öffentlichen Methoden und Attribute der angegebenen Klasse werden auf der Konsole ausgegeben.
```console
> java Analyzer java.awt.Point
public int java.awt.Point.x
public int java.awt.Point.y
public boolean java.awt.Point.equals(java.lang.Object)
public java.lang.String java.awt.Point.toString()
public java.awt.Point java.awt.Point.getLocation(
...
```
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,27 @@
# Objekte per Reflection erzeugen
## Lernziel
Objekte per Reflection erzeugen.
## Aufgabe
Gehen Sie in das Paket [pr2.reflection.reflector](../sources/src/main/java/pr2/reflection/reflector/).
Schreiben Sie eine Klasse `Reflector`, die über Reflection ein neues Objekt vom Typ `java.util.Date` erzeugt und auf diesem Objekt die `toString`-Methode aufruft. Das Ergebnis des Aufrufs soll dann auf der Konsole ausgegeben werden.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Kleinbuchstaben in einem String zählen
## Lernziel
Streams verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.chars_1](../.. /sources/src/main/java/pr2/streams/chars_1/).
Schreiben Sie eine Klasse `CountLetters` mit der statischen Methode `count`. Zählen Sie alle Kleinbuchstaben in einem String (Tipp: schauen Sie sich die `chars`-Methode der Klasse String an).
Testen Sie Ihre Implementierung mit der Klasse `CountLettersTest`.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Buchstaben in einer Liste von Strings zählen
## Lernziel
Streams verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.chars_2](../.. /sources/src/main/java/pr2/streams/chars_2/).
Zählen Sie die Zeichen in einer Liste von Strings (Typ `List<String>`).
Testen Sie Ihre Implementierung mit der Klasse `CountLettersTest`.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Kleinbuchstaben in einem String zählen
## Lernziel
Streams verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.chars_3](../.. /sources/src/main/java/pr2/streams/chars_3/).
Ausgehend von der vorhergehenden Aufgabe, zählen Sie jetzt nur noch die Kleinbuchstaben in den Strings der Liste.
Testen Sie Ihre Implementierung mit der Klasse `CountLettersTest`.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Liste filtern
## Lernziel
Daten in Streams filtern.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.filter](../.. /sources/src/main/java/pr2/streams/filter/).
Gegeben sei eine Liste von Strings (`List<String>`). Erzeugen Sie eine neue Liste, in der nur noch die Strings mit mindestens fünf Zeichen enthalten sind und in der jeder String durch eine Variante ersetzt ist, in der er nur noch aus Kleinbuchstaben besteht.
Testen Sie Ihre Implementierung mit der Klasse `FilterListTest`.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,994 @@
96;Half-Life 2;9.2;Nov 16, 2004
96;Grand Theft Auto V;7.8;Apr 14, 2015
96;The Orange Box;9.3;Oct 10, 2007
96;Half-Life;9.1;Oct 31, 1998
96;BioShock;8.4;Aug 21, 2007
95;Baldur's Gate II: Shadows of Amn;9.2;Sep 24, 2000
95;Portal 2;8.8;Apr 19, 2011
94;The Elder Scrolls V: Skyrim;8.1;Nov 11, 2011
94;Mass Effect 2;8.7;Jan 26, 2010
94;Grand Theft Auto: Vice City;8.8;May 12, 2003
94;Civilization II;9.0;Feb 29, 1996
94;Quake;8.8;Jun 22, 1996
94;BioShock Infinite;8.5;Mar 26, 2013
94;The Elder Scrolls IV: Oblivion;8.0;Mar 20, 2006
94;Grim Fandango;9.1;Sep 30, 1998
94;Diablo;8.7;Nov 30, 1996
94;Sid Meier's Civilization IV;8.2;Oct 25, 2005
93;The Witcher 3: Wild Hunt;9.1;May 19, 2015
93;Company of Heroes;8.8;Sep 13, 2006
93;Unreal Tournament 2004;8.9;Mar 16, 2004
93;Starcraft II: Wings of Liberty;8.2;Jul 27, 2010
93;Minecraft;7.4;May 10, 2009
93;Grand Theft Auto III;8.4;May 20, 2002
93;Homeworld;8.9;Aug 31, 1999
93;Star Wars: Knights of the Old Republic;9.0;Nov 18, 2003
93;World of Warcraft;7.2;Nov 23, 2004
93;Grand Theft Auto: San Andreas;8.8;Jun 7, 2005
92;Call of Duty 4: Modern Warfare;8.5;Nov 5, 2007
92;Warcraft III: Reign of Chaos;9.1;Jul 3, 2002
92;The Sims;7.9;Jan 31, 2000
92;Sid Meier's Gettysburg!;7.7;Sep 30, 1997
92;World Soccer Winning Eleven 7 International;7.9;Apr 9, 2004
92;Team Fortress 2;9.2;Apr 8, 2008
92;System Shock 2;9.1;Aug 11, 1999
92;Tom Clancy's Splinter Cell: Chaos Theory;8.8;Mar 28, 2005
92;Undertale;8.2;Sep 15, 2015
92;Rome: Total War;9.1;Sep 22, 2004
92;Thief: The Dark Project;9.1;Nov 30, 1998
92;Age of Empires II: The Age of Kings;9.0;Sep 30, 1999
92;Unreal Tournament (1999);9.1;Nov 30, 1999
92;Sid Meier's Alpha Centauri;9.1;Feb 12, 1999
92;Galactic Civilizations II: Twilight of the Arnor;8.4;Apr 30, 2008
92;Tiger Woods PGA Tour 2003;6.0;Oct 31, 2002
91;Dishonored;8.4;Oct 9, 2012
91;Medal of Honor: Allied Assault;8.6;Jan 20, 2002
91;Myth: The Fallen Lords;8.8;Oct 31, 1997
91;World of Warcraft: Wrath of the Lich King;7.4;Nov 13, 2008
91;F1 Challenge '99-'02;8.3;Jun 24, 2003
91;Baldur's Gate;9.0;Nov 30, 1998
91;IL-2 Sturmovik;8.7;Nov 18, 2001
91;FreeSpace 2;8.8;Sep 30, 1999
91;Metal Gear Solid V: The Phantom Pain;7.7;Sep 1, 2015
91;Tom Clancy's Splinter Cell;8.6;Feb 19, 2003
91;Crysis;8.0;Nov 13, 2007
91;World of Warcraft: The Burning Crusade;7.9;Jan 16, 2007
91;Tiger Woods PGA Tour 2005;4.6;Sep 20, 2004
91;The Longest Journey;8.9;Nov 16, 2000
91;Tony Hawk's Pro Skater 2;8.5;Oct 31, 2000
91;Star Wars Jedi Knight: Dark Forces II;8.5;Sep 30, 1997
91;Batman: Arkham Asylum;8.7;Sep 15, 2009
91;Galactic Civilizations II: Dark Avatar;8.2;Feb 14, 2007
91;The Operative: No One Lives Forever;8.9;Nov 9, 2000
91;Battlefield 2;8.4;Jun 21, 2005
91;Street Fighter IV;8.0;Jul 1, 2009
91;Fallout 3;7.9;Oct 28, 2008
91;Batman: Arkham City;8.6;Nov 22, 2011
91;Fez;6.5;May 1, 2013
91;Planescape: Torment;9.3;Nov 30, 1999
91;Neverwinter Nights;8.1;Jun 16, 2002
91;No One Lives Forever 2: A Spy in H.A.R.M.'s Way;8.7;Sep 30, 2002
91;Dragon Age: Origins;8.6;Nov 3, 2009
91;Mark of the Ninja;8.0;Oct 16, 2012
91;Dark Souls II;7.1;Apr 25, 2014
91;Call of Duty;8.5;Oct 29, 2003
91;Madden NFL 2004;8.2;Aug 12, 2003
90;The Sims 2;8.8;Sep 14, 2004
90;World of Warcraft: Cataclysm;5.5;Dec 7, 2010
90;World of Goo;8.5;Oct 21, 2008
90;Spelunky;7.2;Aug 8, 2013
90;Black & White;7.6;Mar 26, 2001
90;Portal;9.3;Apr 8, 2008
90;NHL 2001;6.9;Sep 28, 2000
90;Tony Hawk's Pro Skater 3;8.6;Mar 28, 2002
90;Deus Ex;9.3;Jun 26, 2000
90;Half-Life 2: Episode Two;9.2;Oct 10, 2007
90;Braid;8.6;Jan 26, 2010
90;The Chronicles of Riddick: Escape From Butcher Bay - Developer's Cut;8.7;Dec 8, 2004
90;Sid Meier's Civilization III;8.4;Oct 30, 2001
90;Silent Hunter III;7.8;Mar 15, 2005
90;Sid Meier's Civilization V;7.8;Sep 21, 2010
90;Falcon 4.0: Allied Force;8.6;Jun 28, 2005
90;Deus Ex: Human Revolution;8.5;Aug 23, 2011
90;Dark Souls III;8.2;Apr 12, 2016
90;Flight Simulator 2002;8.4;Oct 19, 2001
90;Brothers: A Tale of Two Sons;8.5;Sep 3, 2013
90;Dota 2;6.2;Jul 9, 2013
90;Guild Wars 2;7.9;Aug 28, 2012
90;Freedom Force;8.0;Mar 24, 2002
90;GTR 2;8.7;Sep 29, 2006
90;Grand Theft Auto IV;6.5;Dec 2, 2008
90;Total War: Shogun 2;8.3;Mar 15, 2011
90;Empire: Total War;6.9;Mar 3, 2009
90;Command & Conquer: Red Alert;8.9;Oct 31, 1996
89;Star Wars Jedi Knight II: Jedi Outcast;8.6;Mar 26, 2002
89;The Walking Dead: A Telltale Games Series;8.7;Dec 11, 2012
89;Age of Mythology;8.9;Nov 1, 2002
89;Sacrifice;8.8;Nov 5, 2000
89;The Witcher 3: Wild Hunt - Hearts of Stone;8.4;Oct 13, 2015
89;Pillars of Eternity;8.3;Mar 26, 2015
89;The Elder Scrolls III: Morrowind;9.0;May 1, 2002
89;Rocksmith 2014 Edition;7.9;Oct 22, 2013
89;Fallout;8.9;Sep 30, 1997
89;World Soccer Winning Eleven 9;8.4;Apr 28, 2006
89;Worldwide Soccer Manager 2005;8.7;Dec 7, 2004
89;Left 4 Dead;9.2;Nov 18, 2008
89;Left 4 Dead 2;8.5;Nov 17, 2009
89;NASCAR Racing 2002 Season;5.8;Feb 14, 2002
89;Mass Effect;8.6;May 28, 2008
89;Combat Mission: Barbarossa to Berlin;8.3;Oct 29, 2002
89;Homeworld: Cataclysm;8.9;Sep 7, 2000
89;The Walking Dead: Episode 5 - No Time Left;8.9;Nov 21, 2012
89;Guild Wars;8.4;Apr 26, 2005
89;Borderlands 2;8.2;Sep 18, 2012
89;Max Payne;9.1;Jul 23, 2001
89;Out of the Park Baseball 15;7.2;Apr 21, 2014
89;World in Conflict;8.1;Sep 18, 2007
89;NASCAR Racing 4;8.2;Feb 6, 2001
89;Duke Nukem 3D;8.8;Jan 31, 1996
89;Far Cry;8.0;Mar 23, 2004
89;FIFA Soccer 12;7.1;Sep 27, 2011
89;XCOM: Enemy Unknown;8.2;Oct 9, 2012
89;Mass Effect 3;5.4;Mar 6, 2012
89;Rise of Nations;9.0;May 20, 2003
89;NASCAR Racing 2003 Season;8.6;Feb 14, 2003
89;Descent 3;8.3;Jun 14, 2000
89;The Curse of Monkey Island;9.1;Oct 31, 1997
89;Battlefield 3;7.5;Oct 25, 2011
89;Battlefield 1942;8.6;Sep 10, 2002
89;Madden NFL 2003;8.4;Aug 12, 2002
89;DiRT 2;8.3;Dec 10, 2009
89;Stardew Valley;8.5;Feb 26, 2016
89;Prince of Persia: The Sands of Time;8.6;Nov 30, 2003
89;Railroad Tycoon II;8.4;Oct 31, 1998
88;Microsoft Flight Simulator 2004: A Century of Flight;8.2;Jul 29, 2003
88;Medieval: Total War;8.8;Aug 19, 2002
88;Mafia;9.1;Aug 27, 2002
88;LIMBO;8.1;Aug 2, 2011
88;Nuclear Throne;7.4;Dec 5, 2015
88;Crusader Kings II: The Old Gods;8.8;May 28, 2013
88;Assassin's Creed: Brotherhood;8.2;Mar 22, 2011
88;Superbike 2001;6.5;Oct 9, 2000
88;F.E.A.R.;8.3;Oct 17, 2005
88;Kerbal Space Program;8.1;Apr 27, 2015
88;Tribes 2;8.5;Mar 28, 2001
88;Age of Empires II: The Conquerors Expansion;9.0;Aug 24, 2000
88;Tiger Woods PGA Tour 2004;8.8;Sep 22, 2003
88;Warcraft III: The Frozen Throne;9.0;Jul 1, 2003
88;Starcraft;9.1;Apr 1, 1998
88;Far Cry 3;8.2;Dec 4, 2012
88;XCOM 2;7.0;Feb 5, 2016
88;World Soccer Winning Eleven 8 International;8.5;Feb 16, 2005
88;Torchlight II;8.6;Sep 20, 2012
88;Myth II: Soulblighter;9.0;Nov 30, 1998
88;Return to Castle Wolfenstein;8.7;Nov 19, 2001
88;Shogo: Mobile Armor Division;8.9;Sep 30, 1998
88;Thirty Flights of Loving;5.0;Aug 20, 2012
88;Hearthstone: Heroes of Warcraft;6.3;Mar 11, 2014
88;Medieval II: Total War;8.9;Nov 13, 2006
88;F1 2002;7.6;Jun 13, 2002
88;The Stanley Parable;8.0;Oct 17, 2013
88;BioShock 2;8.0;Feb 9, 2010
88;Counter-Strike: Source;8.9;Sep 26, 2005
88;Starcraft II: Legacy of the Void;8.3;Nov 10, 2015
88;Diablo III;4.0;May 15, 2012
88;Rise of Nations: Thrones & Patriots;8.8;Apr 27, 2004
88;Sid Meier's Pirates!;8.3;Nov 22, 2004
88;EVE Online: Special Edition;7.8;Mar 10, 2009
88;Guacamelee! Gold Edition;7.3;Aug 8, 2013
88;Armadillo Run;8.2;Apr 22, 2006
88;Dark Age of Camelot;8.9;Sep 1, 2001
88;Baldur's Gate II: Throne of Bhaal;8.9;Jun 21, 2001
88;Counter-Strike;9.3;Nov 8, 2000
88;Tony Hawk's Pro Skater 4;8.4;Aug 27, 2003
88;Ori and the Blind Forest;8.7;Mar 11, 2015
88;Diablo II;8.8;Jun 29, 2000
88;The Witcher 2: Assassins of Kings;8.5;May 17, 2011
87;Plants vs. Zombies;8.9;Aug 18, 2009
87;Doom 3;7.5;Aug 3, 2004
87;Super Meat Boy;8.3;Apr 5, 2011
87;Football Manager 2010;9.1;Nov 3, 2009
87;Oddworld: Abe's Oddysee - New 'n' Tasty;7.8;Feb 25, 2015
87;Tom Clancy's Splinter Cell: Pandora Tomorrow;8.0;Mar 23, 2004
87;Europa Universalis II;8.8;Nov 12, 2001
87;Burnout Paradise: The Ultimate Box;7.5;Feb 5, 2009
87;Battlefield: Bad Company 2;8.3;Mar 2, 2010
87;GRID;7.9;Jun 3, 2008
87;Crypt of the NecroDancer;7.7;Apr 23, 2015
87;Sins of a Solar Empire;8.2;Feb 4, 2008
87;MechWarrior 4: Vengeance;8.2;Nov 23, 2000
87;Thief II: The Metal Age;9.1;Feb 29, 2000
87;Diablo II: Lord of Destruction;9.1;Jun 27, 2001
87;Monkey Island 2 Special Edition: LeChuck's Revenge;9.0;Jul 7, 2010
87;Half-Life 2: Episode One;8.6;Jun 1, 2006
87;The Swapper;8.7;May 30, 2013
87;Hitman 2: Silent Assassin;8.2;Oct 1, 2002
87;Year Walk;7.0;Mar 6, 2014
87;Max Payne 3;7.6;Jun 1, 2012
87;TowerFall Ascension;6.6;Mar 11, 2014
87;Battlefield 3: Armored Kill;7.0;Sep 11, 2012
87;NHL 2002;8.7;Sep 17, 2001
87;Icewind Dale;8.3;Jun 29, 2000
87;The Witness;6.6;Jan 26, 2016
87;Brothers in Arms: Road to Hill 30;7.1;Mar 15, 2005
87;Kohan: Immortal Sovereigns;8.6;Mar 14, 2001
87;Day of the Tentacle Remastered;7.9;Mar 21, 2016
87;Dead Space 2;8.3;Jan 25, 2011
87;Diablo III: Reaper of Souls;6.6;Mar 25, 2014
87;Shogun: Total War Warlord Edition;8.7;Aug 13, 2001
87;Serious Sam: The First Encounter;8.4;Mar 21, 2001
87;Grand Prix 3;8.3;Aug 24, 2000
87;Call of Duty: United Offensive;8.3;Sep 14, 2004
87;Divinity: Original Sin;8.7;Jan 17, 2014
87;Company of Heroes: Opposing Fronts;8.6;Sep 24, 2007
87;Psychonauts;8.9;Apr 19, 2005
87;Gears of War;7.8;Nov 6, 2007
87;Out of the Park Baseball 4;7.8;Feb 28, 2002
87;Europa Universalis IV;8.7;Aug 13, 2013
87;NHL 2004;8.2;Sep 22, 2003
87;Zeus: Master of Olympus;9.0;Oct 22, 2000
87;World of Warcraft: Warlords of Draenor;6.0;Nov 13, 2014
87;Warhammer 40,000: Dawn of War - Dark Crusade;8.9;Oct 9, 2006
87;Commandos 2: Men of Courage;8.8;Sep 20, 2001
86;Tales From The Borderlands: Episode 5 - The Vault of the Traveler;8.7;Oct 20, 2015
86;Bastion;8.6;Aug 16, 2011
86;Gone Home;5.4;Aug 15, 2013
86;Pac-Man Championship Edition DX +;7.3;Sep 24, 2013
86;Supreme Commander;8.3;Feb 20, 2007
86;Total War: Shogun 2 - Fall of the Samurai;8.4;Mar 23, 2012
86;Startopia;8.7;Jun 19, 2001
86;Enemy Engaged: RAH-66 Comanche Versus Ka-52 Hokum;8.3;Jul 31, 2000
86;Fallout 2;9.2;Sep 30, 1998
86;Final Fantasy XIV: Heavensward;7.7;Jun 23, 2015
86;Football Manager 2013;6.7;Nov 1, 2012
86;Out of the Park Baseball 14;8.6;Apr 15, 2013
86;The Witcher: Enhanced Edition;8.5;Sep 16, 2008
86;Borderlands: The Secret Armory of General Knoxx;7.6;Feb 25, 2010
86;Call of Duty 2;8.3;Oct 25, 2005
86;Astebreed;7.3;May 30, 2014
86;Ground Control;7.8;May 31, 2000
86;Rise of the Tomb Raider;8.0;Jan 28, 2016
86;Resident Evil 5;7.1;Sep 18, 2009
86;Saints Row IV;7.4;Aug 20, 2013
86;Black Mesa;9.0;Sep 14, 2012
86;EverQuest: Omens of War;7.7;Sep 13, 2004
86;Steel Beasts;8.4;Sep 24, 2000
86;Total Annihilation;8.9;Sep 30, 1997
86;Need for Speed: Hot Pursuit;6.7;Nov 16, 2010
86;FIFA Soccer 13;6.6;Sep 25, 2012
86;Sid Meier's Civilization IV: Beyond the Sword;8.6;Jul 23, 2007
86;The Sims 3;7.6;Jun 2, 2009
86;Freedom Force vs The 3rd Reich;7.7;Mar 8, 2005
86;The Binding of Isaac: Rebirth;8.3;Nov 4, 2014
86;Tribes: Ascend;7.7;Apr 12, 2012
86;Titanfall;6.1;Mar 11, 2014
86;Rayman Origins;8.4;Mar 29, 2012
86;Her Story;5.7;Jun 24, 2015
86;Starcraft II: Heart of the Swarm;7.9;Mar 12, 2013
86;Mass Effect 2: Lair of the Shadow Broker;8.5;Sep 7, 2010
86;LEGO Star Wars II: The Original Trilogy;8.3;Sep 12, 2006
86;Dungeon Siege;7.9;Mar 31, 2002
86;Crysis 2;6.7;Mar 22, 2011
86;Call of Duty: Modern Warfare 2;4.1;Nov 10, 2009
86;The Secret of Monkey Island: Special Edition;9.1;Jul 15, 2009
86;Max Payne 2: The Fall of Max Payne;9.0;Oct 14, 2003
86;Homeworld Remastered Collection;8.2;Feb 25, 2015
86;Galactic Civilizations II: Dread Lords;8.0;Feb 21, 2006
86;Tomb Raider;8.5;Mar 5, 2013
86;Star Trek: Voyager Elite Force;8.2;Sep 20, 2000
86;Worldwide Soccer Manager 2008;8.4;Oct 23, 2007
86;IL-2 Sturmovik: Forgotten Battles;8.6;Mar 2, 2003
86;Hyper Light Drifter;8.1;Mar 31, 2016
86;DiRT 3;6.9;May 24, 2011
86;Unreal Tournament 2003;8.1;Sep 30, 2002
86;Age of Wonders II: The Wizard's Throne;8.4;Jun 12, 2002
86;Links 2001;6.8;Oct 24, 2000
86;EverQuest: The Ruins of Kunark;8.8;Mar 31, 2000
86;Full Throttle;8.8;Apr 30, 1995
86;The Lord of the Rings Online: Shadows of Angmar;8.1;Apr 24, 2007
86;Pony Island;6.8;Jan 4, 2016
86;Warhammer 40,000: Dawn of War;8.8;Sep 20, 2004
86;Warhammer Online: Age of Reckoning;7.9;Sep 16, 2008
86;Dead Space;8.0;Oct 20, 2008
86;Bionic Commando Rearmed;7.0;Aug 13, 2008
86;Command & Conquer: Red Alert 2 - Yuri's Revenge;9.0;Oct 10, 2001
86;Europa Universalis;8.1;Feb 2, 2001
86;Escape from Monkey Island;8.2;Nov 8, 2000
86;IL-2 Sturmovik: 1946;8.8;Mar 13, 2007
86;XCOM: Enemy Within;7.9;Nov 12, 2013
86;Battlefield 3: Back to Karkand;7.2;Dec 13, 2011
86;Heroes of the Storm;6.7;Jun 2, 2015
86;Civilization III: Conquests;8.4;Nov 4, 2003
86;Path of Exile;8.0;Jan 25, 2013
86;Battlefield: Bad Company 2 Vietnam;8.1;Dec 18, 2010
86;Assassin's Creed II;6.8;Mar 9, 2010
86;The Elder Scrolls IV: Shivering Isles;8.4;Mar 26, 2007
86;DiRT Rally;8.8;Dec 7, 2015
86;Rocket League;8.1;Jul 7, 2015
86;Allegiance;8.2;Mar 31, 2000
85;The Talos Principle;8.5;Dec 11, 2014
85;Cities: Skylines;8.9;Mar 10, 2015
85;Falcon 4.0;8.0;Nov 30, 1998
85;Tom Clancy's Rainbow Six;8.6;Jul 31, 1998
85;Madden NFL 2005;6.4;Sep 14, 2004
85;Legend of Grimrock II;8.0;Oct 15, 2014
85;Sam & Max Episode 205: What's New, Beelzebub?;8.6;Apr 10, 2008
85;Dragon Age: Inquisition;5.8;Nov 18, 2014
85;Tales from the Borderlands: A Telltale Game Series;8.7;Apr 26, 2016
85;Tom Clancy's Rainbow Six: Vegas;7.7;Dec 12, 2006
85;City of Heroes;8.5;Apr 27, 2004
85;SWAT 4;8.6;Apr 5, 2005
85;Clive Barker's Undying;8.7;Feb 21, 2001
85;EverQuest;8.2;Mar 16, 1999
85;Warhammer 40,000: Dawn of War II;8.1;Feb 18, 2009
85;Command & Conquer 3: Tiberium Wars;8.0;Mar 26, 2007
85;Bit.Trip Presents...Runner2: Future Legend of Rhythm Alien;8.2;Feb 26, 2013
85;Hotline Miami;8.5;Oct 23, 2012
85;Out of the Park Baseball 13;8.2;Apr 9, 2012
85;Wizardry 8;8.6;Nov 14, 2001
85;Aliens Versus Predator 2;8.7;Oct 31, 2001
85;Operation Flashpoint: Cold War Crisis;9.0;Aug 30, 2001
85;Tropico;8.4;Apr 5, 2001
85;Giants: Citizen Kabuto;8.9;Dec 6, 2000
85;NASCAR SimRacing;4.9;Feb 15, 2005
85;The Lord of the Rings Online: Mines of Moria;8.3;Nov 17, 2008
85;The Binding of Isaac: Afterbirth;8.1;Oct 30, 2015
85;Amnesia: The Dark Descent;8.6;Feb 17, 2011
85;GTR FIA Racing;8.6;May 3, 2005
85;Football Manager 2011;8.4;Nov 23, 2010
85;Dust: An Elysian Tail;8.5;May 24, 2013
85;South Park: The Stick of Truth;8.6;Mar 4, 2014
85;Dark Souls: Prepare to Die Edition;7.4;Aug 24, 2012
85;Medieval II: Total War Kingdoms;8.8;Aug 28, 2007
85;Shovel Knight;7.9;Jun 26, 2014
85;DmC: Devil May Cry;6.7;Jan 24, 2013
85;Peggle Deluxe;8.1;Feb 19, 2008
85;Monopoly Tycoon;8.0;Sep 24, 2001
85;Indigo Prophecy;8.3;Oct 2, 2005
85;Prince of Persia: The Two Thrones;8.0;Dec 1, 2005
85;Sam & Max Episode 204: Chariots of the Dogs;8.1;Mar 13, 2008
85;Assetto Corsa;8.4;Dec 19, 2014
85;Machinarium;8.8;Oct 16, 2009
85;Frozen Synapse;7.7;May 26, 2011
85;Valkyria Chronicles;8.3;Nov 11, 2014
85;Freelancer;8.9;Mar 3, 2003
85;Zenzizenzic;5.9;Jul 23, 2015
85;The Wolf Among Us: Episode 1 - Faith;9.0;Oct 11, 2013
85;Mega Man Legacy Collection;7.3;Aug 25, 2015
85;Warhammer 40,000: Dawn of War II - Chaos Rising;8.7;Mar 11, 2010
85;Far Cry 2;5.8;Oct 21, 2008
85;The Walking Dead: Episode 3 - Long Road Ahead;8.4;Aug 29, 2012
85;AudioSurf;8.8;Feb 15, 2008
85;BattleBlock Theater;8.0;May 15, 2014
85;Star Wars: Knights of the Old Republic II - The Sith Lords;8.4;Feb 8, 2005
85;MVP Baseball 2005;8.1;Feb 22, 2005
85;The Elder Scrolls III: Bloodmoon;8.5;Jun 3, 2003
85;Rogue Legacy;7.9;Jun 27, 2013
85;Chaos Reborn;8.4;Oct 26, 2015
85;Thief: Deadly Shadows;8.4;May 25, 2004
85;Football Manager 2014;5.4;Oct 30, 2013
85;System Shock: Enhanced Edition;7.9;Sep 22, 2015
85;EverQuest: Gates of Discord;6.8;Feb 9, 2004
85;FIFA 2001 Major League Soccer;7.3;Oct 30, 2000
85;Sid Meier's Civilization V: Brave New World;8.6;Jul 9, 2013
85;Final Fantasy XI;7.5;Oct 28, 2003
85;Serious Sam: The Second Encounter;8.5;Feb 4, 2002
85;The Sims: Hot Date;7.9;Nov 12, 2001
85;American McGee's Alice;8.2;Dec 6, 2000
85;Trials Evolution: Gold Edition;6.7;Mar 21, 2013
85;Warhammer 40,000: Dawn of War - Winter Assault;8.3;Sep 21, 2005
85;Tony Hawk's Underground 2;7.9;Oct 4, 2004
85;Papers, Please;8.5;Aug 8, 2013
85;Star Wars: The Old Republic;5.9;Dec 20, 2011
85;Anarchy Online: Shadowlands;8.7;Sep 8, 2003
85;Dark Age of Camelot: Shrouded Isles;8.8;Dec 2, 2002
85;Obsidian;8.3;Dec 31, 1996
84;The Walking Dead: Episode 2 - Starved for Help;8.6;Jun 29, 2012
84;Saints Row: The Third;8.1;Nov 15, 2011
84;Fallout: New Vegas;8.5;Oct 19, 2010
84;The Movies;8.3;Nov 8, 2005
84;Neverwinter Nights: Hordes of the Underdark;8.6;Dec 2, 2003
84;Command & Conquer: Generals;8.3;Feb 10, 2003
84;Sid Meier's SimGolf;8.2;Jan 23, 2002
84;Middle-earth: Shadow of Mordor;8.0;Sep 30, 2014
84;SpaceChem;8.4;Mar 2, 2011
84;Downwell;6.2;Oct 15, 2015
84;Pinball FX 2;8.0;Oct 27, 2012
84;Devil Daggers;6.7;Feb 18, 2016
84;PlanetSide 2;7.0;Nov 20, 2012
84;Enter the Gungeon;7.4;Apr 5, 2016
84;GT Legends;8.6;Jan 23, 2006
84;Hearthstone: Goblins Vs. Gnomes;6.6;Dec 8, 2014
84;Space Rangers 2: Rise of the Dominators;9.0;Mar 27, 2006
84;Tales From The Borderlands: Episode 1 - Zer0 Sum;8.4;Nov 25, 2014
84;Puzzle Quest: Challenge of the Warlords;8.3;Oct 10, 2007
84;Heroes of Might and Magic IV;7.6;Mar 29, 2002
84;Command & Conquer: Red Alert 2;8.9;Oct 21, 2000
84;Shogun: Total War;8.7;Jun 13, 2000
84;DiRT;7.2;Jun 19, 2007
84;Darkest Dungeon;8.0;Jan 19, 2016
84;Super Street Fighter IV: Arcade Edition;7.8;Jul 13, 2011
84;Football Manager 2012;8.0;Oct 20, 2011
84;Guild Wars Factions;8.5;Apr 28, 2006
84;80 Days (2015);6.1;Sep 29, 2015
84;Spore;5.2;Sep 7, 2008
84;Unity of Command;7.2;Nov 15, 2011
84;Hearthstone: The Grand Tournament;4.0;Aug 24, 2015
84;Metro Redux;8.0;Aug 26, 2014
84;Time Gentlemen, Please!;7.6;Jul 2, 2009
84;Europa Universalis IV: Wealth of Nations;8.4;May 29, 2014
84;Mass Effect 3: Citadel;7.8;Mar 5, 2013
84;Disciples II: Dark Prophecy;8.6;Jan 22, 2002
84;Just Cause 2;7.7;Mar 23, 2010
84;Crysis Warhead;7.9;Sep 16, 2008
84;Assassin's Creed IV: Black Flag;7.7;Nov 19, 2013
84;Age of Mythology: The Titans;8.7;Sep 30, 2003
84;SimCity 4;8.7;Jan 12, 2003
84;Microsoft Train Simulator;8.4;May 31, 2001
84;Rise of Nations: Rise of Legends;8.5;May 9, 2006
84;TOCA Race Driver 3;7.8;Feb 24, 2006
84;FTL: Faster Than Light;8.4;Sep 14, 2012
84;SOMA;8.2;Sep 22, 2015
84;DEFCON: Everybody Dies;8.3;Mar 26, 2007
84;Tron 2.0;8.3;Aug 26, 2003
84;Brothers in Arms: Earned in Blood;7.3;Oct 6, 2005
84;Grim Fandango Remastered;8.0;Jan 27, 2015
84;The Lord of the Rings: The Battle for Middle-Earth II;7.5;Mar 2, 2006
84;Battlefield Vietnam;7.4;Mar 16, 2004
84;Medieval: Total War - Viking Invasion;8.8;May 7, 2003
84;Fallout 4;5.4;Nov 10, 2015
84;Guild Wars Nightfall;8.7;Oct 26, 2006
84;The Binding of Isaac;8.3;Sep 28, 2011
84;Enemy Territory: Quake Wars;8.3;Oct 2, 2007
84;Trine 2;8.4;Dec 7, 2011
84;Rift;7.3;Mar 1, 2011
84;The Wolf Among Us: Episode 5 - Cry Wolf;8.8;Jul 8, 2014
84;Shift 2: Unleashed;6.1;Mar 29, 2011
84;Sid Meier's Civilization IV: Warlords;8.2;Jul 24, 2006
84;Battlefield 1942: The Road to Rome;7.9;Feb 2, 2003
84;Poseidon;8.4;Jun 25, 2001
84;F1 2010;6.6;Sep 22, 2010
84;Shatter;7.4;Mar 15, 2010
84;Darwinia;7.9;Jun 12, 2006
84;Ultimate General: Gettysburg;8.0;Oct 16, 2014
83;Final Fantasy XI: Treasures of Aht Urhgan;7.6;Apr 18, 2006
83;MDK2;8.4;May 31, 2000
83;Gunpoint;8.4;Jun 3, 2013
83;Beyond Good & Evil;8.7;Nov 19, 2003
83;Anno 2070;7.0;Nov 17, 2011
83;SMITE;8.3;Mar 25, 2014
83;Halo: Combat Evolved;7.4;Sep 30, 2003
83;Grim Dawn;8.9;Feb 25, 2016
83;Silent Storm;8.9;Jan 20, 2004
83;Command & Conquer: Generals - Zero Hour;9.0;Sep 22, 2003
83;Homeworld 2;8.3;Sep 16, 2003
83;Galactic Civilizations;8.1;Mar 26, 2003
83;EverQuest: The Shadows of Luclin;7.2;Dec 2, 2001
83;Orcs Must Die!;8.1;Oct 11, 2011
83;Life is Strange;8.6;Jan 19, 2016
83;Fable: The Lost Chapters;8.7;Sep 20, 2005
83;Unreal Tournament III;8.0;Nov 19, 2007
83;The Blackwell Epiphany;7.6;Apr 24, 2014
83;The Lord of the Rings Online: Siege of Mirkwood;7.1;Dec 1, 2009
83;Out of the Park Baseball 10;8.3;Jun 2, 2009
83;Tomb Raider: Anniversary;8.0;Jun 5, 2007
83;Need for Speed: Shift;5.7;Sep 15, 2009
83;Hearts of Iron II;8.6;Jan 4, 2005
83;FIFA Soccer 11;7.6;Sep 28, 2010
83;Project CARS;7.0;May 6, 2015
83;FIFA Soccer 2003;6.8;Nov 2, 2002
83;Icewind Dale II;8.3;Aug 26, 2002
83;Age of Empires;8.8;Sep 30, 1997
83;EverQuest II: Echoes of Faydwer;8.4;Nov 13, 2006
83;EverQuest II;7.3;Nov 8, 2004
83;Terraria;8.5;May 16, 2011
83;Final Fantasy XIV Online: A Realm Reborn;6.7;Aug 27, 2013
83;Card Hunter (2013);7.9;Sep 12, 2013
83;Sam & Max: The Devil's Playhouse - Episode 2: The Tomb of Sammun-Mak;7.9;May 18, 2010
83;This War of Mine;8.4;Nov 14, 2014
83;Darksiders;7.7;Sep 23, 2010
83;Tom Clancy's Rainbow Six 3: Raven Shield;8.9;Mar 19, 2003
83;World of Outlaws: Sprint Cars;7.9;Feb 11, 2003
83;Colin McRae Rally 2.0;8.4;Feb 14, 2001
83;Combat Flight Simulator 2: WWII Pacific Theater;8.1;Oct 13, 2000
83;Orcs Must Die! 2;7.9;Jul 30, 2012
83;Prey;7.9;Jul 11, 2006
83;Metal Gear Rising: Revengeance;7.9;Jan 9, 2014
83;Starseed Pilgrim;6.3;Apr 16, 2013
83;Age of Conan: Rise of the Godslayer;8.4;May 11, 2010
83;Alan Wake;8.0;Feb 16, 2012
83;Tiger Woods PGA Tour 2002;5.0;Feb 24, 2002
83;Monaco: What's Yours Is Mine;7.7;Apr 24, 2013
83;Transistor;8.3;May 20, 2014
83;Helldivers;6.9;Dec 7, 2015
83;Worldwide Soccer Manager 2009;8.1;Nov 18, 2008
83;Call of Duty: World at War;7.5;Nov 10, 2008
83;Torchlight;8.0;Jan 5, 2010
83;Prison Architect;8.3;Oct 6, 2015
83;Valdis Story: Abyssal City;8.1;Oct 30, 2013
83;Crimson Skies;8.2;Sep 17, 2000
83;RACE 07: Official WTCC Game;9.0;Oct 9, 2007
83;SUPERHOT;7.6;Feb 25, 2016
83;EverQuest II: Rise of Kunark;7.9;Nov 13, 2007
83;Dark Age of Camelot: Catacombs;8.6;Dec 7, 2004
83;Spore Creature Creator;8.1;Jun 17, 2008
83;Colin McRae Rally 2005;7.0;Oct 28, 2004
83;Tom Clancy's Splinter Cell: Conviction;5.2;Apr 27, 2010
83;Tribes: Vengeance;7.6;Oct 12, 2004
83;L.A. Noire: The Complete Edition;7.9;Nov 8, 2011
83;GTR Evolution;8.2;Sep 2, 2008
83;Life is Strange: Episode 5 - Polarized;8.4;Oct 20, 2015
83;BROFORCE;8.0;Oct 15, 2015
83;Independence War 2: Edge of Chaos;8.4;Aug 22, 2001
83;Myst III: Exile;8.2;May 8, 2001
83;Superbrothers: Sword & Sworcery EP;6.4;Apr 16, 2012
83;Sid Meier's Civilization IV: Colonization;6.7;Sep 22, 2008
83;Europa Universalis III;8.4;Jan 23, 2007
83;F1 2011;7.2;Sep 20, 2011
83;Prince of Persia: Warrior Within;8.4;Nov 30, 2004
83;Danganronpa: Trigger Happy Havoc;7.6;Feb 18, 2016
83;Counter-Strike: Global Offensive;7.8;Aug 21, 2012
83;Outland;7.1;Sep 29, 2014
83;MechWarrior 4: Mercenaries;8.6;Nov 7, 2002
83;Metal Gear Solid;9.0;Sep 24, 2000
82;Invisible, Inc.;8.0;May 12, 2015
82;Dark Souls II: Crown of the Ivory King;7.8;Sep 29, 2014
82;Red Faction: Guerrilla;7.5;Sep 15, 2009
82;The Book of Unwritten Tales;8.2;Oct 28, 2011
82;Capitalism II;9.0;Dec 16, 2001
82;Rally Trophy;8.5;Nov 20, 2001
82;Dawn of Discovery;8.8;Jun 17, 2009
82;City of Villains;8.1;Oct 31, 2005
82;Kentucky Route Zero - Act II;8.0;May 31, 2013
82;Tom Clancy's Splinter Cell: Blacklist;7.4;Aug 20, 2013
82;Act of War: Direct Action;8.5;Mar 15, 2005
82;Sokobond;7.8;Aug 27, 2013
82;Sam & Max Episode 105: Reality 2.0;8.4;Mar 29, 2007
82;Bejeweled 3;8.0;Dec 7, 2010
82;Dangerous Waters;8.8;Feb 22, 2005
82;Tomb Raider: Legend;7.8;Apr 11, 2006
82;Asheron's Call 2: Fallen Kings;8.8;Nov 20, 2002
82;Gemini Rue;8.4;Feb 24, 2011
82;Antichamber;8.2;Jan 31, 2013
82;Neverwinter Nights 2;6.5;Oct 31, 2006
82;Dragon Age: Origins - Awakening;7.7;Mar 16, 2010
82;Door Kickers;8.2;Oct 20, 2014
82;Hearthstone: Blackrock Mountain;6.4;Apr 2, 2015
82;Rome: Total War Barbarian Invasion;8.4;Sep 27, 2005
82;Hacknet;7.3;Aug 12, 2015
82;Tales of Monkey Island Chapter 3: Lair of the Leviathan;7.8;Sep 29, 2009
82;Neverwinter Nights 2: Mask of The Betrayer;8.8;Oct 9, 2007
82;Sins of a Solar Empire: Rebellion;7.8;Jun 12, 2012
82;Broken Sword: The Sleeping Dragon;7.6;Nov 17, 2003
82;Age of Wonders: Shadow Magic;8.5;Jul 25, 2003
82;Tom Clancy's Ghost Recon: Desert Siege;8.4;Mar 27, 2002
82;Warlords Battlecry II;8.5;Mar 11, 2002
82;Football Manager Live;2.9;Jan 23, 2009
82;Marvel: Ultimate Alliance;8.3;Oct 24, 2006
82;The Talos Principle: Road To Gehenna;7.6;Jul 23, 2015
82;Lara Croft and the Guardian of Light;8.2;Sep 28, 2010
82;Aquaria;8.3;Dec 7, 2007
82;Need for Speed: Underground;8.3;Nov 17, 2003
82;TrackMania Sunrise;8.5;May 6, 2005
82;King's Quest Chapter 1: A Knight to Remember;7.2;Jul 28, 2015
82;Dragon Age II;4.4;Mar 8, 2011
82;Endless Legend;7.9;Apr 24, 2014
82;Tom Clancy's Ghost Recon: Island Thunder;8.3;Sep 25, 2002
82;S.T.A.L.K.E.R.: Shadow of Chernobyl;8.4;Mar 20, 2007
82;Kero Blaster;6.9;May 11, 2014
82;Monday Night Combat;7.3;Jan 24, 2011
82;The Wolf Among Us: Episode 3 - A Crooked Mile;8.6;Apr 8, 2014
82;Airborne Assault: Red Devils Over Arnhem;7.4;Jun 17, 2002
82;Fallout Tactics: Brotherhood of Steel;7.9;Mar 14, 2001
82;Need for Speed: Underground 2;8.5;Nov 9, 2004
82;NHL Eastside Hockey Manager 2005;6.6;Oct 5, 2005
82;Legend of Grimrock;8.1;Apr 11, 2012
82;Dominions 3: The Awakening;8.1;Sep 29, 2006
82;Bulletstorm;7.7;Feb 22, 2011
82;Borderlands 2: Mr. Torgue's Campaign of Carnage;7.3;Nov 20, 2012
82;Desktop Dungeons;8.2;Oct 17, 2010
82;Fallout: New Vegas - Old World Blues;7.8;Jul 19, 2011
82;Crusader Kings II;8.7;Feb 14, 2012
82;MVP Baseball 2004;7.9;Mar 9, 2004
82;Europa 1400: The Guild;8.6;Nov 18, 2002
82;Battle Realms;8.6;Nov 7, 2001
82;Warlords Battlecry;8.2;Jul 9, 2000
82;Sam & Max Episode 201: Ice Station Santa;8.6;Nov 8, 2007
82;Technobabylon;7.8;May 21, 2015
82;World of Warcraft: Mists of Pandaria;4.8;Sep 25, 2012
82;FIFA 15;4.2;Sep 23, 2014
82;Recettear: An Item Shop's Tale;8.6;Sep 10, 2010
82;ETHER One;6.9;Mar 25, 2014
82;The Vanishing of Ethan Carter;8.1;Sep 25, 2014
82;Flight Simulator X: Acceleration;7.3;Oct 23, 2007
82;Blood;9.0;May 31, 1997
82;Command & Conquer: Red Alert 3;6.8;Oct 28, 2008
82;The Walking Dead: Episode 1 - A New Day;8.4;Apr 24, 2012
82;Links 2003;6.8;Sep 16, 2002
82;Earth & Beyond;7.1;Sep 2, 2002
82;Syberia;8.5;Sep 1, 2002
82;Virtual Pool 3;7.3;Nov 14, 2000
82;The Sims: Livin' Large;6.6;Aug 27, 2000
82;DCS: Black Shark;8.5;Apr 13, 2009
82;King's Bounty: Armored Princess;8.7;Sep 10, 2010
82;Age of Wonders III - Golden Realms;8.5;Sep 18, 2014
82;Strong Bad's Cool Game for Attractive People Episode 5: 8-Bit Is Enough;7.5;Dec 15, 2008
82;Prince of Persia;7.2;Dec 2, 2008
82;Joint Operations: Typhoon Rising;8.7;Jun 15, 2004
82;Xpand Rally;7.4;Apr 20, 2006
82;Dark Souls II: Crown of the Sunken King;7.3;Jul 22, 2014
82;Resident Evil HD Remaster;8.2;Jan 20, 2015
82;Celtic Kings: Rage of War;8.5;Aug 21, 2002
82;B-17 Flying Fortress: The Mighty 8th;7.3;Dec 13, 2000
82;EverQuest: The Scars of Velious;7.8;Dec 4, 2000
82;Metro: Last Light;8.6;May 14, 2013
82;Rising Storm;8.5;May 30, 2013
82;Lethal League;7.4;Aug 27, 2014
82;Botanicula;8.3;Apr 19, 2012
82;Pro Evolution Soccer 2015;5.8;Nov 13, 2014
82;Bookworm Adventures Deluxe;7.9;Dec 20, 2006
82;The Lord of the Rings: The Battle for Middle-Earth;8.6;Dec 6, 2004
82;Hitman: Blood Money;8.8;May 30, 2006
82;Need for Speed: Most Wanted;8.5;Nov 15, 2005
82;OlliOlli2: Welcome to Olliwood;5.2;Aug 11, 2015
82;WildStar;7.4;Jun 3, 2014
82;Broken Age: Act 1;7.7;Jan 28, 2014
82;Divinity II: The Dragon Knight Saga;8.2;Nov 5, 2010
82;Out of the Park Baseball 9;7.4;Jun 1, 2008
82;The Simpsons: Hit & Run;8.0;Nov 13, 2003
82;America's Army;6.1;Aug 28, 2002
82;Star Trek Bridge Commander;8.1;Feb 27, 2002
82;The Last Express;8.9;Mar 31, 1997
81;Quake 4;7.5;Oct 11, 2005
81;Nidhogg;7.0;Jan 13, 2014
81;Battlefield 4;6.0;Oct 29, 2013
81;To the Moon;8.9;Sep 7, 2012
81;The Sims 3: World Adventures;8.0;Nov 16, 2009
81;Painkiller;8.0;Apr 12, 2004
81;Airborne Assault: Highway to the Reich;6.1;Dec 10, 2003
81;Nancy Drew: Danger on Deception Island;7.7;Oct 1, 2003
81;Shadowrun: Hong Kong;7.7;Aug 20, 2015
81;Supreme Commander: Forged Alliance;8.9;Nov 6, 2007
81;Sunless Sea;7.4;Jul 1, 2014
81;The Walking Dead: Season Two Episode 3 - In Harm's Way;8.3;May 13, 2014
81;Marvel Heroes 2015;7.9;Jun 4, 2014
81;Football Manager 2016;6.4;Nov 13, 2015
81;VVVVVV;8.1;Jan 11, 2010
81;Darksiders II;7.9;Aug 14, 2012
81;Wolfenstein: The New Order;8.2;May 20, 2014
81;Lone Survivor;7.2;Apr 23, 2012
81;Alien: Isolation;8.4;Oct 6, 2014
81;The Witcher;8.8;Oct 30, 2007
81;Kentucky Route Zero - Act I;7.5;Jan 7, 2013
81;Jade Empire: Special Edition;8.3;Feb 26, 2007
81;SWAT 3: Elite Edition;8.4;Oct 6, 2000
81;Asheron's Call;8.8;Oct 31, 1999
81;Unravel;8.1;Feb 9, 2016
81;Midnight Club II;8.0;Jun 30, 2003
81;Chessmaster 10th Edition;7.4;Aug 12, 2004
81;Age of Empires III;7.7;Oct 18, 2005
81;Tales of Monkey Island Chapter 5: Rise of the Pirate God;8.4;Dec 8, 2009
81;Castlevania: Lords of Shadow Ultimate Edition;7.3;Aug 27, 2013
81;Strong Bad's Cool Game for Attractive People Episode 2: Strong Badia the Free;8.2;Sep 15, 2008
81;The Cat Lady;8.7;Dec 4, 2013
81;Vessel;7.9;Mar 1, 2012
81;Metro 2033;8.1;Mar 16, 2010
81;OutRun 2006: Coast 2 Coast;7.8;Jun 27, 2006
81;Blur;7.3;May 25, 2010
81;Empires: Dawn of the Modern World;8.2;Oct 21, 2003
81;Chessmaster 9000;7.7;Aug 31, 2002
81;Gothic;8.6;Nov 23, 2001
81;Arcanum: Of Steamworks and Magick Obscura;8.9;Aug 22, 2001
81;NASCAR Heat;8.6;Sep 27, 2000
81;Company of Heroes 2: Ardennes Assault;6.1;Nov 17, 2014
81;PlanetSide;7.3;May 20, 2003
81;Tales From The Borderlands: Episode 3 - Catch A Ride;8.4;Jun 23, 2015
81;The Walking Dead: Season Two Episode 2 - A House Divided;8.6;Mar 4, 2014
81;Kingdoms of Amalur: Reckoning;6.6;Feb 7, 2012
81;Sam & Max: The Devil's Playhouse - Episode 1: The Penal Zone;8.5;Apr 15, 2010
81;Borderlands;7.8;Oct 26, 2009
81;DG2: Defense Grid 2;6.7;Sep 23, 2014
81;Napoleon: Total War;7.9;Feb 23, 2010
81;Overlord;8.1;Jun 26, 2007
81;Firewatch;7.2;Feb 9, 2016
81;Victoria II: Heart of Darkness;8.7;Apr 16, 2013
81;Waveform;7.6;Jan 25, 2013
81;The Elder Scrolls IV: Knights of the Nine;7.5;Nov 21, 2006
81;Red Orchestra: Ostfront 41-45;8.6;Mar 14, 2006
81;Stronghold;8.9;Oct 21, 2001
81;Strong Bad's Cool Game for Attractive People Episode 4: Dangeresque 3: The Criminal Projective;8.5;Nov 17, 2008
81;Rochard;8.0;Nov 15, 2011
81;Fallout 3: Broken Steel;7.3;May 5, 2009
81;Tiger Woods PGA Tour 06;8.1;Sep 20, 2005
81;RollerCoaster Tycoon 3;4.9;Oct 26, 2004
81;Dragon's Dogma: Dark Arisen;8.3;Jan 15, 2016
81;Guild Wars 2: Heart of Thorns;7.3;Oct 23, 2015
81;AaaaaAAaaaAAAaaAAAAaAAAAA!!! - A Reckless Disregard for Gravity;7.2;Sep 3, 2009
81;The Sims 2 University;7.8;Feb 28, 2005
81;Far Cry 3: Blood Dragon;8.1;May 1, 2013
81;Sid Meier's Civilization: Beyond Earth;5.5;Oct 24, 2014
81;Disney's Toontown Online;8.7;Oct 6, 2005
81;Combat Mission 3: Afrika Korps;8.4;Dec 3, 2003
81;EverQuest: The Planes of Power;8.2;Oct 28, 2002
81;Rails Across America;8.0;Sep 18, 2001
81;Wasteland 2;7.3;Sep 19, 2014
81;Jamestown: Legend of the Lost Colony;7.5;Jun 8, 2011
81;Call of Duty: Black Ops;5.1;Nov 9, 2010
81;Kohan II: Kings of War;7.9;Sep 20, 2004
81;The Age of Decadence;7.9;Oct 15, 2015
81;Samorost 3;8.3;Mar 24, 2016
81;Order of Battle: Pacific;6.4;Apr 30, 2015
81;Empire Earth;8.3;Nov 12, 2001
81;Star Trek: Deep Space Nine: The Fallen;7.9;Nov 15, 2000
81;Sam & Max Episode 101: Culture Shock;8.7;Oct 18, 2006
81;Mirror's Edge (2008);8.1;Jan 12, 2009
81;TrackMania 2 Canyon;7.7;Sep 14, 2011
81;Sleeping Dogs;8.2;Aug 14, 2012
81;Star Wars Jedi Knight: Jedi Academy;8.6;Sep 17, 2003
81;Mortal Kombat Komplete Edition;8.7;Aug 6, 2013
81;Shadowrun: Dragonfall;8.3;Feb 27, 2014
81;Eets;6.4;Mar 29, 2006
81;World of Warships;6.6;Sep 17, 2015
81;TOCA Race Driver 2: The Ultimate Racing Simulator;8.0;Apr 15, 2004
81;Wargame: European Escalation;8.2;Feb 22, 2012
81;Dungeon Defenders;7.3;Oct 18, 2011
81;Sam & Max: The Devil's Playhouse - Episode 5: The City That Dares Not Sleep;7.9;Aug 30, 2010
81;Age of Empires III: The Asian Dynasties;8.5;Oct 23, 2007
81;Defense Grid: The Awakening;8.8;Jul 29, 2009
81;Codename: Panzers, Phase One;8.8;Sep 30, 2004
81;FIFA 16;4.4;Sep 22, 2015
81;Europa Universalis IV: Conquest of Paradise;7.7;Jan 14, 2014
81;Ghost Master;8.0;Aug 26, 2003
81;Divine Divinity;8.5;Sep 22, 2002
80;The Book of Unwritten Tales 2;7.7;Feb 20, 2015
80;Galactic Civilizations III;6.6;May 14, 2015
80;Lovers in a Dangerous Spacetime;7.2;Sep 9, 2015
80;Age of Conan: Hyborian Adventures;7.3;May 20, 2008
80;Company of Heroes 2: The Western Front Armies;6.8;Jun 23, 2014
80;Sid Meier's Civilization V: Gods & Kings;7.7;Jun 19, 2012
80;Age of Empires III: The WarChiefs;8.1;Oct 17, 2006
80;Metal Gear Solid V: Ground Zeroes;7.7;Dec 18, 2014
80;Trials Fusion;6.8;Apr 16, 2014
80;Syberia II;8.3;Mar 30, 2004
80;Tom Clancy's Ghost Recon;8.4;Nov 13, 2001
80;Conquest: Frontier Wars;8.3;Aug 14, 2001
80;Gabriel Knight 3: Blood of the Sacred, Blood of the Damned;8.8;Oct 5, 1999
80;Westerado: Double Barreled;7.4;Apr 16, 2015
80;Anomaly: Warzone Earth;7.3;Apr 8, 2011
80;Volume;7.2;Aug 18, 2015
80;GRID 2;5.7;May 27, 2013
80;The Banner Saga;7.9;Jan 14, 2014
80;Sam & Max Episode 202: Moai Better Blues;7.7;Jan 10, 2008
80;Age of Wonders III - Eternal Lords;8.4;Apr 14, 2015
80;Pro Evolution Soccer 2013;6.8;Sep 25, 2012
80;Osmos;7.5;Aug 18, 2009
80;Dungeon Siege II;7.9;Aug 16, 2005
80;Dead Island;6.8;Sep 6, 2011
80;Sam & Max Episode 104: Abe Lincoln Must Die!;7.8;Feb 22, 2007
80;Deus Ex: Invisible War;6.3;Dec 2, 2003
80;The Sims: Makin' Magic;8.6;Oct 28, 2003
80;Tom Clancy's Splinter Cell: Double Agent;5.7;Nov 7, 2006
80;Medal of Honor: Pacific Assault;7.4;Nov 4, 2004
80;Assassin's Creed: Revelations;7.4;Nov 29, 2011
80;Grandia II Anniversary Edition;7.6;Aug 24, 2015
80;Assassin's Creed III;6.2;Nov 20, 2012
80;Madden NFL 07;7.3;Aug 22, 2006
80;Outlast;8.4;Sep 4, 2013
80;The Chronicles of Riddick: Assault on Dark Athena;8.0;Apr 7, 2009
80;Hearts of Iron II: Doomsday;8.8;Apr 7, 2006
80;Dishonored: The Brigmore Witches;8.5;Aug 13, 2013
80;Codename: Panzers, Phase Two;8.0;Jul 25, 2005
80;Full Spectrum Warrior;7.0;Sep 21, 2004
80;AI War: Fleet Command;8.4;May 14, 2009
80;Freedom Fighters;8.3;Oct 1, 2003
80;NBA Live 2003;8.3;Nov 14, 2002
80;The Elder Scrolls III: Tribunal;8.2;Nov 6, 2002
80;Elite: Dangerous;6.4;Dec 16, 2014
80;Pure;6.9;Sep 16, 2008
80;Goodbye Deponia;8.1;Oct 17, 2013
80;SWAT 4: The Stetchkov Syndicate;8.3;Feb 28, 2006
80;Dropsy;7.3;Sep 10, 2015
80;Company of Heroes 2: The British Forces;5.9;Sep 3, 2015
80;Ground Control II: Operation Exodus;8.8;Jun 23, 2004
80;NBA Live 2004;9.0;Nov 11, 2003
80;Brutal Legend;7.8;Feb 26, 2013
80;Tomb Raider: Underworld;7.6;Nov 18, 2008
80;Oxenfree;7.7;Jan 15, 2016
80;Titan Quest: Immortal Throne;8.7;Mar 5, 2007
80;La-Mulana (Remake);7.1;Jul 13, 2012
80;X-Men Legends II: Rise of Apocalypse;8.4;Sep 20, 2005
80;SpellForce 2: Shadow Wars;7.6;May 5, 2006
80;Fritz 8 Deluxe;7.8;Dec 1, 2004
80;Trine;8.2;Sep 11, 2009
80;Dishonored: The Knife of Dunwall;8.1;Apr 16, 2013
80;Company of Heroes 2;2.0;Jun 25, 2013
80;Natural Selection 2;8.4;Oct 30, 2012
80;Read Only Memories;7.2;Oct 5, 2015
80;The Sims 3: Into the Future;5.4;Oct 22, 2013
80;Borderlands 2: Captain Scarlett and Her Pirate's Booty;7.4;Oct 16, 2012
80;FATE;8.3;Sep 19, 2006
80;2002 FIFA World Cup;7.9;Apr 30, 2002
80;Asheron's Call Dark Majesty;8.1;Nov 4, 2001
80;The Bug Butcher;8.2;Jan 19, 2016
80;Dragonshard;7.4;Oct 2, 2005
80;Icewind Dale: Enhanced Edition;7.6;Oct 30, 2014
80;The Magic Circle;7.3;Jul 9, 2015
80;Far Cry 4;6.6;Nov 18, 2014
80;Super Time Force Ultra;6.6;Aug 25, 2014
80;Day of Defeat: Source;9.1;Feb 7, 2006
80;Battlefield 2142;6.8;Oct 17, 2006
80;World of Tanks;3.8;Sep 6, 2011
80;Vampire: The Masquerade - Bloodlines;9.0;Nov 16, 2004
80;Dark Souls II: Scholar of the First Sin;7.4;Apr 1, 2015
80;Warhammer 40,000: Dawn of War II - Retribution;7.8;Mar 1, 2011
80;Panzer Corps;7.5;Jul 11, 2011
80;Men of War;8.1;Mar 16, 2009
80;Fallen Enchantress: Legendary Heroes;7.7;May 22, 2013
80;The Walking Dead: Episode 4 - Around Every Corner;8.5;Oct 10, 2012
80;Tales of Monkey Island Chapter 4: The Trial and Execution of Guybrush Threepwood;8.4;Oct 30, 2009
80;Penny Arcade Adventures: Episode Two;7.7;Nov 7, 2008
80;Time Commando;8.9;Jul 31, 1996
80;Sins of a Solar Empire: Entrenchment;8.1;Feb 25, 2009
80;F1 2012;6.9;Sep 18, 2012
80;Luftrausers;6.8;Mar 18, 2014
80;Naruto Shippuden: Ultimate Ninja Storm 3 Full Burst;7.9;Oct 24, 2013
80;Stealth Bastard Deluxe;8.3;Nov 28, 2012
80;Tom Clancy's Ghost Recon Advanced Warfighter;7.7;May 3, 2006
80;LEGO Batman: The Videogame;7.9;Sep 23, 2008
80;Stacking;7.9;Mar 6, 2012
80;Age of Wonders III;7.8;Mar 31, 2014
80;Life is Strange: Episode 3 - Chaos Theory;9.0;May 19, 2015
80;The Legend of Heroes: Trails in the Sky SC;8.4;Oct 29, 2015
80;Proteus;5.6;Jan 30, 2013
80;Robin Hood: The Legend of Sherwood;8.3;Nov 14, 2002
80;Soldier of Fortune II: Double Helix;7.3;May 20, 2002
80;RollerCoaster Tycoon: Loopy Landscapes;9.0;Sep 30, 2000
80;Toki Tori;7.9;Jan 28, 2010
80;RoboBlitz;8.3;Nov 7, 2006
80;Wargame: AirLand Battle;8.1;May 29, 2013
80;Football Manager 2015;6.0;Nov 7, 2014
80;The Suffering;8.2;Jun 8, 2004
80;Gish;7.2;Sep 17, 2004
80;Axiom Verge;8.2;May 14, 2015
80;Driver: San Francisco;7.0;Sep 27, 2011
80;The Corporate Machine;7.5;Jul 14, 2001
80;Dungeons & Dragons: Chronicles of Mystara;6.7;Jun 18, 2013
80;Disciples II: Rise of the Elves;8.1;Nov 25, 2003
80;MechCommander 2;8.3;Jul 18, 2001
80;Waterloo: Napoleon's Last Battle;7.5;Mar 25, 2001
80;Chessmaster 8000;6.4;Nov 14, 2000
80;Circle of Blood;8.6;Sep 30, 1996
80;BioShock Infinite: Burial at Sea - Episode Two;8.5;Mar 25, 2014
80;S.T.A.L.K.E.R.: Call of Pripyat;8.7;Feb 2, 2010
80;The Walking Dead: Season Two - A Telltale Games Series;8.3;Dec 17, 2013
80;FLY'N;8.2;Nov 9, 2012
80;Total War: Attila;7.3;Feb 17, 2015
80;The Wolf Among Us;8.8;Oct 11, 2013
80;Nancy Drew: Secret of the Old Clock;8.1;Jul 26, 2005
80;ArcheAge;3.6;Sep 16, 2014
80;CAPSIZED;7.1;Apr 29, 2011
80;Microsoft Flight Simulator X;7.6;Oct 17, 2006
80;Myst V: End of Ages;7.8;Sep 19, 2005
80;Railroad Tycoon 3;7.7;Oct 23, 2003
80;Hostile Waters: Antaeus Rising;8.1;Jun 13, 2001
79;Dustforce;7.9;Jan 17, 2012
79;Empire Earth II;7.0;Apr 26, 2005
79;Fallout 3: Point Lookout;7.8;Jun 23, 2009
79;Test Drive Unlimited;8.1;Mar 20, 2007
79;Dying Light: The Following;8.3;Feb 9, 2016
79;The Path;7.0;Mar 18, 2009
79;Dungeon of the Endless;8.0;Oct 27, 2014
79;Revenge of the Titans;7.6;May 24, 2010
79;Bookworm Adventures: Volume 2;7.6;Jul 30, 2009
79;F1 2001;7.5;Oct 14, 2001
79;Brothers in Arms: Hell's Highway;7.9;Oct 7, 2008
79;Star Wars: Empire at War;8.4;Feb 15, 2006
79;Dariusburst: Chronicle Saviours;8.3;Dec 3, 2015
79;Europa Universalis: Rome - Vae Victis;8.6;Nov 19, 2008
79;Silent Hunter: Wolves of the Pacific;6.5;Mar 20, 2007
79;Pillars of Eternity: The White March - Part 2;6.7;Feb 16, 2016
79;1701 A.D.;8.3;Nov 6, 2006
79;Stasis;7.6;Aug 31, 2015
79;Pro Evolution Soccer 2009;7.4;Nov 12, 2008
79;Return to Mysterious Island;8.5;Nov 2, 2004
79;Jotun;7.0;Sep 29, 2015
79;Else Heart.Break();7.5;Sep 24, 2015
79;Kohan: Ahriman's Gift;8.7;Nov 5, 2001
79;Emperor: Battle for Dune;8.3;Jun 12, 2001
79;Trackmania Turbo;6.9;Mar 24, 2016
79;Cart Life;5.9;Jul 29, 2010
79;Sword of the Stars: Born of Blood;8.1;Jun 5, 2007
79;Worms Reloaded;6.7;Aug 26, 2010
79;Warhammer: End Times - Vermintide;7.9;Oct 23, 2015
79;Euro Truck Simulator 2;8.7;Jan 16, 2013
79;Tropico 3;8.2;Oct 20, 2009
79;Cities: Skylines - After Dark;7.9;Sep 24, 2015
79;Runaway: A Twist of Fate;8.5;Apr 21, 2011
79;Tales of Monkey Island Chapter 1: Launch of the Screaming Narwhal;8.2;Jul 7, 2009
79;Bloodline Champions;8.0;Jan 13, 2011
79;The Sims: Superstar;8.2;May 12, 2003
79;NBA Live 2005;8.5;Oct 26, 2004
79;Valiant Hearts: The Great War;8.6;Jun 25, 2014
79;Payday 2;3.4;Aug 13, 2013
79;Dungeons of Dredmor;7.8;Jul 13, 2011
79;Geometry Wars 3: Dimensions;6.2;Nov 25, 2014
79;Assassin's Creed: Director's Cut Edition;7.5;Apr 8, 2008
79;Puzzle Dimension;7.6;Jun 21, 2010
79;Split/Second;8.2;May 18, 2010
79;Sang-Froid: Tales of Werewolves;7.9;Apr 5, 2013
79;The Incredible Adventures of Van Helsing: Final Cut;7.2;Oct 7, 2015
79;Hitman: Absolution;7.0;Nov 19, 2012
79;Call of Juarez: Gunslinger;8.2;May 22, 2013
79;Rome: Total War Alexander;7.6;Jun 19, 2006
79;Strong Bad's Cool Game for Attractive People Episode 3: Baddest of the Bands;8.1;Oct 27, 2008
79;Sam & Max Episode 102: Situation: Comedy;7.9;Dec 20, 2006
79;Tropico 3: Absolute Power;7.7;May 17, 2010
79;Sam & Max Episode 106: Bright Side of the Moon;7.3;Apr 26, 2007
79;Day of Defeat;9.3;May 6, 2003
79;Space Empires: IV;8.3;Nov 6, 2000
79;Resident Evil 4: Ultimate HD Edition;7.7;Feb 27, 2014
79;Sam & Max Episode 203: Night of the Raving Dead;8.2;Feb 12, 2008
79;FlatOut: Ultimate Carnage;7.6;Sep 2, 2008
79;Guitar Hero III: Legends of Rock;7.2;Nov 13, 2007
79;Sid Meier's Civilization: Beyond Earth - Rising Tide;5.9;Oct 9, 2015
79;Memoria;8.5;Aug 29, 2013
79;The Last Door;7.8;May 20, 2014
79;Shadowgrounds Survivor;7.8;Dec 6, 2007
79;Gothic II;8.8;Oct 28, 2003
79;Port Royale;8.2;Jun 4, 2003
79;Deadly Dozen: Pacific Theater;7.9;Oct 31, 2002
79;Shattered Galaxy;8.3;Aug 21, 2001
79;Close Combat: Invasion: Normandy;8.2;Oct 10, 2000
79;King's Bounty: The Legend;8.6;Sep 23, 2008
79;Rage;5.1;Oct 4, 2011
79;The Misadventures of P.B. Winterbottom;8.3;Apr 20, 2010
79;Uru: Ages Beyond Myst;7.4;Nov 11, 2003
79;Guild Wars: Eye of the North;8.6;Aug 28, 2007
79;Tales From The Borderlands: Episode 4 - Escape Plan Bravo;8.4;Aug 18, 2015
79;EverQuest: Lost Dungeons of Norrath;7.0;Sep 8, 2003
79;Battlefield 1942: Secret Weapons of WWII;8.5;Sep 4, 2003
79;The Sims: Unleashed;8.0;Sep 23, 2002
79;Race the Sun;7.5;Aug 19, 2013
79;The Sims 3: Pets;6.1;Oct 18, 2011
79;Prototype;7.9;Jun 10, 2009
79;Stick it to the Man!;7.2;Dec 13, 2013
79;Street Fighter X Tekken;6.4;May 11, 2012
79;Frozen Cortex;6.5;Feb 19, 2015
79;Free Realms;6.4;Apr 29, 2009
79;Homeworld: Deserts of Kharak;8.0;Jan 20, 2016
79;Don't Starve;8.3;Apr 23, 2013
79;Assault Android Cactus;7.0;Sep 23, 2015
79;Trainz;7.2;Feb 10, 2002
79;King Arthur: The Role-Playing Wargame;7.9;Nov 24, 2009
79;Chivalry: Medieval Warfare;7.8;Oct 16, 2012
79;Overlord II;8.1;Jun 23, 2009
79;F.E.A.R. 2: Project Origin;7.8;Feb 10, 2009
79;Tom Clancy's Rainbow Six Siege;6.9;Dec 1, 2015
79;The Settlers 7: Paths to a Kingdom;5.2;Mar 23, 2010
79;RollerCoaster Tycoon 3: Soaked!;2.9;Jun 23, 2005
79;Dark Souls II: Crown of the Old Iron King;7.6;Aug 26, 2014
79;TrackMania 2 Valley;8.3;Jul 4, 2013
79;State of Decay;6.8;Nov 5, 2013
79;LEGO Harry Potter: Years 1-4;7.8;Jun 29, 2010
79;Rift: Storm Legion;7.8;Nov 13, 2012
79;Crayon Physics Deluxe;7.6;Jan 7, 2009
79;Nancy Drew: Legend of the Crystal Skull;8.5;Oct 8, 2007
79;EverQuest II: Desert of Flames;7.8;Sep 12, 2005
79;SimCity 4: Rush Hour;8.6;Sep 22, 2003
79;Uncommon Valor: Campaign for the South Pacific;7.6;Dec 2, 2002
79;Global Operations;8.3;Mar 25, 2002
78;Apotheon;7.8;Feb 3, 2015
78;Need for Speed: Most Wanted - A Criterion Game;4.4;Oct 30, 2012
78;Star Wars: Battlefront II;8.8;Oct 31, 2005
78;The Walking Dead: Season Two Episode 1 - All That Remains;8.5;Dec 17, 2013
78;The Journey Down: Chapter Two;7.1;Aug 25, 2014
78;Star Trek: Elite Force II;7.6;Jun 25, 2003
78;Zuma's Revenge!;7.9;Sep 15, 2009
78;Baldur's Gate: Enhanced Edition;7.0;Nov 28, 2012
78;Doom 3: Resurrection of Evil;6.0;Apr 4, 2005
78;LEGO Indiana Jones: The Original Adventures;7.7;Jun 3, 2008
78;NASCAR Thunder 2004;7.5;Sep 16, 2003
78;Transformers: Fall of Cybertron;7.8;Aug 21, 2012
78;FIFA Soccer 06;6.7;Oct 4, 2005
78;DeadCore;6.8;Oct 17, 2014
78;The Walking Dead: Season Two Episode 5 - No Going Back;8.5;Aug 26, 2014

View File

@ -0,0 +1,45 @@
# Streams mit interner Iteration
## Lernziel
Einen Stream mit einer internen Iteration verwenden. Die Iteration sowohl mit einem Lambda, als auch mit einer Methodenreferenz durchführen.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.interne_iteration](../sources/src/main/java/pr2/streams/interne_iteration/).
In dieser (und den folgenden Aufgaben) werden Sie Daten aus der Spieldatenbank von [Metacritic](http://www.metacritic.com) analysieren. Hierbei wurden die 994 Spiele mit der besten Bewertung ausgewählt. Für jedes Spiel sind angegeben:
* Name des Spiels
* Metacritic-Score (0-100)
* Benutzerbewertung (0-100). Normalerweise werden die Benutzerbewertungen bei Metacritic von 0-10 mit einer Nachkommastelle angegeben. Für die einfachere Bearbeitung ist dies für Sie aber bereits in den Bereich 0-100 umgerechnet worden.
* Erscheinungsjahr des Spieles.
Die Verwaltung der Daten wurde Ihnen bereits abgenommen und wird von der Klasse `GameDatabase` durchgeführt. Ein einzelnes Spiel wird durch Objekte des Typs `ComputerGame` repräsentiert.
Schauen Sie sich die Klassen `ComputerGame` und `GameDatabase` an und versuchen Sie deren Funktionsweise zu verstehen.
Erweitern Sie nun die `main`-Methode von `ListGames` so, dass der Inhalt der Spieldatenbank ausgegeben wird, und zwar wie folgt:
1. Alle Spiele mithilfe einer internen Iteration und eines Lambda-Ausdrucks.
2. Alle Spiele mithilfe einer internen Iteration und einer Methodenreferenz.
3. Spiele aus dem Jahr 2012 mithilfe einer internen Iteration und eines Lambda-Ausdrucks.
Lassen Sie Ihr Programm laufen und überprüfen Sie, ob die richtigen Informationen ausgegeben werden.
Die Datei mit den Spielen finden Sie unter [games.txt](../sources/src/main/resources/pr2/streams/interne_iteration/games.txt).
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,994 @@
96;Half-Life 2;9.2;Nov 16, 2004
96;Grand Theft Auto V;7.8;Apr 14, 2015
96;The Orange Box;9.3;Oct 10, 2007
96;Half-Life;9.1;Oct 31, 1998
96;BioShock;8.4;Aug 21, 2007
95;Baldur's Gate II: Shadows of Amn;9.2;Sep 24, 2000
95;Portal 2;8.8;Apr 19, 2011
94;The Elder Scrolls V: Skyrim;8.1;Nov 11, 2011
94;Mass Effect 2;8.7;Jan 26, 2010
94;Grand Theft Auto: Vice City;8.8;May 12, 2003
94;Civilization II;9.0;Feb 29, 1996
94;Quake;8.8;Jun 22, 1996
94;BioShock Infinite;8.5;Mar 26, 2013
94;The Elder Scrolls IV: Oblivion;8.0;Mar 20, 2006
94;Grim Fandango;9.1;Sep 30, 1998
94;Diablo;8.7;Nov 30, 1996
94;Sid Meier's Civilization IV;8.2;Oct 25, 2005
93;The Witcher 3: Wild Hunt;9.1;May 19, 2015
93;Company of Heroes;8.8;Sep 13, 2006
93;Unreal Tournament 2004;8.9;Mar 16, 2004
93;Starcraft II: Wings of Liberty;8.2;Jul 27, 2010
93;Minecraft;7.4;May 10, 2009
93;Grand Theft Auto III;8.4;May 20, 2002
93;Homeworld;8.9;Aug 31, 1999
93;Star Wars: Knights of the Old Republic;9.0;Nov 18, 2003
93;World of Warcraft;7.2;Nov 23, 2004
93;Grand Theft Auto: San Andreas;8.8;Jun 7, 2005
92;Call of Duty 4: Modern Warfare;8.5;Nov 5, 2007
92;Warcraft III: Reign of Chaos;9.1;Jul 3, 2002
92;The Sims;7.9;Jan 31, 2000
92;Sid Meier's Gettysburg!;7.7;Sep 30, 1997
92;World Soccer Winning Eleven 7 International;7.9;Apr 9, 2004
92;Team Fortress 2;9.2;Apr 8, 2008
92;System Shock 2;9.1;Aug 11, 1999
92;Tom Clancy's Splinter Cell: Chaos Theory;8.8;Mar 28, 2005
92;Undertale;8.2;Sep 15, 2015
92;Rome: Total War;9.1;Sep 22, 2004
92;Thief: The Dark Project;9.1;Nov 30, 1998
92;Age of Empires II: The Age of Kings;9.0;Sep 30, 1999
92;Unreal Tournament (1999);9.1;Nov 30, 1999
92;Sid Meier's Alpha Centauri;9.1;Feb 12, 1999
92;Galactic Civilizations II: Twilight of the Arnor;8.4;Apr 30, 2008
92;Tiger Woods PGA Tour 2003;6.0;Oct 31, 2002
91;Dishonored;8.4;Oct 9, 2012
91;Medal of Honor: Allied Assault;8.6;Jan 20, 2002
91;Myth: The Fallen Lords;8.8;Oct 31, 1997
91;World of Warcraft: Wrath of the Lich King;7.4;Nov 13, 2008
91;F1 Challenge '99-'02;8.3;Jun 24, 2003
91;Baldur's Gate;9.0;Nov 30, 1998
91;IL-2 Sturmovik;8.7;Nov 18, 2001
91;FreeSpace 2;8.8;Sep 30, 1999
91;Metal Gear Solid V: The Phantom Pain;7.7;Sep 1, 2015
91;Tom Clancy's Splinter Cell;8.6;Feb 19, 2003
91;Crysis;8.0;Nov 13, 2007
91;World of Warcraft: The Burning Crusade;7.9;Jan 16, 2007
91;Tiger Woods PGA Tour 2005;4.6;Sep 20, 2004
91;The Longest Journey;8.9;Nov 16, 2000
91;Tony Hawk's Pro Skater 2;8.5;Oct 31, 2000
91;Star Wars Jedi Knight: Dark Forces II;8.5;Sep 30, 1997
91;Batman: Arkham Asylum;8.7;Sep 15, 2009
91;Galactic Civilizations II: Dark Avatar;8.2;Feb 14, 2007
91;The Operative: No One Lives Forever;8.9;Nov 9, 2000
91;Battlefield 2;8.4;Jun 21, 2005
91;Street Fighter IV;8.0;Jul 1, 2009
91;Fallout 3;7.9;Oct 28, 2008
91;Batman: Arkham City;8.6;Nov 22, 2011
91;Fez;6.5;May 1, 2013
91;Planescape: Torment;9.3;Nov 30, 1999
91;Neverwinter Nights;8.1;Jun 16, 2002
91;No One Lives Forever 2: A Spy in H.A.R.M.'s Way;8.7;Sep 30, 2002
91;Dragon Age: Origins;8.6;Nov 3, 2009
91;Mark of the Ninja;8.0;Oct 16, 2012
91;Dark Souls II;7.1;Apr 25, 2014
91;Call of Duty;8.5;Oct 29, 2003
91;Madden NFL 2004;8.2;Aug 12, 2003
90;The Sims 2;8.8;Sep 14, 2004
90;World of Warcraft: Cataclysm;5.5;Dec 7, 2010
90;World of Goo;8.5;Oct 21, 2008
90;Spelunky;7.2;Aug 8, 2013
90;Black & White;7.6;Mar 26, 2001
90;Portal;9.3;Apr 8, 2008
90;NHL 2001;6.9;Sep 28, 2000
90;Tony Hawk's Pro Skater 3;8.6;Mar 28, 2002
90;Deus Ex;9.3;Jun 26, 2000
90;Half-Life 2: Episode Two;9.2;Oct 10, 2007
90;Braid;8.6;Jan 26, 2010
90;The Chronicles of Riddick: Escape From Butcher Bay - Developer's Cut;8.7;Dec 8, 2004
90;Sid Meier's Civilization III;8.4;Oct 30, 2001
90;Silent Hunter III;7.8;Mar 15, 2005
90;Sid Meier's Civilization V;7.8;Sep 21, 2010
90;Falcon 4.0: Allied Force;8.6;Jun 28, 2005
90;Deus Ex: Human Revolution;8.5;Aug 23, 2011
90;Dark Souls III;8.2;Apr 12, 2016
90;Flight Simulator 2002;8.4;Oct 19, 2001
90;Brothers: A Tale of Two Sons;8.5;Sep 3, 2013
90;Dota 2;6.2;Jul 9, 2013
90;Guild Wars 2;7.9;Aug 28, 2012
90;Freedom Force;8.0;Mar 24, 2002
90;GTR 2;8.7;Sep 29, 2006
90;Grand Theft Auto IV;6.5;Dec 2, 2008
90;Total War: Shogun 2;8.3;Mar 15, 2011
90;Empire: Total War;6.9;Mar 3, 2009
90;Command & Conquer: Red Alert;8.9;Oct 31, 1996
89;Star Wars Jedi Knight II: Jedi Outcast;8.6;Mar 26, 2002
89;The Walking Dead: A Telltale Games Series;8.7;Dec 11, 2012
89;Age of Mythology;8.9;Nov 1, 2002
89;Sacrifice;8.8;Nov 5, 2000
89;The Witcher 3: Wild Hunt - Hearts of Stone;8.4;Oct 13, 2015
89;Pillars of Eternity;8.3;Mar 26, 2015
89;The Elder Scrolls III: Morrowind;9.0;May 1, 2002
89;Rocksmith 2014 Edition;7.9;Oct 22, 2013
89;Fallout;8.9;Sep 30, 1997
89;World Soccer Winning Eleven 9;8.4;Apr 28, 2006
89;Worldwide Soccer Manager 2005;8.7;Dec 7, 2004
89;Left 4 Dead;9.2;Nov 18, 2008
89;Left 4 Dead 2;8.5;Nov 17, 2009
89;NASCAR Racing 2002 Season;5.8;Feb 14, 2002
89;Mass Effect;8.6;May 28, 2008
89;Combat Mission: Barbarossa to Berlin;8.3;Oct 29, 2002
89;Homeworld: Cataclysm;8.9;Sep 7, 2000
89;The Walking Dead: Episode 5 - No Time Left;8.9;Nov 21, 2012
89;Guild Wars;8.4;Apr 26, 2005
89;Borderlands 2;8.2;Sep 18, 2012
89;Max Payne;9.1;Jul 23, 2001
89;Out of the Park Baseball 15;7.2;Apr 21, 2014
89;World in Conflict;8.1;Sep 18, 2007
89;NASCAR Racing 4;8.2;Feb 6, 2001
89;Duke Nukem 3D;8.8;Jan 31, 1996
89;Far Cry;8.0;Mar 23, 2004
89;FIFA Soccer 12;7.1;Sep 27, 2011
89;XCOM: Enemy Unknown;8.2;Oct 9, 2012
89;Mass Effect 3;5.4;Mar 6, 2012
89;Rise of Nations;9.0;May 20, 2003
89;NASCAR Racing 2003 Season;8.6;Feb 14, 2003
89;Descent 3;8.3;Jun 14, 2000
89;The Curse of Monkey Island;9.1;Oct 31, 1997
89;Battlefield 3;7.5;Oct 25, 2011
89;Battlefield 1942;8.6;Sep 10, 2002
89;Madden NFL 2003;8.4;Aug 12, 2002
89;DiRT 2;8.3;Dec 10, 2009
89;Stardew Valley;8.5;Feb 26, 2016
89;Prince of Persia: The Sands of Time;8.6;Nov 30, 2003
89;Railroad Tycoon II;8.4;Oct 31, 1998
88;Microsoft Flight Simulator 2004: A Century of Flight;8.2;Jul 29, 2003
88;Medieval: Total War;8.8;Aug 19, 2002
88;Mafia;9.1;Aug 27, 2002
88;LIMBO;8.1;Aug 2, 2011
88;Nuclear Throne;7.4;Dec 5, 2015
88;Crusader Kings II: The Old Gods;8.8;May 28, 2013
88;Assassin's Creed: Brotherhood;8.2;Mar 22, 2011
88;Superbike 2001;6.5;Oct 9, 2000
88;F.E.A.R.;8.3;Oct 17, 2005
88;Kerbal Space Program;8.1;Apr 27, 2015
88;Tribes 2;8.5;Mar 28, 2001
88;Age of Empires II: The Conquerors Expansion;9.0;Aug 24, 2000
88;Tiger Woods PGA Tour 2004;8.8;Sep 22, 2003
88;Warcraft III: The Frozen Throne;9.0;Jul 1, 2003
88;Starcraft;9.1;Apr 1, 1998
88;Far Cry 3;8.2;Dec 4, 2012
88;XCOM 2;7.0;Feb 5, 2016
88;World Soccer Winning Eleven 8 International;8.5;Feb 16, 2005
88;Torchlight II;8.6;Sep 20, 2012
88;Myth II: Soulblighter;9.0;Nov 30, 1998
88;Return to Castle Wolfenstein;8.7;Nov 19, 2001
88;Shogo: Mobile Armor Division;8.9;Sep 30, 1998
88;Thirty Flights of Loving;5.0;Aug 20, 2012
88;Hearthstone: Heroes of Warcraft;6.3;Mar 11, 2014
88;Medieval II: Total War;8.9;Nov 13, 2006
88;F1 2002;7.6;Jun 13, 2002
88;The Stanley Parable;8.0;Oct 17, 2013
88;BioShock 2;8.0;Feb 9, 2010
88;Counter-Strike: Source;8.9;Sep 26, 2005
88;Starcraft II: Legacy of the Void;8.3;Nov 10, 2015
88;Diablo III;4.0;May 15, 2012
88;Rise of Nations: Thrones & Patriots;8.8;Apr 27, 2004
88;Sid Meier's Pirates!;8.3;Nov 22, 2004
88;EVE Online: Special Edition;7.8;Mar 10, 2009
88;Guacamelee! Gold Edition;7.3;Aug 8, 2013
88;Armadillo Run;8.2;Apr 22, 2006
88;Dark Age of Camelot;8.9;Sep 1, 2001
88;Baldur's Gate II: Throne of Bhaal;8.9;Jun 21, 2001
88;Counter-Strike;9.3;Nov 8, 2000
88;Tony Hawk's Pro Skater 4;8.4;Aug 27, 2003
88;Ori and the Blind Forest;8.7;Mar 11, 2015
88;Diablo II;8.8;Jun 29, 2000
88;The Witcher 2: Assassins of Kings;8.5;May 17, 2011
87;Plants vs. Zombies;8.9;Aug 18, 2009
87;Doom 3;7.5;Aug 3, 2004
87;Super Meat Boy;8.3;Apr 5, 2011
87;Football Manager 2010;9.1;Nov 3, 2009
87;Oddworld: Abe's Oddysee - New 'n' Tasty;7.8;Feb 25, 2015
87;Tom Clancy's Splinter Cell: Pandora Tomorrow;8.0;Mar 23, 2004
87;Europa Universalis II;8.8;Nov 12, 2001
87;Burnout Paradise: The Ultimate Box;7.5;Feb 5, 2009
87;Battlefield: Bad Company 2;8.3;Mar 2, 2010
87;GRID;7.9;Jun 3, 2008
87;Crypt of the NecroDancer;7.7;Apr 23, 2015
87;Sins of a Solar Empire;8.2;Feb 4, 2008
87;MechWarrior 4: Vengeance;8.2;Nov 23, 2000
87;Thief II: The Metal Age;9.1;Feb 29, 2000
87;Diablo II: Lord of Destruction;9.1;Jun 27, 2001
87;Monkey Island 2 Special Edition: LeChuck's Revenge;9.0;Jul 7, 2010
87;Half-Life 2: Episode One;8.6;Jun 1, 2006
87;The Swapper;8.7;May 30, 2013
87;Hitman 2: Silent Assassin;8.2;Oct 1, 2002
87;Year Walk;7.0;Mar 6, 2014
87;Max Payne 3;7.6;Jun 1, 2012
87;TowerFall Ascension;6.6;Mar 11, 2014
87;Battlefield 3: Armored Kill;7.0;Sep 11, 2012
87;NHL 2002;8.7;Sep 17, 2001
87;Icewind Dale;8.3;Jun 29, 2000
87;The Witness;6.6;Jan 26, 2016
87;Brothers in Arms: Road to Hill 30;7.1;Mar 15, 2005
87;Kohan: Immortal Sovereigns;8.6;Mar 14, 2001
87;Day of the Tentacle Remastered;7.9;Mar 21, 2016
87;Dead Space 2;8.3;Jan 25, 2011
87;Diablo III: Reaper of Souls;6.6;Mar 25, 2014
87;Shogun: Total War Warlord Edition;8.7;Aug 13, 2001
87;Serious Sam: The First Encounter;8.4;Mar 21, 2001
87;Grand Prix 3;8.3;Aug 24, 2000
87;Call of Duty: United Offensive;8.3;Sep 14, 2004
87;Divinity: Original Sin;8.7;Jan 17, 2014
87;Company of Heroes: Opposing Fronts;8.6;Sep 24, 2007
87;Psychonauts;8.9;Apr 19, 2005
87;Gears of War;7.8;Nov 6, 2007
87;Out of the Park Baseball 4;7.8;Feb 28, 2002
87;Europa Universalis IV;8.7;Aug 13, 2013
87;NHL 2004;8.2;Sep 22, 2003
87;Zeus: Master of Olympus;9.0;Oct 22, 2000
87;World of Warcraft: Warlords of Draenor;6.0;Nov 13, 2014
87;Warhammer 40,000: Dawn of War - Dark Crusade;8.9;Oct 9, 2006
87;Commandos 2: Men of Courage;8.8;Sep 20, 2001
86;Tales From The Borderlands: Episode 5 - The Vault of the Traveler;8.7;Oct 20, 2015
86;Bastion;8.6;Aug 16, 2011
86;Gone Home;5.4;Aug 15, 2013
86;Pac-Man Championship Edition DX +;7.3;Sep 24, 2013
86;Supreme Commander;8.3;Feb 20, 2007
86;Total War: Shogun 2 - Fall of the Samurai;8.4;Mar 23, 2012
86;Startopia;8.7;Jun 19, 2001
86;Enemy Engaged: RAH-66 Comanche Versus Ka-52 Hokum;8.3;Jul 31, 2000
86;Fallout 2;9.2;Sep 30, 1998
86;Final Fantasy XIV: Heavensward;7.7;Jun 23, 2015
86;Football Manager 2013;6.7;Nov 1, 2012
86;Out of the Park Baseball 14;8.6;Apr 15, 2013
86;The Witcher: Enhanced Edition;8.5;Sep 16, 2008
86;Borderlands: The Secret Armory of General Knoxx;7.6;Feb 25, 2010
86;Call of Duty 2;8.3;Oct 25, 2005
86;Astebreed;7.3;May 30, 2014
86;Ground Control;7.8;May 31, 2000
86;Rise of the Tomb Raider;8.0;Jan 28, 2016
86;Resident Evil 5;7.1;Sep 18, 2009
86;Saints Row IV;7.4;Aug 20, 2013
86;Black Mesa;9.0;Sep 14, 2012
86;EverQuest: Omens of War;7.7;Sep 13, 2004
86;Steel Beasts;8.4;Sep 24, 2000
86;Total Annihilation;8.9;Sep 30, 1997
86;Need for Speed: Hot Pursuit;6.7;Nov 16, 2010
86;FIFA Soccer 13;6.6;Sep 25, 2012
86;Sid Meier's Civilization IV: Beyond the Sword;8.6;Jul 23, 2007
86;The Sims 3;7.6;Jun 2, 2009
86;Freedom Force vs The 3rd Reich;7.7;Mar 8, 2005
86;The Binding of Isaac: Rebirth;8.3;Nov 4, 2014
86;Tribes: Ascend;7.7;Apr 12, 2012
86;Titanfall;6.1;Mar 11, 2014
86;Rayman Origins;8.4;Mar 29, 2012
86;Her Story;5.7;Jun 24, 2015
86;Starcraft II: Heart of the Swarm;7.9;Mar 12, 2013
86;Mass Effect 2: Lair of the Shadow Broker;8.5;Sep 7, 2010
86;LEGO Star Wars II: The Original Trilogy;8.3;Sep 12, 2006
86;Dungeon Siege;7.9;Mar 31, 2002
86;Crysis 2;6.7;Mar 22, 2011
86;Call of Duty: Modern Warfare 2;4.1;Nov 10, 2009
86;The Secret of Monkey Island: Special Edition;9.1;Jul 15, 2009
86;Max Payne 2: The Fall of Max Payne;9.0;Oct 14, 2003
86;Homeworld Remastered Collection;8.2;Feb 25, 2015
86;Galactic Civilizations II: Dread Lords;8.0;Feb 21, 2006
86;Tomb Raider;8.5;Mar 5, 2013
86;Star Trek: Voyager Elite Force;8.2;Sep 20, 2000
86;Worldwide Soccer Manager 2008;8.4;Oct 23, 2007
86;IL-2 Sturmovik: Forgotten Battles;8.6;Mar 2, 2003
86;Hyper Light Drifter;8.1;Mar 31, 2016
86;DiRT 3;6.9;May 24, 2011
86;Unreal Tournament 2003;8.1;Sep 30, 2002
86;Age of Wonders II: The Wizard's Throne;8.4;Jun 12, 2002
86;Links 2001;6.8;Oct 24, 2000
86;EverQuest: The Ruins of Kunark;8.8;Mar 31, 2000
86;Full Throttle;8.8;Apr 30, 1995
86;The Lord of the Rings Online: Shadows of Angmar;8.1;Apr 24, 2007
86;Pony Island;6.8;Jan 4, 2016
86;Warhammer 40,000: Dawn of War;8.8;Sep 20, 2004
86;Warhammer Online: Age of Reckoning;7.9;Sep 16, 2008
86;Dead Space;8.0;Oct 20, 2008
86;Bionic Commando Rearmed;7.0;Aug 13, 2008
86;Command & Conquer: Red Alert 2 - Yuri's Revenge;9.0;Oct 10, 2001
86;Europa Universalis;8.1;Feb 2, 2001
86;Escape from Monkey Island;8.2;Nov 8, 2000
86;IL-2 Sturmovik: 1946;8.8;Mar 13, 2007
86;XCOM: Enemy Within;7.9;Nov 12, 2013
86;Battlefield 3: Back to Karkand;7.2;Dec 13, 2011
86;Heroes of the Storm;6.7;Jun 2, 2015
86;Civilization III: Conquests;8.4;Nov 4, 2003
86;Path of Exile;8.0;Jan 25, 2013
86;Battlefield: Bad Company 2 Vietnam;8.1;Dec 18, 2010
86;Assassin's Creed II;6.8;Mar 9, 2010
86;The Elder Scrolls IV: Shivering Isles;8.4;Mar 26, 2007
86;DiRT Rally;8.8;Dec 7, 2015
86;Rocket League;8.1;Jul 7, 2015
86;Allegiance;8.2;Mar 31, 2000
85;The Talos Principle;8.5;Dec 11, 2014
85;Cities: Skylines;8.9;Mar 10, 2015
85;Falcon 4.0;8.0;Nov 30, 1998
85;Tom Clancy's Rainbow Six;8.6;Jul 31, 1998
85;Madden NFL 2005;6.4;Sep 14, 2004
85;Legend of Grimrock II;8.0;Oct 15, 2014
85;Sam & Max Episode 205: What's New, Beelzebub?;8.6;Apr 10, 2008
85;Dragon Age: Inquisition;5.8;Nov 18, 2014
85;Tales from the Borderlands: A Telltale Game Series;8.7;Apr 26, 2016
85;Tom Clancy's Rainbow Six: Vegas;7.7;Dec 12, 2006
85;City of Heroes;8.5;Apr 27, 2004
85;SWAT 4;8.6;Apr 5, 2005
85;Clive Barker's Undying;8.7;Feb 21, 2001
85;EverQuest;8.2;Mar 16, 1999
85;Warhammer 40,000: Dawn of War II;8.1;Feb 18, 2009
85;Command & Conquer 3: Tiberium Wars;8.0;Mar 26, 2007
85;Bit.Trip Presents...Runner2: Future Legend of Rhythm Alien;8.2;Feb 26, 2013
85;Hotline Miami;8.5;Oct 23, 2012
85;Out of the Park Baseball 13;8.2;Apr 9, 2012
85;Wizardry 8;8.6;Nov 14, 2001
85;Aliens Versus Predator 2;8.7;Oct 31, 2001
85;Operation Flashpoint: Cold War Crisis;9.0;Aug 30, 2001
85;Tropico;8.4;Apr 5, 2001
85;Giants: Citizen Kabuto;8.9;Dec 6, 2000
85;NASCAR SimRacing;4.9;Feb 15, 2005
85;The Lord of the Rings Online: Mines of Moria;8.3;Nov 17, 2008
85;The Binding of Isaac: Afterbirth;8.1;Oct 30, 2015
85;Amnesia: The Dark Descent;8.6;Feb 17, 2011
85;GTR FIA Racing;8.6;May 3, 2005
85;Football Manager 2011;8.4;Nov 23, 2010
85;Dust: An Elysian Tail;8.5;May 24, 2013
85;South Park: The Stick of Truth;8.6;Mar 4, 2014
85;Dark Souls: Prepare to Die Edition;7.4;Aug 24, 2012
85;Medieval II: Total War Kingdoms;8.8;Aug 28, 2007
85;Shovel Knight;7.9;Jun 26, 2014
85;DmC: Devil May Cry;6.7;Jan 24, 2013
85;Peggle Deluxe;8.1;Feb 19, 2008
85;Monopoly Tycoon;8.0;Sep 24, 2001
85;Indigo Prophecy;8.3;Oct 2, 2005
85;Prince of Persia: The Two Thrones;8.0;Dec 1, 2005
85;Sam & Max Episode 204: Chariots of the Dogs;8.1;Mar 13, 2008
85;Assetto Corsa;8.4;Dec 19, 2014
85;Machinarium;8.8;Oct 16, 2009
85;Frozen Synapse;7.7;May 26, 2011
85;Valkyria Chronicles;8.3;Nov 11, 2014
85;Freelancer;8.9;Mar 3, 2003
85;Zenzizenzic;5.9;Jul 23, 2015
85;The Wolf Among Us: Episode 1 - Faith;9.0;Oct 11, 2013
85;Mega Man Legacy Collection;7.3;Aug 25, 2015
85;Warhammer 40,000: Dawn of War II - Chaos Rising;8.7;Mar 11, 2010
85;Far Cry 2;5.8;Oct 21, 2008
85;The Walking Dead: Episode 3 - Long Road Ahead;8.4;Aug 29, 2012
85;AudioSurf;8.8;Feb 15, 2008
85;BattleBlock Theater;8.0;May 15, 2014
85;Star Wars: Knights of the Old Republic II - The Sith Lords;8.4;Feb 8, 2005
85;MVP Baseball 2005;8.1;Feb 22, 2005
85;The Elder Scrolls III: Bloodmoon;8.5;Jun 3, 2003
85;Rogue Legacy;7.9;Jun 27, 2013
85;Chaos Reborn;8.4;Oct 26, 2015
85;Thief: Deadly Shadows;8.4;May 25, 2004
85;Football Manager 2014;5.4;Oct 30, 2013
85;System Shock: Enhanced Edition;7.9;Sep 22, 2015
85;EverQuest: Gates of Discord;6.8;Feb 9, 2004
85;FIFA 2001 Major League Soccer;7.3;Oct 30, 2000
85;Sid Meier's Civilization V: Brave New World;8.6;Jul 9, 2013
85;Final Fantasy XI;7.5;Oct 28, 2003
85;Serious Sam: The Second Encounter;8.5;Feb 4, 2002
85;The Sims: Hot Date;7.9;Nov 12, 2001
85;American McGee's Alice;8.2;Dec 6, 2000
85;Trials Evolution: Gold Edition;6.7;Mar 21, 2013
85;Warhammer 40,000: Dawn of War - Winter Assault;8.3;Sep 21, 2005
85;Tony Hawk's Underground 2;7.9;Oct 4, 2004
85;Papers, Please;8.5;Aug 8, 2013
85;Star Wars: The Old Republic;5.9;Dec 20, 2011
85;Anarchy Online: Shadowlands;8.7;Sep 8, 2003
85;Dark Age of Camelot: Shrouded Isles;8.8;Dec 2, 2002
85;Obsidian;8.3;Dec 31, 1996
84;The Walking Dead: Episode 2 - Starved for Help;8.6;Jun 29, 2012
84;Saints Row: The Third;8.1;Nov 15, 2011
84;Fallout: New Vegas;8.5;Oct 19, 2010
84;The Movies;8.3;Nov 8, 2005
84;Neverwinter Nights: Hordes of the Underdark;8.6;Dec 2, 2003
84;Command & Conquer: Generals;8.3;Feb 10, 2003
84;Sid Meier's SimGolf;8.2;Jan 23, 2002
84;Middle-earth: Shadow of Mordor;8.0;Sep 30, 2014
84;SpaceChem;8.4;Mar 2, 2011
84;Downwell;6.2;Oct 15, 2015
84;Pinball FX 2;8.0;Oct 27, 2012
84;Devil Daggers;6.7;Feb 18, 2016
84;PlanetSide 2;7.0;Nov 20, 2012
84;Enter the Gungeon;7.4;Apr 5, 2016
84;GT Legends;8.6;Jan 23, 2006
84;Hearthstone: Goblins Vs. Gnomes;6.6;Dec 8, 2014
84;Space Rangers 2: Rise of the Dominators;9.0;Mar 27, 2006
84;Tales From The Borderlands: Episode 1 - Zer0 Sum;8.4;Nov 25, 2014
84;Puzzle Quest: Challenge of the Warlords;8.3;Oct 10, 2007
84;Heroes of Might and Magic IV;7.6;Mar 29, 2002
84;Command & Conquer: Red Alert 2;8.9;Oct 21, 2000
84;Shogun: Total War;8.7;Jun 13, 2000
84;DiRT;7.2;Jun 19, 2007
84;Darkest Dungeon;8.0;Jan 19, 2016
84;Super Street Fighter IV: Arcade Edition;7.8;Jul 13, 2011
84;Football Manager 2012;8.0;Oct 20, 2011
84;Guild Wars Factions;8.5;Apr 28, 2006
84;80 Days (2015);6.1;Sep 29, 2015
84;Spore;5.2;Sep 7, 2008
84;Unity of Command;7.2;Nov 15, 2011
84;Hearthstone: The Grand Tournament;4.0;Aug 24, 2015
84;Metro Redux;8.0;Aug 26, 2014
84;Time Gentlemen, Please!;7.6;Jul 2, 2009
84;Europa Universalis IV: Wealth of Nations;8.4;May 29, 2014
84;Mass Effect 3: Citadel;7.8;Mar 5, 2013
84;Disciples II: Dark Prophecy;8.6;Jan 22, 2002
84;Just Cause 2;7.7;Mar 23, 2010
84;Crysis Warhead;7.9;Sep 16, 2008
84;Assassin's Creed IV: Black Flag;7.7;Nov 19, 2013
84;Age of Mythology: The Titans;8.7;Sep 30, 2003
84;SimCity 4;8.7;Jan 12, 2003
84;Microsoft Train Simulator;8.4;May 31, 2001
84;Rise of Nations: Rise of Legends;8.5;May 9, 2006
84;TOCA Race Driver 3;7.8;Feb 24, 2006
84;FTL: Faster Than Light;8.4;Sep 14, 2012
84;SOMA;8.2;Sep 22, 2015
84;DEFCON: Everybody Dies;8.3;Mar 26, 2007
84;Tron 2.0;8.3;Aug 26, 2003
84;Brothers in Arms: Earned in Blood;7.3;Oct 6, 2005
84;Grim Fandango Remastered;8.0;Jan 27, 2015
84;The Lord of the Rings: The Battle for Middle-Earth II;7.5;Mar 2, 2006
84;Battlefield Vietnam;7.4;Mar 16, 2004
84;Medieval: Total War - Viking Invasion;8.8;May 7, 2003
84;Fallout 4;5.4;Nov 10, 2015
84;Guild Wars Nightfall;8.7;Oct 26, 2006
84;The Binding of Isaac;8.3;Sep 28, 2011
84;Enemy Territory: Quake Wars;8.3;Oct 2, 2007
84;Trine 2;8.4;Dec 7, 2011
84;Rift;7.3;Mar 1, 2011
84;The Wolf Among Us: Episode 5 - Cry Wolf;8.8;Jul 8, 2014
84;Shift 2: Unleashed;6.1;Mar 29, 2011
84;Sid Meier's Civilization IV: Warlords;8.2;Jul 24, 2006
84;Battlefield 1942: The Road to Rome;7.9;Feb 2, 2003
84;Poseidon;8.4;Jun 25, 2001
84;F1 2010;6.6;Sep 22, 2010
84;Shatter;7.4;Mar 15, 2010
84;Darwinia;7.9;Jun 12, 2006
84;Ultimate General: Gettysburg;8.0;Oct 16, 2014
83;Final Fantasy XI: Treasures of Aht Urhgan;7.6;Apr 18, 2006
83;MDK2;8.4;May 31, 2000
83;Gunpoint;8.4;Jun 3, 2013
83;Beyond Good & Evil;8.7;Nov 19, 2003
83;Anno 2070;7.0;Nov 17, 2011
83;SMITE;8.3;Mar 25, 2014
83;Halo: Combat Evolved;7.4;Sep 30, 2003
83;Grim Dawn;8.9;Feb 25, 2016
83;Silent Storm;8.9;Jan 20, 2004
83;Command & Conquer: Generals - Zero Hour;9.0;Sep 22, 2003
83;Homeworld 2;8.3;Sep 16, 2003
83;Galactic Civilizations;8.1;Mar 26, 2003
83;EverQuest: The Shadows of Luclin;7.2;Dec 2, 2001
83;Orcs Must Die!;8.1;Oct 11, 2011
83;Life is Strange;8.6;Jan 19, 2016
83;Fable: The Lost Chapters;8.7;Sep 20, 2005
83;Unreal Tournament III;8.0;Nov 19, 2007
83;The Blackwell Epiphany;7.6;Apr 24, 2014
83;The Lord of the Rings Online: Siege of Mirkwood;7.1;Dec 1, 2009
83;Out of the Park Baseball 10;8.3;Jun 2, 2009
83;Tomb Raider: Anniversary;8.0;Jun 5, 2007
83;Need for Speed: Shift;5.7;Sep 15, 2009
83;Hearts of Iron II;8.6;Jan 4, 2005
83;FIFA Soccer 11;7.6;Sep 28, 2010
83;Project CARS;7.0;May 6, 2015
83;FIFA Soccer 2003;6.8;Nov 2, 2002
83;Icewind Dale II;8.3;Aug 26, 2002
83;Age of Empires;8.8;Sep 30, 1997
83;EverQuest II: Echoes of Faydwer;8.4;Nov 13, 2006
83;EverQuest II;7.3;Nov 8, 2004
83;Terraria;8.5;May 16, 2011
83;Final Fantasy XIV Online: A Realm Reborn;6.7;Aug 27, 2013
83;Card Hunter (2013);7.9;Sep 12, 2013
83;Sam & Max: The Devil's Playhouse - Episode 2: The Tomb of Sammun-Mak;7.9;May 18, 2010
83;This War of Mine;8.4;Nov 14, 2014
83;Darksiders;7.7;Sep 23, 2010
83;Tom Clancy's Rainbow Six 3: Raven Shield;8.9;Mar 19, 2003
83;World of Outlaws: Sprint Cars;7.9;Feb 11, 2003
83;Colin McRae Rally 2.0;8.4;Feb 14, 2001
83;Combat Flight Simulator 2: WWII Pacific Theater;8.1;Oct 13, 2000
83;Orcs Must Die! 2;7.9;Jul 30, 2012
83;Prey;7.9;Jul 11, 2006
83;Metal Gear Rising: Revengeance;7.9;Jan 9, 2014
83;Starseed Pilgrim;6.3;Apr 16, 2013
83;Age of Conan: Rise of the Godslayer;8.4;May 11, 2010
83;Alan Wake;8.0;Feb 16, 2012
83;Tiger Woods PGA Tour 2002;5.0;Feb 24, 2002
83;Monaco: What's Yours Is Mine;7.7;Apr 24, 2013
83;Transistor;8.3;May 20, 2014
83;Helldivers;6.9;Dec 7, 2015
83;Worldwide Soccer Manager 2009;8.1;Nov 18, 2008
83;Call of Duty: World at War;7.5;Nov 10, 2008
83;Torchlight;8.0;Jan 5, 2010
83;Prison Architect;8.3;Oct 6, 2015
83;Valdis Story: Abyssal City;8.1;Oct 30, 2013
83;Crimson Skies;8.2;Sep 17, 2000
83;RACE 07: Official WTCC Game;9.0;Oct 9, 2007
83;SUPERHOT;7.6;Feb 25, 2016
83;EverQuest II: Rise of Kunark;7.9;Nov 13, 2007
83;Dark Age of Camelot: Catacombs;8.6;Dec 7, 2004
83;Spore Creature Creator;8.1;Jun 17, 2008
83;Colin McRae Rally 2005;7.0;Oct 28, 2004
83;Tom Clancy's Splinter Cell: Conviction;5.2;Apr 27, 2010
83;Tribes: Vengeance;7.6;Oct 12, 2004
83;L.A. Noire: The Complete Edition;7.9;Nov 8, 2011
83;GTR Evolution;8.2;Sep 2, 2008
83;Life is Strange: Episode 5 - Polarized;8.4;Oct 20, 2015
83;BROFORCE;8.0;Oct 15, 2015
83;Independence War 2: Edge of Chaos;8.4;Aug 22, 2001
83;Myst III: Exile;8.2;May 8, 2001
83;Superbrothers: Sword & Sworcery EP;6.4;Apr 16, 2012
83;Sid Meier's Civilization IV: Colonization;6.7;Sep 22, 2008
83;Europa Universalis III;8.4;Jan 23, 2007
83;F1 2011;7.2;Sep 20, 2011
83;Prince of Persia: Warrior Within;8.4;Nov 30, 2004
83;Danganronpa: Trigger Happy Havoc;7.6;Feb 18, 2016
83;Counter-Strike: Global Offensive;7.8;Aug 21, 2012
83;Outland;7.1;Sep 29, 2014
83;MechWarrior 4: Mercenaries;8.6;Nov 7, 2002
83;Metal Gear Solid;9.0;Sep 24, 2000
82;Invisible, Inc.;8.0;May 12, 2015
82;Dark Souls II: Crown of the Ivory King;7.8;Sep 29, 2014
82;Red Faction: Guerrilla;7.5;Sep 15, 2009
82;The Book of Unwritten Tales;8.2;Oct 28, 2011
82;Capitalism II;9.0;Dec 16, 2001
82;Rally Trophy;8.5;Nov 20, 2001
82;Dawn of Discovery;8.8;Jun 17, 2009
82;City of Villains;8.1;Oct 31, 2005
82;Kentucky Route Zero - Act II;8.0;May 31, 2013
82;Tom Clancy's Splinter Cell: Blacklist;7.4;Aug 20, 2013
82;Act of War: Direct Action;8.5;Mar 15, 2005
82;Sokobond;7.8;Aug 27, 2013
82;Sam & Max Episode 105: Reality 2.0;8.4;Mar 29, 2007
82;Bejeweled 3;8.0;Dec 7, 2010
82;Dangerous Waters;8.8;Feb 22, 2005
82;Tomb Raider: Legend;7.8;Apr 11, 2006
82;Asheron's Call 2: Fallen Kings;8.8;Nov 20, 2002
82;Gemini Rue;8.4;Feb 24, 2011
82;Antichamber;8.2;Jan 31, 2013
82;Neverwinter Nights 2;6.5;Oct 31, 2006
82;Dragon Age: Origins - Awakening;7.7;Mar 16, 2010
82;Door Kickers;8.2;Oct 20, 2014
82;Hearthstone: Blackrock Mountain;6.4;Apr 2, 2015
82;Rome: Total War Barbarian Invasion;8.4;Sep 27, 2005
82;Hacknet;7.3;Aug 12, 2015
82;Tales of Monkey Island Chapter 3: Lair of the Leviathan;7.8;Sep 29, 2009
82;Neverwinter Nights 2: Mask of The Betrayer;8.8;Oct 9, 2007
82;Sins of a Solar Empire: Rebellion;7.8;Jun 12, 2012
82;Broken Sword: The Sleeping Dragon;7.6;Nov 17, 2003
82;Age of Wonders: Shadow Magic;8.5;Jul 25, 2003
82;Tom Clancy's Ghost Recon: Desert Siege;8.4;Mar 27, 2002
82;Warlords Battlecry II;8.5;Mar 11, 2002
82;Football Manager Live;2.9;Jan 23, 2009
82;Marvel: Ultimate Alliance;8.3;Oct 24, 2006
82;The Talos Principle: Road To Gehenna;7.6;Jul 23, 2015
82;Lara Croft and the Guardian of Light;8.2;Sep 28, 2010
82;Aquaria;8.3;Dec 7, 2007
82;Need for Speed: Underground;8.3;Nov 17, 2003
82;TrackMania Sunrise;8.5;May 6, 2005
82;King's Quest Chapter 1: A Knight to Remember;7.2;Jul 28, 2015
82;Dragon Age II;4.4;Mar 8, 2011
82;Endless Legend;7.9;Apr 24, 2014
82;Tom Clancy's Ghost Recon: Island Thunder;8.3;Sep 25, 2002
82;S.T.A.L.K.E.R.: Shadow of Chernobyl;8.4;Mar 20, 2007
82;Kero Blaster;6.9;May 11, 2014
82;Monday Night Combat;7.3;Jan 24, 2011
82;The Wolf Among Us: Episode 3 - A Crooked Mile;8.6;Apr 8, 2014
82;Airborne Assault: Red Devils Over Arnhem;7.4;Jun 17, 2002
82;Fallout Tactics: Brotherhood of Steel;7.9;Mar 14, 2001
82;Need for Speed: Underground 2;8.5;Nov 9, 2004
82;NHL Eastside Hockey Manager 2005;6.6;Oct 5, 2005
82;Legend of Grimrock;8.1;Apr 11, 2012
82;Dominions 3: The Awakening;8.1;Sep 29, 2006
82;Bulletstorm;7.7;Feb 22, 2011
82;Borderlands 2: Mr. Torgue's Campaign of Carnage;7.3;Nov 20, 2012
82;Desktop Dungeons;8.2;Oct 17, 2010
82;Fallout: New Vegas - Old World Blues;7.8;Jul 19, 2011
82;Crusader Kings II;8.7;Feb 14, 2012
82;MVP Baseball 2004;7.9;Mar 9, 2004
82;Europa 1400: The Guild;8.6;Nov 18, 2002
82;Battle Realms;8.6;Nov 7, 2001
82;Warlords Battlecry;8.2;Jul 9, 2000
82;Sam & Max Episode 201: Ice Station Santa;8.6;Nov 8, 2007
82;Technobabylon;7.8;May 21, 2015
82;World of Warcraft: Mists of Pandaria;4.8;Sep 25, 2012
82;FIFA 15;4.2;Sep 23, 2014
82;Recettear: An Item Shop's Tale;8.6;Sep 10, 2010
82;ETHER One;6.9;Mar 25, 2014
82;The Vanishing of Ethan Carter;8.1;Sep 25, 2014
82;Flight Simulator X: Acceleration;7.3;Oct 23, 2007
82;Blood;9.0;May 31, 1997
82;Command & Conquer: Red Alert 3;6.8;Oct 28, 2008
82;The Walking Dead: Episode 1 - A New Day;8.4;Apr 24, 2012
82;Links 2003;6.8;Sep 16, 2002
82;Earth & Beyond;7.1;Sep 2, 2002
82;Syberia;8.5;Sep 1, 2002
82;Virtual Pool 3;7.3;Nov 14, 2000
82;The Sims: Livin' Large;6.6;Aug 27, 2000
82;DCS: Black Shark;8.5;Apr 13, 2009
82;King's Bounty: Armored Princess;8.7;Sep 10, 2010
82;Age of Wonders III - Golden Realms;8.5;Sep 18, 2014
82;Strong Bad's Cool Game for Attractive People Episode 5: 8-Bit Is Enough;7.5;Dec 15, 2008
82;Prince of Persia;7.2;Dec 2, 2008
82;Joint Operations: Typhoon Rising;8.7;Jun 15, 2004
82;Xpand Rally;7.4;Apr 20, 2006
82;Dark Souls II: Crown of the Sunken King;7.3;Jul 22, 2014
82;Resident Evil HD Remaster;8.2;Jan 20, 2015
82;Celtic Kings: Rage of War;8.5;Aug 21, 2002
82;B-17 Flying Fortress: The Mighty 8th;7.3;Dec 13, 2000
82;EverQuest: The Scars of Velious;7.8;Dec 4, 2000
82;Metro: Last Light;8.6;May 14, 2013
82;Rising Storm;8.5;May 30, 2013
82;Lethal League;7.4;Aug 27, 2014
82;Botanicula;8.3;Apr 19, 2012
82;Pro Evolution Soccer 2015;5.8;Nov 13, 2014
82;Bookworm Adventures Deluxe;7.9;Dec 20, 2006
82;The Lord of the Rings: The Battle for Middle-Earth;8.6;Dec 6, 2004
82;Hitman: Blood Money;8.8;May 30, 2006
82;Need for Speed: Most Wanted;8.5;Nov 15, 2005
82;OlliOlli2: Welcome to Olliwood;5.2;Aug 11, 2015
82;WildStar;7.4;Jun 3, 2014
82;Broken Age: Act 1;7.7;Jan 28, 2014
82;Divinity II: The Dragon Knight Saga;8.2;Nov 5, 2010
82;Out of the Park Baseball 9;7.4;Jun 1, 2008
82;The Simpsons: Hit & Run;8.0;Nov 13, 2003
82;America's Army;6.1;Aug 28, 2002
82;Star Trek Bridge Commander;8.1;Feb 27, 2002
82;The Last Express;8.9;Mar 31, 1997
81;Quake 4;7.5;Oct 11, 2005
81;Nidhogg;7.0;Jan 13, 2014
81;Battlefield 4;6.0;Oct 29, 2013
81;To the Moon;8.9;Sep 7, 2012
81;The Sims 3: World Adventures;8.0;Nov 16, 2009
81;Painkiller;8.0;Apr 12, 2004
81;Airborne Assault: Highway to the Reich;6.1;Dec 10, 2003
81;Nancy Drew: Danger on Deception Island;7.7;Oct 1, 2003
81;Shadowrun: Hong Kong;7.7;Aug 20, 2015
81;Supreme Commander: Forged Alliance;8.9;Nov 6, 2007
81;Sunless Sea;7.4;Jul 1, 2014
81;The Walking Dead: Season Two Episode 3 - In Harm's Way;8.3;May 13, 2014
81;Marvel Heroes 2015;7.9;Jun 4, 2014
81;Football Manager 2016;6.4;Nov 13, 2015
81;VVVVVV;8.1;Jan 11, 2010
81;Darksiders II;7.9;Aug 14, 2012
81;Wolfenstein: The New Order;8.2;May 20, 2014
81;Lone Survivor;7.2;Apr 23, 2012
81;Alien: Isolation;8.4;Oct 6, 2014
81;The Witcher;8.8;Oct 30, 2007
81;Kentucky Route Zero - Act I;7.5;Jan 7, 2013
81;Jade Empire: Special Edition;8.3;Feb 26, 2007
81;SWAT 3: Elite Edition;8.4;Oct 6, 2000
81;Asheron's Call;8.8;Oct 31, 1999
81;Unravel;8.1;Feb 9, 2016
81;Midnight Club II;8.0;Jun 30, 2003
81;Chessmaster 10th Edition;7.4;Aug 12, 2004
81;Age of Empires III;7.7;Oct 18, 2005
81;Tales of Monkey Island Chapter 5: Rise of the Pirate God;8.4;Dec 8, 2009
81;Castlevania: Lords of Shadow Ultimate Edition;7.3;Aug 27, 2013
81;Strong Bad's Cool Game for Attractive People Episode 2: Strong Badia the Free;8.2;Sep 15, 2008
81;The Cat Lady;8.7;Dec 4, 2013
81;Vessel;7.9;Mar 1, 2012
81;Metro 2033;8.1;Mar 16, 2010
81;OutRun 2006: Coast 2 Coast;7.8;Jun 27, 2006
81;Blur;7.3;May 25, 2010
81;Empires: Dawn of the Modern World;8.2;Oct 21, 2003
81;Chessmaster 9000;7.7;Aug 31, 2002
81;Gothic;8.6;Nov 23, 2001
81;Arcanum: Of Steamworks and Magick Obscura;8.9;Aug 22, 2001
81;NASCAR Heat;8.6;Sep 27, 2000
81;Company of Heroes 2: Ardennes Assault;6.1;Nov 17, 2014
81;PlanetSide;7.3;May 20, 2003
81;Tales From The Borderlands: Episode 3 - Catch A Ride;8.4;Jun 23, 2015
81;The Walking Dead: Season Two Episode 2 - A House Divided;8.6;Mar 4, 2014
81;Kingdoms of Amalur: Reckoning;6.6;Feb 7, 2012
81;Sam & Max: The Devil's Playhouse - Episode 1: The Penal Zone;8.5;Apr 15, 2010
81;Borderlands;7.8;Oct 26, 2009
81;DG2: Defense Grid 2;6.7;Sep 23, 2014
81;Napoleon: Total War;7.9;Feb 23, 2010
81;Overlord;8.1;Jun 26, 2007
81;Firewatch;7.2;Feb 9, 2016
81;Victoria II: Heart of Darkness;8.7;Apr 16, 2013
81;Waveform;7.6;Jan 25, 2013
81;The Elder Scrolls IV: Knights of the Nine;7.5;Nov 21, 2006
81;Red Orchestra: Ostfront 41-45;8.6;Mar 14, 2006
81;Stronghold;8.9;Oct 21, 2001
81;Strong Bad's Cool Game for Attractive People Episode 4: Dangeresque 3: The Criminal Projective;8.5;Nov 17, 2008
81;Rochard;8.0;Nov 15, 2011
81;Fallout 3: Broken Steel;7.3;May 5, 2009
81;Tiger Woods PGA Tour 06;8.1;Sep 20, 2005
81;RollerCoaster Tycoon 3;4.9;Oct 26, 2004
81;Dragon's Dogma: Dark Arisen;8.3;Jan 15, 2016
81;Guild Wars 2: Heart of Thorns;7.3;Oct 23, 2015
81;AaaaaAAaaaAAAaaAAAAaAAAAA!!! - A Reckless Disregard for Gravity;7.2;Sep 3, 2009
81;The Sims 2 University;7.8;Feb 28, 2005
81;Far Cry 3: Blood Dragon;8.1;May 1, 2013
81;Sid Meier's Civilization: Beyond Earth;5.5;Oct 24, 2014
81;Disney's Toontown Online;8.7;Oct 6, 2005
81;Combat Mission 3: Afrika Korps;8.4;Dec 3, 2003
81;EverQuest: The Planes of Power;8.2;Oct 28, 2002
81;Rails Across America;8.0;Sep 18, 2001
81;Wasteland 2;7.3;Sep 19, 2014
81;Jamestown: Legend of the Lost Colony;7.5;Jun 8, 2011
81;Call of Duty: Black Ops;5.1;Nov 9, 2010
81;Kohan II: Kings of War;7.9;Sep 20, 2004
81;The Age of Decadence;7.9;Oct 15, 2015
81;Samorost 3;8.3;Mar 24, 2016
81;Order of Battle: Pacific;6.4;Apr 30, 2015
81;Empire Earth;8.3;Nov 12, 2001
81;Star Trek: Deep Space Nine: The Fallen;7.9;Nov 15, 2000
81;Sam & Max Episode 101: Culture Shock;8.7;Oct 18, 2006
81;Mirror's Edge (2008);8.1;Jan 12, 2009
81;TrackMania 2 Canyon;7.7;Sep 14, 2011
81;Sleeping Dogs;8.2;Aug 14, 2012
81;Star Wars Jedi Knight: Jedi Academy;8.6;Sep 17, 2003
81;Mortal Kombat Komplete Edition;8.7;Aug 6, 2013
81;Shadowrun: Dragonfall;8.3;Feb 27, 2014
81;Eets;6.4;Mar 29, 2006
81;World of Warships;6.6;Sep 17, 2015
81;TOCA Race Driver 2: The Ultimate Racing Simulator;8.0;Apr 15, 2004
81;Wargame: European Escalation;8.2;Feb 22, 2012
81;Dungeon Defenders;7.3;Oct 18, 2011
81;Sam & Max: The Devil's Playhouse - Episode 5: The City That Dares Not Sleep;7.9;Aug 30, 2010
81;Age of Empires III: The Asian Dynasties;8.5;Oct 23, 2007
81;Defense Grid: The Awakening;8.8;Jul 29, 2009
81;Codename: Panzers, Phase One;8.8;Sep 30, 2004
81;FIFA 16;4.4;Sep 22, 2015
81;Europa Universalis IV: Conquest of Paradise;7.7;Jan 14, 2014
81;Ghost Master;8.0;Aug 26, 2003
81;Divine Divinity;8.5;Sep 22, 2002
80;The Book of Unwritten Tales 2;7.7;Feb 20, 2015
80;Galactic Civilizations III;6.6;May 14, 2015
80;Lovers in a Dangerous Spacetime;7.2;Sep 9, 2015
80;Age of Conan: Hyborian Adventures;7.3;May 20, 2008
80;Company of Heroes 2: The Western Front Armies;6.8;Jun 23, 2014
80;Sid Meier's Civilization V: Gods & Kings;7.7;Jun 19, 2012
80;Age of Empires III: The WarChiefs;8.1;Oct 17, 2006
80;Metal Gear Solid V: Ground Zeroes;7.7;Dec 18, 2014
80;Trials Fusion;6.8;Apr 16, 2014
80;Syberia II;8.3;Mar 30, 2004
80;Tom Clancy's Ghost Recon;8.4;Nov 13, 2001
80;Conquest: Frontier Wars;8.3;Aug 14, 2001
80;Gabriel Knight 3: Blood of the Sacred, Blood of the Damned;8.8;Oct 5, 1999
80;Westerado: Double Barreled;7.4;Apr 16, 2015
80;Anomaly: Warzone Earth;7.3;Apr 8, 2011
80;Volume;7.2;Aug 18, 2015
80;GRID 2;5.7;May 27, 2013
80;The Banner Saga;7.9;Jan 14, 2014
80;Sam & Max Episode 202: Moai Better Blues;7.7;Jan 10, 2008
80;Age of Wonders III - Eternal Lords;8.4;Apr 14, 2015
80;Pro Evolution Soccer 2013;6.8;Sep 25, 2012
80;Osmos;7.5;Aug 18, 2009
80;Dungeon Siege II;7.9;Aug 16, 2005
80;Dead Island;6.8;Sep 6, 2011
80;Sam & Max Episode 104: Abe Lincoln Must Die!;7.8;Feb 22, 2007
80;Deus Ex: Invisible War;6.3;Dec 2, 2003
80;The Sims: Makin' Magic;8.6;Oct 28, 2003
80;Tom Clancy's Splinter Cell: Double Agent;5.7;Nov 7, 2006
80;Medal of Honor: Pacific Assault;7.4;Nov 4, 2004
80;Assassin's Creed: Revelations;7.4;Nov 29, 2011
80;Grandia II Anniversary Edition;7.6;Aug 24, 2015
80;Assassin's Creed III;6.2;Nov 20, 2012
80;Madden NFL 07;7.3;Aug 22, 2006
80;Outlast;8.4;Sep 4, 2013
80;The Chronicles of Riddick: Assault on Dark Athena;8.0;Apr 7, 2009
80;Hearts of Iron II: Doomsday;8.8;Apr 7, 2006
80;Dishonored: The Brigmore Witches;8.5;Aug 13, 2013
80;Codename: Panzers, Phase Two;8.0;Jul 25, 2005
80;Full Spectrum Warrior;7.0;Sep 21, 2004
80;AI War: Fleet Command;8.4;May 14, 2009
80;Freedom Fighters;8.3;Oct 1, 2003
80;NBA Live 2003;8.3;Nov 14, 2002
80;The Elder Scrolls III: Tribunal;8.2;Nov 6, 2002
80;Elite: Dangerous;6.4;Dec 16, 2014
80;Pure;6.9;Sep 16, 2008
80;Goodbye Deponia;8.1;Oct 17, 2013
80;SWAT 4: The Stetchkov Syndicate;8.3;Feb 28, 2006
80;Dropsy;7.3;Sep 10, 2015
80;Company of Heroes 2: The British Forces;5.9;Sep 3, 2015
80;Ground Control II: Operation Exodus;8.8;Jun 23, 2004
80;NBA Live 2004;9.0;Nov 11, 2003
80;Brutal Legend;7.8;Feb 26, 2013
80;Tomb Raider: Underworld;7.6;Nov 18, 2008
80;Oxenfree;7.7;Jan 15, 2016
80;Titan Quest: Immortal Throne;8.7;Mar 5, 2007
80;La-Mulana (Remake);7.1;Jul 13, 2012
80;X-Men Legends II: Rise of Apocalypse;8.4;Sep 20, 2005
80;SpellForce 2: Shadow Wars;7.6;May 5, 2006
80;Fritz 8 Deluxe;7.8;Dec 1, 2004
80;Trine;8.2;Sep 11, 2009
80;Dishonored: The Knife of Dunwall;8.1;Apr 16, 2013
80;Company of Heroes 2;2.0;Jun 25, 2013
80;Natural Selection 2;8.4;Oct 30, 2012
80;Read Only Memories;7.2;Oct 5, 2015
80;The Sims 3: Into the Future;5.4;Oct 22, 2013
80;Borderlands 2: Captain Scarlett and Her Pirate's Booty;7.4;Oct 16, 2012
80;FATE;8.3;Sep 19, 2006
80;2002 FIFA World Cup;7.9;Apr 30, 2002
80;Asheron's Call Dark Majesty;8.1;Nov 4, 2001
80;The Bug Butcher;8.2;Jan 19, 2016
80;Dragonshard;7.4;Oct 2, 2005
80;Icewind Dale: Enhanced Edition;7.6;Oct 30, 2014
80;The Magic Circle;7.3;Jul 9, 2015
80;Far Cry 4;6.6;Nov 18, 2014
80;Super Time Force Ultra;6.6;Aug 25, 2014
80;Day of Defeat: Source;9.1;Feb 7, 2006
80;Battlefield 2142;6.8;Oct 17, 2006
80;World of Tanks;3.8;Sep 6, 2011
80;Vampire: The Masquerade - Bloodlines;9.0;Nov 16, 2004
80;Dark Souls II: Scholar of the First Sin;7.4;Apr 1, 2015
80;Warhammer 40,000: Dawn of War II - Retribution;7.8;Mar 1, 2011
80;Panzer Corps;7.5;Jul 11, 2011
80;Men of War;8.1;Mar 16, 2009
80;Fallen Enchantress: Legendary Heroes;7.7;May 22, 2013
80;The Walking Dead: Episode 4 - Around Every Corner;8.5;Oct 10, 2012
80;Tales of Monkey Island Chapter 4: The Trial and Execution of Guybrush Threepwood;8.4;Oct 30, 2009
80;Penny Arcade Adventures: Episode Two;7.7;Nov 7, 2008
80;Time Commando;8.9;Jul 31, 1996
80;Sins of a Solar Empire: Entrenchment;8.1;Feb 25, 2009
80;F1 2012;6.9;Sep 18, 2012
80;Luftrausers;6.8;Mar 18, 2014
80;Naruto Shippuden: Ultimate Ninja Storm 3 Full Burst;7.9;Oct 24, 2013
80;Stealth Bastard Deluxe;8.3;Nov 28, 2012
80;Tom Clancy's Ghost Recon Advanced Warfighter;7.7;May 3, 2006
80;LEGO Batman: The Videogame;7.9;Sep 23, 2008
80;Stacking;7.9;Mar 6, 2012
80;Age of Wonders III;7.8;Mar 31, 2014
80;Life is Strange: Episode 3 - Chaos Theory;9.0;May 19, 2015
80;The Legend of Heroes: Trails in the Sky SC;8.4;Oct 29, 2015
80;Proteus;5.6;Jan 30, 2013
80;Robin Hood: The Legend of Sherwood;8.3;Nov 14, 2002
80;Soldier of Fortune II: Double Helix;7.3;May 20, 2002
80;RollerCoaster Tycoon: Loopy Landscapes;9.0;Sep 30, 2000
80;Toki Tori;7.9;Jan 28, 2010
80;RoboBlitz;8.3;Nov 7, 2006
80;Wargame: AirLand Battle;8.1;May 29, 2013
80;Football Manager 2015;6.0;Nov 7, 2014
80;The Suffering;8.2;Jun 8, 2004
80;Gish;7.2;Sep 17, 2004
80;Axiom Verge;8.2;May 14, 2015
80;Driver: San Francisco;7.0;Sep 27, 2011
80;The Corporate Machine;7.5;Jul 14, 2001
80;Dungeons & Dragons: Chronicles of Mystara;6.7;Jun 18, 2013
80;Disciples II: Rise of the Elves;8.1;Nov 25, 2003
80;MechCommander 2;8.3;Jul 18, 2001
80;Waterloo: Napoleon's Last Battle;7.5;Mar 25, 2001
80;Chessmaster 8000;6.4;Nov 14, 2000
80;Circle of Blood;8.6;Sep 30, 1996
80;BioShock Infinite: Burial at Sea - Episode Two;8.5;Mar 25, 2014
80;S.T.A.L.K.E.R.: Call of Pripyat;8.7;Feb 2, 2010
80;The Walking Dead: Season Two - A Telltale Games Series;8.3;Dec 17, 2013
80;FLY'N;8.2;Nov 9, 2012
80;Total War: Attila;7.3;Feb 17, 2015
80;The Wolf Among Us;8.8;Oct 11, 2013
80;Nancy Drew: Secret of the Old Clock;8.1;Jul 26, 2005
80;ArcheAge;3.6;Sep 16, 2014
80;CAPSIZED;7.1;Apr 29, 2011
80;Microsoft Flight Simulator X;7.6;Oct 17, 2006
80;Myst V: End of Ages;7.8;Sep 19, 2005
80;Railroad Tycoon 3;7.7;Oct 23, 2003
80;Hostile Waters: Antaeus Rising;8.1;Jun 13, 2001
79;Dustforce;7.9;Jan 17, 2012
79;Empire Earth II;7.0;Apr 26, 2005
79;Fallout 3: Point Lookout;7.8;Jun 23, 2009
79;Test Drive Unlimited;8.1;Mar 20, 2007
79;Dying Light: The Following;8.3;Feb 9, 2016
79;The Path;7.0;Mar 18, 2009
79;Dungeon of the Endless;8.0;Oct 27, 2014
79;Revenge of the Titans;7.6;May 24, 2010
79;Bookworm Adventures: Volume 2;7.6;Jul 30, 2009
79;F1 2001;7.5;Oct 14, 2001
79;Brothers in Arms: Hell's Highway;7.9;Oct 7, 2008
79;Star Wars: Empire at War;8.4;Feb 15, 2006
79;Dariusburst: Chronicle Saviours;8.3;Dec 3, 2015
79;Europa Universalis: Rome - Vae Victis;8.6;Nov 19, 2008
79;Silent Hunter: Wolves of the Pacific;6.5;Mar 20, 2007
79;Pillars of Eternity: The White March - Part 2;6.7;Feb 16, 2016
79;1701 A.D.;8.3;Nov 6, 2006
79;Stasis;7.6;Aug 31, 2015
79;Pro Evolution Soccer 2009;7.4;Nov 12, 2008
79;Return to Mysterious Island;8.5;Nov 2, 2004
79;Jotun;7.0;Sep 29, 2015
79;Else Heart.Break();7.5;Sep 24, 2015
79;Kohan: Ahriman's Gift;8.7;Nov 5, 2001
79;Emperor: Battle for Dune;8.3;Jun 12, 2001
79;Trackmania Turbo;6.9;Mar 24, 2016
79;Cart Life;5.9;Jul 29, 2010
79;Sword of the Stars: Born of Blood;8.1;Jun 5, 2007
79;Worms Reloaded;6.7;Aug 26, 2010
79;Warhammer: End Times - Vermintide;7.9;Oct 23, 2015
79;Euro Truck Simulator 2;8.7;Jan 16, 2013
79;Tropico 3;8.2;Oct 20, 2009
79;Cities: Skylines - After Dark;7.9;Sep 24, 2015
79;Runaway: A Twist of Fate;8.5;Apr 21, 2011
79;Tales of Monkey Island Chapter 1: Launch of the Screaming Narwhal;8.2;Jul 7, 2009
79;Bloodline Champions;8.0;Jan 13, 2011
79;The Sims: Superstar;8.2;May 12, 2003
79;NBA Live 2005;8.5;Oct 26, 2004
79;Valiant Hearts: The Great War;8.6;Jun 25, 2014
79;Payday 2;3.4;Aug 13, 2013
79;Dungeons of Dredmor;7.8;Jul 13, 2011
79;Geometry Wars 3: Dimensions;6.2;Nov 25, 2014
79;Assassin's Creed: Director's Cut Edition;7.5;Apr 8, 2008
79;Puzzle Dimension;7.6;Jun 21, 2010
79;Split/Second;8.2;May 18, 2010
79;Sang-Froid: Tales of Werewolves;7.9;Apr 5, 2013
79;The Incredible Adventures of Van Helsing: Final Cut;7.2;Oct 7, 2015
79;Hitman: Absolution;7.0;Nov 19, 2012
79;Call of Juarez: Gunslinger;8.2;May 22, 2013
79;Rome: Total War Alexander;7.6;Jun 19, 2006
79;Strong Bad's Cool Game for Attractive People Episode 3: Baddest of the Bands;8.1;Oct 27, 2008
79;Sam & Max Episode 102: Situation: Comedy;7.9;Dec 20, 2006
79;Tropico 3: Absolute Power;7.7;May 17, 2010
79;Sam & Max Episode 106: Bright Side of the Moon;7.3;Apr 26, 2007
79;Day of Defeat;9.3;May 6, 2003
79;Space Empires: IV;8.3;Nov 6, 2000
79;Resident Evil 4: Ultimate HD Edition;7.7;Feb 27, 2014
79;Sam & Max Episode 203: Night of the Raving Dead;8.2;Feb 12, 2008
79;FlatOut: Ultimate Carnage;7.6;Sep 2, 2008
79;Guitar Hero III: Legends of Rock;7.2;Nov 13, 2007
79;Sid Meier's Civilization: Beyond Earth - Rising Tide;5.9;Oct 9, 2015
79;Memoria;8.5;Aug 29, 2013
79;The Last Door;7.8;May 20, 2014
79;Shadowgrounds Survivor;7.8;Dec 6, 2007
79;Gothic II;8.8;Oct 28, 2003
79;Port Royale;8.2;Jun 4, 2003
79;Deadly Dozen: Pacific Theater;7.9;Oct 31, 2002
79;Shattered Galaxy;8.3;Aug 21, 2001
79;Close Combat: Invasion: Normandy;8.2;Oct 10, 2000
79;King's Bounty: The Legend;8.6;Sep 23, 2008
79;Rage;5.1;Oct 4, 2011
79;The Misadventures of P.B. Winterbottom;8.3;Apr 20, 2010
79;Uru: Ages Beyond Myst;7.4;Nov 11, 2003
79;Guild Wars: Eye of the North;8.6;Aug 28, 2007
79;Tales From The Borderlands: Episode 4 - Escape Plan Bravo;8.4;Aug 18, 2015
79;EverQuest: Lost Dungeons of Norrath;7.0;Sep 8, 2003
79;Battlefield 1942: Secret Weapons of WWII;8.5;Sep 4, 2003
79;The Sims: Unleashed;8.0;Sep 23, 2002
79;Race the Sun;7.5;Aug 19, 2013
79;The Sims 3: Pets;6.1;Oct 18, 2011
79;Prototype;7.9;Jun 10, 2009
79;Stick it to the Man!;7.2;Dec 13, 2013
79;Street Fighter X Tekken;6.4;May 11, 2012
79;Frozen Cortex;6.5;Feb 19, 2015
79;Free Realms;6.4;Apr 29, 2009
79;Homeworld: Deserts of Kharak;8.0;Jan 20, 2016
79;Don't Starve;8.3;Apr 23, 2013
79;Assault Android Cactus;7.0;Sep 23, 2015
79;Trainz;7.2;Feb 10, 2002
79;King Arthur: The Role-Playing Wargame;7.9;Nov 24, 2009
79;Chivalry: Medieval Warfare;7.8;Oct 16, 2012
79;Overlord II;8.1;Jun 23, 2009
79;F.E.A.R. 2: Project Origin;7.8;Feb 10, 2009
79;Tom Clancy's Rainbow Six Siege;6.9;Dec 1, 2015
79;The Settlers 7: Paths to a Kingdom;5.2;Mar 23, 2010
79;RollerCoaster Tycoon 3: Soaked!;2.9;Jun 23, 2005
79;Dark Souls II: Crown of the Old Iron King;7.6;Aug 26, 2014
79;TrackMania 2 Valley;8.3;Jul 4, 2013
79;State of Decay;6.8;Nov 5, 2013
79;LEGO Harry Potter: Years 1-4;7.8;Jun 29, 2010
79;Rift: Storm Legion;7.8;Nov 13, 2012
79;Crayon Physics Deluxe;7.6;Jan 7, 2009
79;Nancy Drew: Legend of the Crystal Skull;8.5;Oct 8, 2007
79;EverQuest II: Desert of Flames;7.8;Sep 12, 2005
79;SimCity 4: Rush Hour;8.6;Sep 22, 2003
79;Uncommon Valor: Campaign for the South Pacific;7.6;Dec 2, 2002
79;Global Operations;8.3;Mar 25, 2002
78;Apotheon;7.8;Feb 3, 2015
78;Need for Speed: Most Wanted - A Criterion Game;4.4;Oct 30, 2012
78;Star Wars: Battlefront II;8.8;Oct 31, 2005
78;The Walking Dead: Season Two Episode 1 - All That Remains;8.5;Dec 17, 2013
78;The Journey Down: Chapter Two;7.1;Aug 25, 2014
78;Star Trek: Elite Force II;7.6;Jun 25, 2003
78;Zuma's Revenge!;7.9;Sep 15, 2009
78;Baldur's Gate: Enhanced Edition;7.0;Nov 28, 2012
78;Doom 3: Resurrection of Evil;6.0;Apr 4, 2005
78;LEGO Indiana Jones: The Original Adventures;7.7;Jun 3, 2008
78;NASCAR Thunder 2004;7.5;Sep 16, 2003
78;Transformers: Fall of Cybertron;7.8;Aug 21, 2012
78;FIFA Soccer 06;6.7;Oct 4, 2005
78;DeadCore;6.8;Oct 17, 2014
78;The Walking Dead: Season Two Episode 5 - No Going Back;8.5;Aug 26, 2014

View File

@ -0,0 +1,45 @@
# Map und Filter auf Streams
## Lernziel
Einen Stream durch Map- und Filter-Operationen analysieren und gewünschte Daten extrahieren.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.map_filter](../sources/src/main/java/pr2/streams/map_filter/).
In dieser (und den folgenden Aufgaben) werden Sie Daten aus der Spieledatenbank von [Metacritic](http://www.metacritic.com) analysieren. Hierbei wurden die 994 Spiele mit der besten Bewertung ausgewählt. Für jedes Spiel sind angegeben:
* Name des Spiels
* Metacritic-Score (0-100)
* Benutzerbewertung (0-100). Normalerweise werden die Benutzerbewertungen bei Metacritic on 0-10 mit einer Nachkommastelle angegeben. Für die einfachere Bearbeitung ist dies für Sie aber bereits in den Bereich 0-100 umgerechnet worden.
* Erscheinungsjahr des Spiels
Die Verwaltung der Daten wurde Ihnen bereits abgenommen und wird von der Klasse `GameDatabase` durchgeführt. Ein einzelnes Spiel wird durch Objekte des Typs `ComputerGame` repräsentiert.
Schauen Sie sich die Klassen `ComputerGame` und `GameDatabase` an und versuchen Sie deren Funktionsweise zu verstehen.
Erweitern Sie nun die `main`-Methode von `MapFilterGames` so, dass Sie bestimmte Auswertungen auf den Spielen durchführen können. Folgende Informationen sollen Sie auswerten:
1. Alle Spiele im Jahre 2010 mit einem Metascore >= 80 und einem Userscore >= 80.
2. Das Spiel mit dem größten Unterschied zwischen Metascore und Userscore.
3. Das Spiel mit dem kleinsten Unterschied zwischen Metascore und Userscore.
Lassen Sie Ihr Programm laufen und überprüfen Sie, ob die richtigen Informationen ausgegeben werden.
Die Datei mit den Spielen finden Sie unter [games.txt](../sources/src/main/resources/pr2/streams/map_filter/games.txt).
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,994 @@
96;Half-Life 2;9.2;Nov 16, 2004
96;Grand Theft Auto V;7.8;Apr 14, 2015
96;The Orange Box;9.3;Oct 10, 2007
96;Half-Life;9.1;Oct 31, 1998
96;BioShock;8.4;Aug 21, 2007
95;Baldur's Gate II: Shadows of Amn;9.2;Sep 24, 2000
95;Portal 2;8.8;Apr 19, 2011
94;The Elder Scrolls V: Skyrim;8.1;Nov 11, 2011
94;Mass Effect 2;8.7;Jan 26, 2010
94;Grand Theft Auto: Vice City;8.8;May 12, 2003
94;Civilization II;9.0;Feb 29, 1996
94;Quake;8.8;Jun 22, 1996
94;BioShock Infinite;8.5;Mar 26, 2013
94;The Elder Scrolls IV: Oblivion;8.0;Mar 20, 2006
94;Grim Fandango;9.1;Sep 30, 1998
94;Diablo;8.7;Nov 30, 1996
94;Sid Meier's Civilization IV;8.2;Oct 25, 2005
93;The Witcher 3: Wild Hunt;9.1;May 19, 2015
93;Company of Heroes;8.8;Sep 13, 2006
93;Unreal Tournament 2004;8.9;Mar 16, 2004
93;Starcraft II: Wings of Liberty;8.2;Jul 27, 2010
93;Minecraft;7.4;May 10, 2009
93;Grand Theft Auto III;8.4;May 20, 2002
93;Homeworld;8.9;Aug 31, 1999
93;Star Wars: Knights of the Old Republic;9.0;Nov 18, 2003
93;World of Warcraft;7.2;Nov 23, 2004
93;Grand Theft Auto: San Andreas;8.8;Jun 7, 2005
92;Call of Duty 4: Modern Warfare;8.5;Nov 5, 2007
92;Warcraft III: Reign of Chaos;9.1;Jul 3, 2002
92;The Sims;7.9;Jan 31, 2000
92;Sid Meier's Gettysburg!;7.7;Sep 30, 1997
92;World Soccer Winning Eleven 7 International;7.9;Apr 9, 2004
92;Team Fortress 2;9.2;Apr 8, 2008
92;System Shock 2;9.1;Aug 11, 1999
92;Tom Clancy's Splinter Cell: Chaos Theory;8.8;Mar 28, 2005
92;Undertale;8.2;Sep 15, 2015
92;Rome: Total War;9.1;Sep 22, 2004
92;Thief: The Dark Project;9.1;Nov 30, 1998
92;Age of Empires II: The Age of Kings;9.0;Sep 30, 1999
92;Unreal Tournament (1999);9.1;Nov 30, 1999
92;Sid Meier's Alpha Centauri;9.1;Feb 12, 1999
92;Galactic Civilizations II: Twilight of the Arnor;8.4;Apr 30, 2008
92;Tiger Woods PGA Tour 2003;6.0;Oct 31, 2002
91;Dishonored;8.4;Oct 9, 2012
91;Medal of Honor: Allied Assault;8.6;Jan 20, 2002
91;Myth: The Fallen Lords;8.8;Oct 31, 1997
91;World of Warcraft: Wrath of the Lich King;7.4;Nov 13, 2008
91;F1 Challenge '99-'02;8.3;Jun 24, 2003
91;Baldur's Gate;9.0;Nov 30, 1998
91;IL-2 Sturmovik;8.7;Nov 18, 2001
91;FreeSpace 2;8.8;Sep 30, 1999
91;Metal Gear Solid V: The Phantom Pain;7.7;Sep 1, 2015
91;Tom Clancy's Splinter Cell;8.6;Feb 19, 2003
91;Crysis;8.0;Nov 13, 2007
91;World of Warcraft: The Burning Crusade;7.9;Jan 16, 2007
91;Tiger Woods PGA Tour 2005;4.6;Sep 20, 2004
91;The Longest Journey;8.9;Nov 16, 2000
91;Tony Hawk's Pro Skater 2;8.5;Oct 31, 2000
91;Star Wars Jedi Knight: Dark Forces II;8.5;Sep 30, 1997
91;Batman: Arkham Asylum;8.7;Sep 15, 2009
91;Galactic Civilizations II: Dark Avatar;8.2;Feb 14, 2007
91;The Operative: No One Lives Forever;8.9;Nov 9, 2000
91;Battlefield 2;8.4;Jun 21, 2005
91;Street Fighter IV;8.0;Jul 1, 2009
91;Fallout 3;7.9;Oct 28, 2008
91;Batman: Arkham City;8.6;Nov 22, 2011
91;Fez;6.5;May 1, 2013
91;Planescape: Torment;9.3;Nov 30, 1999
91;Neverwinter Nights;8.1;Jun 16, 2002
91;No One Lives Forever 2: A Spy in H.A.R.M.'s Way;8.7;Sep 30, 2002
91;Dragon Age: Origins;8.6;Nov 3, 2009
91;Mark of the Ninja;8.0;Oct 16, 2012
91;Dark Souls II;7.1;Apr 25, 2014
91;Call of Duty;8.5;Oct 29, 2003
91;Madden NFL 2004;8.2;Aug 12, 2003
90;The Sims 2;8.8;Sep 14, 2004
90;World of Warcraft: Cataclysm;5.5;Dec 7, 2010
90;World of Goo;8.5;Oct 21, 2008
90;Spelunky;7.2;Aug 8, 2013
90;Black & White;7.6;Mar 26, 2001
90;Portal;9.3;Apr 8, 2008
90;NHL 2001;6.9;Sep 28, 2000
90;Tony Hawk's Pro Skater 3;8.6;Mar 28, 2002
90;Deus Ex;9.3;Jun 26, 2000
90;Half-Life 2: Episode Two;9.2;Oct 10, 2007
90;Braid;8.6;Jan 26, 2010
90;The Chronicles of Riddick: Escape From Butcher Bay - Developer's Cut;8.7;Dec 8, 2004
90;Sid Meier's Civilization III;8.4;Oct 30, 2001
90;Silent Hunter III;7.8;Mar 15, 2005
90;Sid Meier's Civilization V;7.8;Sep 21, 2010
90;Falcon 4.0: Allied Force;8.6;Jun 28, 2005
90;Deus Ex: Human Revolution;8.5;Aug 23, 2011
90;Dark Souls III;8.2;Apr 12, 2016
90;Flight Simulator 2002;8.4;Oct 19, 2001
90;Brothers: A Tale of Two Sons;8.5;Sep 3, 2013
90;Dota 2;6.2;Jul 9, 2013
90;Guild Wars 2;7.9;Aug 28, 2012
90;Freedom Force;8.0;Mar 24, 2002
90;GTR 2;8.7;Sep 29, 2006
90;Grand Theft Auto IV;6.5;Dec 2, 2008
90;Total War: Shogun 2;8.3;Mar 15, 2011
90;Empire: Total War;6.9;Mar 3, 2009
90;Command & Conquer: Red Alert;8.9;Oct 31, 1996
89;Star Wars Jedi Knight II: Jedi Outcast;8.6;Mar 26, 2002
89;The Walking Dead: A Telltale Games Series;8.7;Dec 11, 2012
89;Age of Mythology;8.9;Nov 1, 2002
89;Sacrifice;8.8;Nov 5, 2000
89;The Witcher 3: Wild Hunt - Hearts of Stone;8.4;Oct 13, 2015
89;Pillars of Eternity;8.3;Mar 26, 2015
89;The Elder Scrolls III: Morrowind;9.0;May 1, 2002
89;Rocksmith 2014 Edition;7.9;Oct 22, 2013
89;Fallout;8.9;Sep 30, 1997
89;World Soccer Winning Eleven 9;8.4;Apr 28, 2006
89;Worldwide Soccer Manager 2005;8.7;Dec 7, 2004
89;Left 4 Dead;9.2;Nov 18, 2008
89;Left 4 Dead 2;8.5;Nov 17, 2009
89;NASCAR Racing 2002 Season;5.8;Feb 14, 2002
89;Mass Effect;8.6;May 28, 2008
89;Combat Mission: Barbarossa to Berlin;8.3;Oct 29, 2002
89;Homeworld: Cataclysm;8.9;Sep 7, 2000
89;The Walking Dead: Episode 5 - No Time Left;8.9;Nov 21, 2012
89;Guild Wars;8.4;Apr 26, 2005
89;Borderlands 2;8.2;Sep 18, 2012
89;Max Payne;9.1;Jul 23, 2001
89;Out of the Park Baseball 15;7.2;Apr 21, 2014
89;World in Conflict;8.1;Sep 18, 2007
89;NASCAR Racing 4;8.2;Feb 6, 2001
89;Duke Nukem 3D;8.8;Jan 31, 1996
89;Far Cry;8.0;Mar 23, 2004
89;FIFA Soccer 12;7.1;Sep 27, 2011
89;XCOM: Enemy Unknown;8.2;Oct 9, 2012
89;Mass Effect 3;5.4;Mar 6, 2012
89;Rise of Nations;9.0;May 20, 2003
89;NASCAR Racing 2003 Season;8.6;Feb 14, 2003
89;Descent 3;8.3;Jun 14, 2000
89;The Curse of Monkey Island;9.1;Oct 31, 1997
89;Battlefield 3;7.5;Oct 25, 2011
89;Battlefield 1942;8.6;Sep 10, 2002
89;Madden NFL 2003;8.4;Aug 12, 2002
89;DiRT 2;8.3;Dec 10, 2009
89;Stardew Valley;8.5;Feb 26, 2016
89;Prince of Persia: The Sands of Time;8.6;Nov 30, 2003
89;Railroad Tycoon II;8.4;Oct 31, 1998
88;Microsoft Flight Simulator 2004: A Century of Flight;8.2;Jul 29, 2003
88;Medieval: Total War;8.8;Aug 19, 2002
88;Mafia;9.1;Aug 27, 2002
88;LIMBO;8.1;Aug 2, 2011
88;Nuclear Throne;7.4;Dec 5, 2015
88;Crusader Kings II: The Old Gods;8.8;May 28, 2013
88;Assassin's Creed: Brotherhood;8.2;Mar 22, 2011
88;Superbike 2001;6.5;Oct 9, 2000
88;F.E.A.R.;8.3;Oct 17, 2005
88;Kerbal Space Program;8.1;Apr 27, 2015
88;Tribes 2;8.5;Mar 28, 2001
88;Age of Empires II: The Conquerors Expansion;9.0;Aug 24, 2000
88;Tiger Woods PGA Tour 2004;8.8;Sep 22, 2003
88;Warcraft III: The Frozen Throne;9.0;Jul 1, 2003
88;Starcraft;9.1;Apr 1, 1998
88;Far Cry 3;8.2;Dec 4, 2012
88;XCOM 2;7.0;Feb 5, 2016
88;World Soccer Winning Eleven 8 International;8.5;Feb 16, 2005
88;Torchlight II;8.6;Sep 20, 2012
88;Myth II: Soulblighter;9.0;Nov 30, 1998
88;Return to Castle Wolfenstein;8.7;Nov 19, 2001
88;Shogo: Mobile Armor Division;8.9;Sep 30, 1998
88;Thirty Flights of Loving;5.0;Aug 20, 2012
88;Hearthstone: Heroes of Warcraft;6.3;Mar 11, 2014
88;Medieval II: Total War;8.9;Nov 13, 2006
88;F1 2002;7.6;Jun 13, 2002
88;The Stanley Parable;8.0;Oct 17, 2013
88;BioShock 2;8.0;Feb 9, 2010
88;Counter-Strike: Source;8.9;Sep 26, 2005
88;Starcraft II: Legacy of the Void;8.3;Nov 10, 2015
88;Diablo III;4.0;May 15, 2012
88;Rise of Nations: Thrones & Patriots;8.8;Apr 27, 2004
88;Sid Meier's Pirates!;8.3;Nov 22, 2004
88;EVE Online: Special Edition;7.8;Mar 10, 2009
88;Guacamelee! Gold Edition;7.3;Aug 8, 2013
88;Armadillo Run;8.2;Apr 22, 2006
88;Dark Age of Camelot;8.9;Sep 1, 2001
88;Baldur's Gate II: Throne of Bhaal;8.9;Jun 21, 2001
88;Counter-Strike;9.3;Nov 8, 2000
88;Tony Hawk's Pro Skater 4;8.4;Aug 27, 2003
88;Ori and the Blind Forest;8.7;Mar 11, 2015
88;Diablo II;8.8;Jun 29, 2000
88;The Witcher 2: Assassins of Kings;8.5;May 17, 2011
87;Plants vs. Zombies;8.9;Aug 18, 2009
87;Doom 3;7.5;Aug 3, 2004
87;Super Meat Boy;8.3;Apr 5, 2011
87;Football Manager 2010;9.1;Nov 3, 2009
87;Oddworld: Abe's Oddysee - New 'n' Tasty;7.8;Feb 25, 2015
87;Tom Clancy's Splinter Cell: Pandora Tomorrow;8.0;Mar 23, 2004
87;Europa Universalis II;8.8;Nov 12, 2001
87;Burnout Paradise: The Ultimate Box;7.5;Feb 5, 2009
87;Battlefield: Bad Company 2;8.3;Mar 2, 2010
87;GRID;7.9;Jun 3, 2008
87;Crypt of the NecroDancer;7.7;Apr 23, 2015
87;Sins of a Solar Empire;8.2;Feb 4, 2008
87;MechWarrior 4: Vengeance;8.2;Nov 23, 2000
87;Thief II: The Metal Age;9.1;Feb 29, 2000
87;Diablo II: Lord of Destruction;9.1;Jun 27, 2001
87;Monkey Island 2 Special Edition: LeChuck's Revenge;9.0;Jul 7, 2010
87;Half-Life 2: Episode One;8.6;Jun 1, 2006
87;The Swapper;8.7;May 30, 2013
87;Hitman 2: Silent Assassin;8.2;Oct 1, 2002
87;Year Walk;7.0;Mar 6, 2014
87;Max Payne 3;7.6;Jun 1, 2012
87;TowerFall Ascension;6.6;Mar 11, 2014
87;Battlefield 3: Armored Kill;7.0;Sep 11, 2012
87;NHL 2002;8.7;Sep 17, 2001
87;Icewind Dale;8.3;Jun 29, 2000
87;The Witness;6.6;Jan 26, 2016
87;Brothers in Arms: Road to Hill 30;7.1;Mar 15, 2005
87;Kohan: Immortal Sovereigns;8.6;Mar 14, 2001
87;Day of the Tentacle Remastered;7.9;Mar 21, 2016
87;Dead Space 2;8.3;Jan 25, 2011
87;Diablo III: Reaper of Souls;6.6;Mar 25, 2014
87;Shogun: Total War Warlord Edition;8.7;Aug 13, 2001
87;Serious Sam: The First Encounter;8.4;Mar 21, 2001
87;Grand Prix 3;8.3;Aug 24, 2000
87;Call of Duty: United Offensive;8.3;Sep 14, 2004
87;Divinity: Original Sin;8.7;Jan 17, 2014
87;Company of Heroes: Opposing Fronts;8.6;Sep 24, 2007
87;Psychonauts;8.9;Apr 19, 2005
87;Gears of War;7.8;Nov 6, 2007
87;Out of the Park Baseball 4;7.8;Feb 28, 2002
87;Europa Universalis IV;8.7;Aug 13, 2013
87;NHL 2004;8.2;Sep 22, 2003
87;Zeus: Master of Olympus;9.0;Oct 22, 2000
87;World of Warcraft: Warlords of Draenor;6.0;Nov 13, 2014
87;Warhammer 40,000: Dawn of War - Dark Crusade;8.9;Oct 9, 2006
87;Commandos 2: Men of Courage;8.8;Sep 20, 2001
86;Tales From The Borderlands: Episode 5 - The Vault of the Traveler;8.7;Oct 20, 2015
86;Bastion;8.6;Aug 16, 2011
86;Gone Home;5.4;Aug 15, 2013
86;Pac-Man Championship Edition DX +;7.3;Sep 24, 2013
86;Supreme Commander;8.3;Feb 20, 2007
86;Total War: Shogun 2 - Fall of the Samurai;8.4;Mar 23, 2012
86;Startopia;8.7;Jun 19, 2001
86;Enemy Engaged: RAH-66 Comanche Versus Ka-52 Hokum;8.3;Jul 31, 2000
86;Fallout 2;9.2;Sep 30, 1998
86;Final Fantasy XIV: Heavensward;7.7;Jun 23, 2015
86;Football Manager 2013;6.7;Nov 1, 2012
86;Out of the Park Baseball 14;8.6;Apr 15, 2013
86;The Witcher: Enhanced Edition;8.5;Sep 16, 2008
86;Borderlands: The Secret Armory of General Knoxx;7.6;Feb 25, 2010
86;Call of Duty 2;8.3;Oct 25, 2005
86;Astebreed;7.3;May 30, 2014
86;Ground Control;7.8;May 31, 2000
86;Rise of the Tomb Raider;8.0;Jan 28, 2016
86;Resident Evil 5;7.1;Sep 18, 2009
86;Saints Row IV;7.4;Aug 20, 2013
86;Black Mesa;9.0;Sep 14, 2012
86;EverQuest: Omens of War;7.7;Sep 13, 2004
86;Steel Beasts;8.4;Sep 24, 2000
86;Total Annihilation;8.9;Sep 30, 1997
86;Need for Speed: Hot Pursuit;6.7;Nov 16, 2010
86;FIFA Soccer 13;6.6;Sep 25, 2012
86;Sid Meier's Civilization IV: Beyond the Sword;8.6;Jul 23, 2007
86;The Sims 3;7.6;Jun 2, 2009
86;Freedom Force vs The 3rd Reich;7.7;Mar 8, 2005
86;The Binding of Isaac: Rebirth;8.3;Nov 4, 2014
86;Tribes: Ascend;7.7;Apr 12, 2012
86;Titanfall;6.1;Mar 11, 2014
86;Rayman Origins;8.4;Mar 29, 2012
86;Her Story;5.7;Jun 24, 2015
86;Starcraft II: Heart of the Swarm;7.9;Mar 12, 2013
86;Mass Effect 2: Lair of the Shadow Broker;8.5;Sep 7, 2010
86;LEGO Star Wars II: The Original Trilogy;8.3;Sep 12, 2006
86;Dungeon Siege;7.9;Mar 31, 2002
86;Crysis 2;6.7;Mar 22, 2011
86;Call of Duty: Modern Warfare 2;4.1;Nov 10, 2009
86;The Secret of Monkey Island: Special Edition;9.1;Jul 15, 2009
86;Max Payne 2: The Fall of Max Payne;9.0;Oct 14, 2003
86;Homeworld Remastered Collection;8.2;Feb 25, 2015
86;Galactic Civilizations II: Dread Lords;8.0;Feb 21, 2006
86;Tomb Raider;8.5;Mar 5, 2013
86;Star Trek: Voyager Elite Force;8.2;Sep 20, 2000
86;Worldwide Soccer Manager 2008;8.4;Oct 23, 2007
86;IL-2 Sturmovik: Forgotten Battles;8.6;Mar 2, 2003
86;Hyper Light Drifter;8.1;Mar 31, 2016
86;DiRT 3;6.9;May 24, 2011
86;Unreal Tournament 2003;8.1;Sep 30, 2002
86;Age of Wonders II: The Wizard's Throne;8.4;Jun 12, 2002
86;Links 2001;6.8;Oct 24, 2000
86;EverQuest: The Ruins of Kunark;8.8;Mar 31, 2000
86;Full Throttle;8.8;Apr 30, 1995
86;The Lord of the Rings Online: Shadows of Angmar;8.1;Apr 24, 2007
86;Pony Island;6.8;Jan 4, 2016
86;Warhammer 40,000: Dawn of War;8.8;Sep 20, 2004
86;Warhammer Online: Age of Reckoning;7.9;Sep 16, 2008
86;Dead Space;8.0;Oct 20, 2008
86;Bionic Commando Rearmed;7.0;Aug 13, 2008
86;Command & Conquer: Red Alert 2 - Yuri's Revenge;9.0;Oct 10, 2001
86;Europa Universalis;8.1;Feb 2, 2001
86;Escape from Monkey Island;8.2;Nov 8, 2000
86;IL-2 Sturmovik: 1946;8.8;Mar 13, 2007
86;XCOM: Enemy Within;7.9;Nov 12, 2013
86;Battlefield 3: Back to Karkand;7.2;Dec 13, 2011
86;Heroes of the Storm;6.7;Jun 2, 2015
86;Civilization III: Conquests;8.4;Nov 4, 2003
86;Path of Exile;8.0;Jan 25, 2013
86;Battlefield: Bad Company 2 Vietnam;8.1;Dec 18, 2010
86;Assassin's Creed II;6.8;Mar 9, 2010
86;The Elder Scrolls IV: Shivering Isles;8.4;Mar 26, 2007
86;DiRT Rally;8.8;Dec 7, 2015
86;Rocket League;8.1;Jul 7, 2015
86;Allegiance;8.2;Mar 31, 2000
85;The Talos Principle;8.5;Dec 11, 2014
85;Cities: Skylines;8.9;Mar 10, 2015
85;Falcon 4.0;8.0;Nov 30, 1998
85;Tom Clancy's Rainbow Six;8.6;Jul 31, 1998
85;Madden NFL 2005;6.4;Sep 14, 2004
85;Legend of Grimrock II;8.0;Oct 15, 2014
85;Sam & Max Episode 205: What's New, Beelzebub?;8.6;Apr 10, 2008
85;Dragon Age: Inquisition;5.8;Nov 18, 2014
85;Tales from the Borderlands: A Telltale Game Series;8.7;Apr 26, 2016
85;Tom Clancy's Rainbow Six: Vegas;7.7;Dec 12, 2006
85;City of Heroes;8.5;Apr 27, 2004
85;SWAT 4;8.6;Apr 5, 2005
85;Clive Barker's Undying;8.7;Feb 21, 2001
85;EverQuest;8.2;Mar 16, 1999
85;Warhammer 40,000: Dawn of War II;8.1;Feb 18, 2009
85;Command & Conquer 3: Tiberium Wars;8.0;Mar 26, 2007
85;Bit.Trip Presents...Runner2: Future Legend of Rhythm Alien;8.2;Feb 26, 2013
85;Hotline Miami;8.5;Oct 23, 2012
85;Out of the Park Baseball 13;8.2;Apr 9, 2012
85;Wizardry 8;8.6;Nov 14, 2001
85;Aliens Versus Predator 2;8.7;Oct 31, 2001
85;Operation Flashpoint: Cold War Crisis;9.0;Aug 30, 2001
85;Tropico;8.4;Apr 5, 2001
85;Giants: Citizen Kabuto;8.9;Dec 6, 2000
85;NASCAR SimRacing;4.9;Feb 15, 2005
85;The Lord of the Rings Online: Mines of Moria;8.3;Nov 17, 2008
85;The Binding of Isaac: Afterbirth;8.1;Oct 30, 2015
85;Amnesia: The Dark Descent;8.6;Feb 17, 2011
85;GTR FIA Racing;8.6;May 3, 2005
85;Football Manager 2011;8.4;Nov 23, 2010
85;Dust: An Elysian Tail;8.5;May 24, 2013
85;South Park: The Stick of Truth;8.6;Mar 4, 2014
85;Dark Souls: Prepare to Die Edition;7.4;Aug 24, 2012
85;Medieval II: Total War Kingdoms;8.8;Aug 28, 2007
85;Shovel Knight;7.9;Jun 26, 2014
85;DmC: Devil May Cry;6.7;Jan 24, 2013
85;Peggle Deluxe;8.1;Feb 19, 2008
85;Monopoly Tycoon;8.0;Sep 24, 2001
85;Indigo Prophecy;8.3;Oct 2, 2005
85;Prince of Persia: The Two Thrones;8.0;Dec 1, 2005
85;Sam & Max Episode 204: Chariots of the Dogs;8.1;Mar 13, 2008
85;Assetto Corsa;8.4;Dec 19, 2014
85;Machinarium;8.8;Oct 16, 2009
85;Frozen Synapse;7.7;May 26, 2011
85;Valkyria Chronicles;8.3;Nov 11, 2014
85;Freelancer;8.9;Mar 3, 2003
85;Zenzizenzic;5.9;Jul 23, 2015
85;The Wolf Among Us: Episode 1 - Faith;9.0;Oct 11, 2013
85;Mega Man Legacy Collection;7.3;Aug 25, 2015
85;Warhammer 40,000: Dawn of War II - Chaos Rising;8.7;Mar 11, 2010
85;Far Cry 2;5.8;Oct 21, 2008
85;The Walking Dead: Episode 3 - Long Road Ahead;8.4;Aug 29, 2012
85;AudioSurf;8.8;Feb 15, 2008
85;BattleBlock Theater;8.0;May 15, 2014
85;Star Wars: Knights of the Old Republic II - The Sith Lords;8.4;Feb 8, 2005
85;MVP Baseball 2005;8.1;Feb 22, 2005
85;The Elder Scrolls III: Bloodmoon;8.5;Jun 3, 2003
85;Rogue Legacy;7.9;Jun 27, 2013
85;Chaos Reborn;8.4;Oct 26, 2015
85;Thief: Deadly Shadows;8.4;May 25, 2004
85;Football Manager 2014;5.4;Oct 30, 2013
85;System Shock: Enhanced Edition;7.9;Sep 22, 2015
85;EverQuest: Gates of Discord;6.8;Feb 9, 2004
85;FIFA 2001 Major League Soccer;7.3;Oct 30, 2000
85;Sid Meier's Civilization V: Brave New World;8.6;Jul 9, 2013
85;Final Fantasy XI;7.5;Oct 28, 2003
85;Serious Sam: The Second Encounter;8.5;Feb 4, 2002
85;The Sims: Hot Date;7.9;Nov 12, 2001
85;American McGee's Alice;8.2;Dec 6, 2000
85;Trials Evolution: Gold Edition;6.7;Mar 21, 2013
85;Warhammer 40,000: Dawn of War - Winter Assault;8.3;Sep 21, 2005
85;Tony Hawk's Underground 2;7.9;Oct 4, 2004
85;Papers, Please;8.5;Aug 8, 2013
85;Star Wars: The Old Republic;5.9;Dec 20, 2011
85;Anarchy Online: Shadowlands;8.7;Sep 8, 2003
85;Dark Age of Camelot: Shrouded Isles;8.8;Dec 2, 2002
85;Obsidian;8.3;Dec 31, 1996
84;The Walking Dead: Episode 2 - Starved for Help;8.6;Jun 29, 2012
84;Saints Row: The Third;8.1;Nov 15, 2011
84;Fallout: New Vegas;8.5;Oct 19, 2010
84;The Movies;8.3;Nov 8, 2005
84;Neverwinter Nights: Hordes of the Underdark;8.6;Dec 2, 2003
84;Command & Conquer: Generals;8.3;Feb 10, 2003
84;Sid Meier's SimGolf;8.2;Jan 23, 2002
84;Middle-earth: Shadow of Mordor;8.0;Sep 30, 2014
84;SpaceChem;8.4;Mar 2, 2011
84;Downwell;6.2;Oct 15, 2015
84;Pinball FX 2;8.0;Oct 27, 2012
84;Devil Daggers;6.7;Feb 18, 2016
84;PlanetSide 2;7.0;Nov 20, 2012
84;Enter the Gungeon;7.4;Apr 5, 2016
84;GT Legends;8.6;Jan 23, 2006
84;Hearthstone: Goblins Vs. Gnomes;6.6;Dec 8, 2014
84;Space Rangers 2: Rise of the Dominators;9.0;Mar 27, 2006
84;Tales From The Borderlands: Episode 1 - Zer0 Sum;8.4;Nov 25, 2014
84;Puzzle Quest: Challenge of the Warlords;8.3;Oct 10, 2007
84;Heroes of Might and Magic IV;7.6;Mar 29, 2002
84;Command & Conquer: Red Alert 2;8.9;Oct 21, 2000
84;Shogun: Total War;8.7;Jun 13, 2000
84;DiRT;7.2;Jun 19, 2007
84;Darkest Dungeon;8.0;Jan 19, 2016
84;Super Street Fighter IV: Arcade Edition;7.8;Jul 13, 2011
84;Football Manager 2012;8.0;Oct 20, 2011
84;Guild Wars Factions;8.5;Apr 28, 2006
84;80 Days (2015);6.1;Sep 29, 2015
84;Spore;5.2;Sep 7, 2008
84;Unity of Command;7.2;Nov 15, 2011
84;Hearthstone: The Grand Tournament;4.0;Aug 24, 2015
84;Metro Redux;8.0;Aug 26, 2014
84;Time Gentlemen, Please!;7.6;Jul 2, 2009
84;Europa Universalis IV: Wealth of Nations;8.4;May 29, 2014
84;Mass Effect 3: Citadel;7.8;Mar 5, 2013
84;Disciples II: Dark Prophecy;8.6;Jan 22, 2002
84;Just Cause 2;7.7;Mar 23, 2010
84;Crysis Warhead;7.9;Sep 16, 2008
84;Assassin's Creed IV: Black Flag;7.7;Nov 19, 2013
84;Age of Mythology: The Titans;8.7;Sep 30, 2003
84;SimCity 4;8.7;Jan 12, 2003
84;Microsoft Train Simulator;8.4;May 31, 2001
84;Rise of Nations: Rise of Legends;8.5;May 9, 2006
84;TOCA Race Driver 3;7.8;Feb 24, 2006
84;FTL: Faster Than Light;8.4;Sep 14, 2012
84;SOMA;8.2;Sep 22, 2015
84;DEFCON: Everybody Dies;8.3;Mar 26, 2007
84;Tron 2.0;8.3;Aug 26, 2003
84;Brothers in Arms: Earned in Blood;7.3;Oct 6, 2005
84;Grim Fandango Remastered;8.0;Jan 27, 2015
84;The Lord of the Rings: The Battle for Middle-Earth II;7.5;Mar 2, 2006
84;Battlefield Vietnam;7.4;Mar 16, 2004
84;Medieval: Total War - Viking Invasion;8.8;May 7, 2003
84;Fallout 4;5.4;Nov 10, 2015
84;Guild Wars Nightfall;8.7;Oct 26, 2006
84;The Binding of Isaac;8.3;Sep 28, 2011
84;Enemy Territory: Quake Wars;8.3;Oct 2, 2007
84;Trine 2;8.4;Dec 7, 2011
84;Rift;7.3;Mar 1, 2011
84;The Wolf Among Us: Episode 5 - Cry Wolf;8.8;Jul 8, 2014
84;Shift 2: Unleashed;6.1;Mar 29, 2011
84;Sid Meier's Civilization IV: Warlords;8.2;Jul 24, 2006
84;Battlefield 1942: The Road to Rome;7.9;Feb 2, 2003
84;Poseidon;8.4;Jun 25, 2001
84;F1 2010;6.6;Sep 22, 2010
84;Shatter;7.4;Mar 15, 2010
84;Darwinia;7.9;Jun 12, 2006
84;Ultimate General: Gettysburg;8.0;Oct 16, 2014
83;Final Fantasy XI: Treasures of Aht Urhgan;7.6;Apr 18, 2006
83;MDK2;8.4;May 31, 2000
83;Gunpoint;8.4;Jun 3, 2013
83;Beyond Good & Evil;8.7;Nov 19, 2003
83;Anno 2070;7.0;Nov 17, 2011
83;SMITE;8.3;Mar 25, 2014
83;Halo: Combat Evolved;7.4;Sep 30, 2003
83;Grim Dawn;8.9;Feb 25, 2016
83;Silent Storm;8.9;Jan 20, 2004
83;Command & Conquer: Generals - Zero Hour;9.0;Sep 22, 2003
83;Homeworld 2;8.3;Sep 16, 2003
83;Galactic Civilizations;8.1;Mar 26, 2003
83;EverQuest: The Shadows of Luclin;7.2;Dec 2, 2001
83;Orcs Must Die!;8.1;Oct 11, 2011
83;Life is Strange;8.6;Jan 19, 2016
83;Fable: The Lost Chapters;8.7;Sep 20, 2005
83;Unreal Tournament III;8.0;Nov 19, 2007
83;The Blackwell Epiphany;7.6;Apr 24, 2014
83;The Lord of the Rings Online: Siege of Mirkwood;7.1;Dec 1, 2009
83;Out of the Park Baseball 10;8.3;Jun 2, 2009
83;Tomb Raider: Anniversary;8.0;Jun 5, 2007
83;Need for Speed: Shift;5.7;Sep 15, 2009
83;Hearts of Iron II;8.6;Jan 4, 2005
83;FIFA Soccer 11;7.6;Sep 28, 2010
83;Project CARS;7.0;May 6, 2015
83;FIFA Soccer 2003;6.8;Nov 2, 2002
83;Icewind Dale II;8.3;Aug 26, 2002
83;Age of Empires;8.8;Sep 30, 1997
83;EverQuest II: Echoes of Faydwer;8.4;Nov 13, 2006
83;EverQuest II;7.3;Nov 8, 2004
83;Terraria;8.5;May 16, 2011
83;Final Fantasy XIV Online: A Realm Reborn;6.7;Aug 27, 2013
83;Card Hunter (2013);7.9;Sep 12, 2013
83;Sam & Max: The Devil's Playhouse - Episode 2: The Tomb of Sammun-Mak;7.9;May 18, 2010
83;This War of Mine;8.4;Nov 14, 2014
83;Darksiders;7.7;Sep 23, 2010
83;Tom Clancy's Rainbow Six 3: Raven Shield;8.9;Mar 19, 2003
83;World of Outlaws: Sprint Cars;7.9;Feb 11, 2003
83;Colin McRae Rally 2.0;8.4;Feb 14, 2001
83;Combat Flight Simulator 2: WWII Pacific Theater;8.1;Oct 13, 2000
83;Orcs Must Die! 2;7.9;Jul 30, 2012
83;Prey;7.9;Jul 11, 2006
83;Metal Gear Rising: Revengeance;7.9;Jan 9, 2014
83;Starseed Pilgrim;6.3;Apr 16, 2013
83;Age of Conan: Rise of the Godslayer;8.4;May 11, 2010
83;Alan Wake;8.0;Feb 16, 2012
83;Tiger Woods PGA Tour 2002;5.0;Feb 24, 2002
83;Monaco: What's Yours Is Mine;7.7;Apr 24, 2013
83;Transistor;8.3;May 20, 2014
83;Helldivers;6.9;Dec 7, 2015
83;Worldwide Soccer Manager 2009;8.1;Nov 18, 2008
83;Call of Duty: World at War;7.5;Nov 10, 2008
83;Torchlight;8.0;Jan 5, 2010
83;Prison Architect;8.3;Oct 6, 2015
83;Valdis Story: Abyssal City;8.1;Oct 30, 2013
83;Crimson Skies;8.2;Sep 17, 2000
83;RACE 07: Official WTCC Game;9.0;Oct 9, 2007
83;SUPERHOT;7.6;Feb 25, 2016
83;EverQuest II: Rise of Kunark;7.9;Nov 13, 2007
83;Dark Age of Camelot: Catacombs;8.6;Dec 7, 2004
83;Spore Creature Creator;8.1;Jun 17, 2008
83;Colin McRae Rally 2005;7.0;Oct 28, 2004
83;Tom Clancy's Splinter Cell: Conviction;5.2;Apr 27, 2010
83;Tribes: Vengeance;7.6;Oct 12, 2004
83;L.A. Noire: The Complete Edition;7.9;Nov 8, 2011
83;GTR Evolution;8.2;Sep 2, 2008
83;Life is Strange: Episode 5 - Polarized;8.4;Oct 20, 2015
83;BROFORCE;8.0;Oct 15, 2015
83;Independence War 2: Edge of Chaos;8.4;Aug 22, 2001
83;Myst III: Exile;8.2;May 8, 2001
83;Superbrothers: Sword & Sworcery EP;6.4;Apr 16, 2012
83;Sid Meier's Civilization IV: Colonization;6.7;Sep 22, 2008
83;Europa Universalis III;8.4;Jan 23, 2007
83;F1 2011;7.2;Sep 20, 2011
83;Prince of Persia: Warrior Within;8.4;Nov 30, 2004
83;Danganronpa: Trigger Happy Havoc;7.6;Feb 18, 2016
83;Counter-Strike: Global Offensive;7.8;Aug 21, 2012
83;Outland;7.1;Sep 29, 2014
83;MechWarrior 4: Mercenaries;8.6;Nov 7, 2002
83;Metal Gear Solid;9.0;Sep 24, 2000
82;Invisible, Inc.;8.0;May 12, 2015
82;Dark Souls II: Crown of the Ivory King;7.8;Sep 29, 2014
82;Red Faction: Guerrilla;7.5;Sep 15, 2009
82;The Book of Unwritten Tales;8.2;Oct 28, 2011
82;Capitalism II;9.0;Dec 16, 2001
82;Rally Trophy;8.5;Nov 20, 2001
82;Dawn of Discovery;8.8;Jun 17, 2009
82;City of Villains;8.1;Oct 31, 2005
82;Kentucky Route Zero - Act II;8.0;May 31, 2013
82;Tom Clancy's Splinter Cell: Blacklist;7.4;Aug 20, 2013
82;Act of War: Direct Action;8.5;Mar 15, 2005
82;Sokobond;7.8;Aug 27, 2013
82;Sam & Max Episode 105: Reality 2.0;8.4;Mar 29, 2007
82;Bejeweled 3;8.0;Dec 7, 2010
82;Dangerous Waters;8.8;Feb 22, 2005
82;Tomb Raider: Legend;7.8;Apr 11, 2006
82;Asheron's Call 2: Fallen Kings;8.8;Nov 20, 2002
82;Gemini Rue;8.4;Feb 24, 2011
82;Antichamber;8.2;Jan 31, 2013
82;Neverwinter Nights 2;6.5;Oct 31, 2006
82;Dragon Age: Origins - Awakening;7.7;Mar 16, 2010
82;Door Kickers;8.2;Oct 20, 2014
82;Hearthstone: Blackrock Mountain;6.4;Apr 2, 2015
82;Rome: Total War Barbarian Invasion;8.4;Sep 27, 2005
82;Hacknet;7.3;Aug 12, 2015
82;Tales of Monkey Island Chapter 3: Lair of the Leviathan;7.8;Sep 29, 2009
82;Neverwinter Nights 2: Mask of The Betrayer;8.8;Oct 9, 2007
82;Sins of a Solar Empire: Rebellion;7.8;Jun 12, 2012
82;Broken Sword: The Sleeping Dragon;7.6;Nov 17, 2003
82;Age of Wonders: Shadow Magic;8.5;Jul 25, 2003
82;Tom Clancy's Ghost Recon: Desert Siege;8.4;Mar 27, 2002
82;Warlords Battlecry II;8.5;Mar 11, 2002
82;Football Manager Live;2.9;Jan 23, 2009
82;Marvel: Ultimate Alliance;8.3;Oct 24, 2006
82;The Talos Principle: Road To Gehenna;7.6;Jul 23, 2015
82;Lara Croft and the Guardian of Light;8.2;Sep 28, 2010
82;Aquaria;8.3;Dec 7, 2007
82;Need for Speed: Underground;8.3;Nov 17, 2003
82;TrackMania Sunrise;8.5;May 6, 2005
82;King's Quest Chapter 1: A Knight to Remember;7.2;Jul 28, 2015
82;Dragon Age II;4.4;Mar 8, 2011
82;Endless Legend;7.9;Apr 24, 2014
82;Tom Clancy's Ghost Recon: Island Thunder;8.3;Sep 25, 2002
82;S.T.A.L.K.E.R.: Shadow of Chernobyl;8.4;Mar 20, 2007
82;Kero Blaster;6.9;May 11, 2014
82;Monday Night Combat;7.3;Jan 24, 2011
82;The Wolf Among Us: Episode 3 - A Crooked Mile;8.6;Apr 8, 2014
82;Airborne Assault: Red Devils Over Arnhem;7.4;Jun 17, 2002
82;Fallout Tactics: Brotherhood of Steel;7.9;Mar 14, 2001
82;Need for Speed: Underground 2;8.5;Nov 9, 2004
82;NHL Eastside Hockey Manager 2005;6.6;Oct 5, 2005
82;Legend of Grimrock;8.1;Apr 11, 2012
82;Dominions 3: The Awakening;8.1;Sep 29, 2006
82;Bulletstorm;7.7;Feb 22, 2011
82;Borderlands 2: Mr. Torgue's Campaign of Carnage;7.3;Nov 20, 2012
82;Desktop Dungeons;8.2;Oct 17, 2010
82;Fallout: New Vegas - Old World Blues;7.8;Jul 19, 2011
82;Crusader Kings II;8.7;Feb 14, 2012
82;MVP Baseball 2004;7.9;Mar 9, 2004
82;Europa 1400: The Guild;8.6;Nov 18, 2002
82;Battle Realms;8.6;Nov 7, 2001
82;Warlords Battlecry;8.2;Jul 9, 2000
82;Sam & Max Episode 201: Ice Station Santa;8.6;Nov 8, 2007
82;Technobabylon;7.8;May 21, 2015
82;World of Warcraft: Mists of Pandaria;4.8;Sep 25, 2012
82;FIFA 15;4.2;Sep 23, 2014
82;Recettear: An Item Shop's Tale;8.6;Sep 10, 2010
82;ETHER One;6.9;Mar 25, 2014
82;The Vanishing of Ethan Carter;8.1;Sep 25, 2014
82;Flight Simulator X: Acceleration;7.3;Oct 23, 2007
82;Blood;9.0;May 31, 1997
82;Command & Conquer: Red Alert 3;6.8;Oct 28, 2008
82;The Walking Dead: Episode 1 - A New Day;8.4;Apr 24, 2012
82;Links 2003;6.8;Sep 16, 2002
82;Earth & Beyond;7.1;Sep 2, 2002
82;Syberia;8.5;Sep 1, 2002
82;Virtual Pool 3;7.3;Nov 14, 2000
82;The Sims: Livin' Large;6.6;Aug 27, 2000
82;DCS: Black Shark;8.5;Apr 13, 2009
82;King's Bounty: Armored Princess;8.7;Sep 10, 2010
82;Age of Wonders III - Golden Realms;8.5;Sep 18, 2014
82;Strong Bad's Cool Game for Attractive People Episode 5: 8-Bit Is Enough;7.5;Dec 15, 2008
82;Prince of Persia;7.2;Dec 2, 2008
82;Joint Operations: Typhoon Rising;8.7;Jun 15, 2004
82;Xpand Rally;7.4;Apr 20, 2006
82;Dark Souls II: Crown of the Sunken King;7.3;Jul 22, 2014
82;Resident Evil HD Remaster;8.2;Jan 20, 2015
82;Celtic Kings: Rage of War;8.5;Aug 21, 2002
82;B-17 Flying Fortress: The Mighty 8th;7.3;Dec 13, 2000
82;EverQuest: The Scars of Velious;7.8;Dec 4, 2000
82;Metro: Last Light;8.6;May 14, 2013
82;Rising Storm;8.5;May 30, 2013
82;Lethal League;7.4;Aug 27, 2014
82;Botanicula;8.3;Apr 19, 2012
82;Pro Evolution Soccer 2015;5.8;Nov 13, 2014
82;Bookworm Adventures Deluxe;7.9;Dec 20, 2006
82;The Lord of the Rings: The Battle for Middle-Earth;8.6;Dec 6, 2004
82;Hitman: Blood Money;8.8;May 30, 2006
82;Need for Speed: Most Wanted;8.5;Nov 15, 2005
82;OlliOlli2: Welcome to Olliwood;5.2;Aug 11, 2015
82;WildStar;7.4;Jun 3, 2014
82;Broken Age: Act 1;7.7;Jan 28, 2014
82;Divinity II: The Dragon Knight Saga;8.2;Nov 5, 2010
82;Out of the Park Baseball 9;7.4;Jun 1, 2008
82;The Simpsons: Hit & Run;8.0;Nov 13, 2003
82;America's Army;6.1;Aug 28, 2002
82;Star Trek Bridge Commander;8.1;Feb 27, 2002
82;The Last Express;8.9;Mar 31, 1997
81;Quake 4;7.5;Oct 11, 2005
81;Nidhogg;7.0;Jan 13, 2014
81;Battlefield 4;6.0;Oct 29, 2013
81;To the Moon;8.9;Sep 7, 2012
81;The Sims 3: World Adventures;8.0;Nov 16, 2009
81;Painkiller;8.0;Apr 12, 2004
81;Airborne Assault: Highway to the Reich;6.1;Dec 10, 2003
81;Nancy Drew: Danger on Deception Island;7.7;Oct 1, 2003
81;Shadowrun: Hong Kong;7.7;Aug 20, 2015
81;Supreme Commander: Forged Alliance;8.9;Nov 6, 2007
81;Sunless Sea;7.4;Jul 1, 2014
81;The Walking Dead: Season Two Episode 3 - In Harm's Way;8.3;May 13, 2014
81;Marvel Heroes 2015;7.9;Jun 4, 2014
81;Football Manager 2016;6.4;Nov 13, 2015
81;VVVVVV;8.1;Jan 11, 2010
81;Darksiders II;7.9;Aug 14, 2012
81;Wolfenstein: The New Order;8.2;May 20, 2014
81;Lone Survivor;7.2;Apr 23, 2012
81;Alien: Isolation;8.4;Oct 6, 2014
81;The Witcher;8.8;Oct 30, 2007
81;Kentucky Route Zero - Act I;7.5;Jan 7, 2013
81;Jade Empire: Special Edition;8.3;Feb 26, 2007
81;SWAT 3: Elite Edition;8.4;Oct 6, 2000
81;Asheron's Call;8.8;Oct 31, 1999
81;Unravel;8.1;Feb 9, 2016
81;Midnight Club II;8.0;Jun 30, 2003
81;Chessmaster 10th Edition;7.4;Aug 12, 2004
81;Age of Empires III;7.7;Oct 18, 2005
81;Tales of Monkey Island Chapter 5: Rise of the Pirate God;8.4;Dec 8, 2009
81;Castlevania: Lords of Shadow Ultimate Edition;7.3;Aug 27, 2013
81;Strong Bad's Cool Game for Attractive People Episode 2: Strong Badia the Free;8.2;Sep 15, 2008
81;The Cat Lady;8.7;Dec 4, 2013
81;Vessel;7.9;Mar 1, 2012
81;Metro 2033;8.1;Mar 16, 2010
81;OutRun 2006: Coast 2 Coast;7.8;Jun 27, 2006
81;Blur;7.3;May 25, 2010
81;Empires: Dawn of the Modern World;8.2;Oct 21, 2003
81;Chessmaster 9000;7.7;Aug 31, 2002
81;Gothic;8.6;Nov 23, 2001
81;Arcanum: Of Steamworks and Magick Obscura;8.9;Aug 22, 2001
81;NASCAR Heat;8.6;Sep 27, 2000
81;Company of Heroes 2: Ardennes Assault;6.1;Nov 17, 2014
81;PlanetSide;7.3;May 20, 2003
81;Tales From The Borderlands: Episode 3 - Catch A Ride;8.4;Jun 23, 2015
81;The Walking Dead: Season Two Episode 2 - A House Divided;8.6;Mar 4, 2014
81;Kingdoms of Amalur: Reckoning;6.6;Feb 7, 2012
81;Sam & Max: The Devil's Playhouse - Episode 1: The Penal Zone;8.5;Apr 15, 2010
81;Borderlands;7.8;Oct 26, 2009
81;DG2: Defense Grid 2;6.7;Sep 23, 2014
81;Napoleon: Total War;7.9;Feb 23, 2010
81;Overlord;8.1;Jun 26, 2007
81;Firewatch;7.2;Feb 9, 2016
81;Victoria II: Heart of Darkness;8.7;Apr 16, 2013
81;Waveform;7.6;Jan 25, 2013
81;The Elder Scrolls IV: Knights of the Nine;7.5;Nov 21, 2006
81;Red Orchestra: Ostfront 41-45;8.6;Mar 14, 2006
81;Stronghold;8.9;Oct 21, 2001
81;Strong Bad's Cool Game for Attractive People Episode 4: Dangeresque 3: The Criminal Projective;8.5;Nov 17, 2008
81;Rochard;8.0;Nov 15, 2011
81;Fallout 3: Broken Steel;7.3;May 5, 2009
81;Tiger Woods PGA Tour 06;8.1;Sep 20, 2005
81;RollerCoaster Tycoon 3;4.9;Oct 26, 2004
81;Dragon's Dogma: Dark Arisen;8.3;Jan 15, 2016
81;Guild Wars 2: Heart of Thorns;7.3;Oct 23, 2015
81;AaaaaAAaaaAAAaaAAAAaAAAAA!!! - A Reckless Disregard for Gravity;7.2;Sep 3, 2009
81;The Sims 2 University;7.8;Feb 28, 2005
81;Far Cry 3: Blood Dragon;8.1;May 1, 2013
81;Sid Meier's Civilization: Beyond Earth;5.5;Oct 24, 2014
81;Disney's Toontown Online;8.7;Oct 6, 2005
81;Combat Mission 3: Afrika Korps;8.4;Dec 3, 2003
81;EverQuest: The Planes of Power;8.2;Oct 28, 2002
81;Rails Across America;8.0;Sep 18, 2001
81;Wasteland 2;7.3;Sep 19, 2014
81;Jamestown: Legend of the Lost Colony;7.5;Jun 8, 2011
81;Call of Duty: Black Ops;5.1;Nov 9, 2010
81;Kohan II: Kings of War;7.9;Sep 20, 2004
81;The Age of Decadence;7.9;Oct 15, 2015
81;Samorost 3;8.3;Mar 24, 2016
81;Order of Battle: Pacific;6.4;Apr 30, 2015
81;Empire Earth;8.3;Nov 12, 2001
81;Star Trek: Deep Space Nine: The Fallen;7.9;Nov 15, 2000
81;Sam & Max Episode 101: Culture Shock;8.7;Oct 18, 2006
81;Mirror's Edge (2008);8.1;Jan 12, 2009
81;TrackMania 2 Canyon;7.7;Sep 14, 2011
81;Sleeping Dogs;8.2;Aug 14, 2012
81;Star Wars Jedi Knight: Jedi Academy;8.6;Sep 17, 2003
81;Mortal Kombat Komplete Edition;8.7;Aug 6, 2013
81;Shadowrun: Dragonfall;8.3;Feb 27, 2014
81;Eets;6.4;Mar 29, 2006
81;World of Warships;6.6;Sep 17, 2015
81;TOCA Race Driver 2: The Ultimate Racing Simulator;8.0;Apr 15, 2004
81;Wargame: European Escalation;8.2;Feb 22, 2012
81;Dungeon Defenders;7.3;Oct 18, 2011
81;Sam & Max: The Devil's Playhouse - Episode 5: The City That Dares Not Sleep;7.9;Aug 30, 2010
81;Age of Empires III: The Asian Dynasties;8.5;Oct 23, 2007
81;Defense Grid: The Awakening;8.8;Jul 29, 2009
81;Codename: Panzers, Phase One;8.8;Sep 30, 2004
81;FIFA 16;4.4;Sep 22, 2015
81;Europa Universalis IV: Conquest of Paradise;7.7;Jan 14, 2014
81;Ghost Master;8.0;Aug 26, 2003
81;Divine Divinity;8.5;Sep 22, 2002
80;The Book of Unwritten Tales 2;7.7;Feb 20, 2015
80;Galactic Civilizations III;6.6;May 14, 2015
80;Lovers in a Dangerous Spacetime;7.2;Sep 9, 2015
80;Age of Conan: Hyborian Adventures;7.3;May 20, 2008
80;Company of Heroes 2: The Western Front Armies;6.8;Jun 23, 2014
80;Sid Meier's Civilization V: Gods & Kings;7.7;Jun 19, 2012
80;Age of Empires III: The WarChiefs;8.1;Oct 17, 2006
80;Metal Gear Solid V: Ground Zeroes;7.7;Dec 18, 2014
80;Trials Fusion;6.8;Apr 16, 2014
80;Syberia II;8.3;Mar 30, 2004
80;Tom Clancy's Ghost Recon;8.4;Nov 13, 2001
80;Conquest: Frontier Wars;8.3;Aug 14, 2001
80;Gabriel Knight 3: Blood of the Sacred, Blood of the Damned;8.8;Oct 5, 1999
80;Westerado: Double Barreled;7.4;Apr 16, 2015
80;Anomaly: Warzone Earth;7.3;Apr 8, 2011
80;Volume;7.2;Aug 18, 2015
80;GRID 2;5.7;May 27, 2013
80;The Banner Saga;7.9;Jan 14, 2014
80;Sam & Max Episode 202: Moai Better Blues;7.7;Jan 10, 2008
80;Age of Wonders III - Eternal Lords;8.4;Apr 14, 2015
80;Pro Evolution Soccer 2013;6.8;Sep 25, 2012
80;Osmos;7.5;Aug 18, 2009
80;Dungeon Siege II;7.9;Aug 16, 2005
80;Dead Island;6.8;Sep 6, 2011
80;Sam & Max Episode 104: Abe Lincoln Must Die!;7.8;Feb 22, 2007
80;Deus Ex: Invisible War;6.3;Dec 2, 2003
80;The Sims: Makin' Magic;8.6;Oct 28, 2003
80;Tom Clancy's Splinter Cell: Double Agent;5.7;Nov 7, 2006
80;Medal of Honor: Pacific Assault;7.4;Nov 4, 2004
80;Assassin's Creed: Revelations;7.4;Nov 29, 2011
80;Grandia II Anniversary Edition;7.6;Aug 24, 2015
80;Assassin's Creed III;6.2;Nov 20, 2012
80;Madden NFL 07;7.3;Aug 22, 2006
80;Outlast;8.4;Sep 4, 2013
80;The Chronicles of Riddick: Assault on Dark Athena;8.0;Apr 7, 2009
80;Hearts of Iron II: Doomsday;8.8;Apr 7, 2006
80;Dishonored: The Brigmore Witches;8.5;Aug 13, 2013
80;Codename: Panzers, Phase Two;8.0;Jul 25, 2005
80;Full Spectrum Warrior;7.0;Sep 21, 2004
80;AI War: Fleet Command;8.4;May 14, 2009
80;Freedom Fighters;8.3;Oct 1, 2003
80;NBA Live 2003;8.3;Nov 14, 2002
80;The Elder Scrolls III: Tribunal;8.2;Nov 6, 2002
80;Elite: Dangerous;6.4;Dec 16, 2014
80;Pure;6.9;Sep 16, 2008
80;Goodbye Deponia;8.1;Oct 17, 2013
80;SWAT 4: The Stetchkov Syndicate;8.3;Feb 28, 2006
80;Dropsy;7.3;Sep 10, 2015
80;Company of Heroes 2: The British Forces;5.9;Sep 3, 2015
80;Ground Control II: Operation Exodus;8.8;Jun 23, 2004
80;NBA Live 2004;9.0;Nov 11, 2003
80;Brutal Legend;7.8;Feb 26, 2013
80;Tomb Raider: Underworld;7.6;Nov 18, 2008
80;Oxenfree;7.7;Jan 15, 2016
80;Titan Quest: Immortal Throne;8.7;Mar 5, 2007
80;La-Mulana (Remake);7.1;Jul 13, 2012
80;X-Men Legends II: Rise of Apocalypse;8.4;Sep 20, 2005
80;SpellForce 2: Shadow Wars;7.6;May 5, 2006
80;Fritz 8 Deluxe;7.8;Dec 1, 2004
80;Trine;8.2;Sep 11, 2009
80;Dishonored: The Knife of Dunwall;8.1;Apr 16, 2013
80;Company of Heroes 2;2.0;Jun 25, 2013
80;Natural Selection 2;8.4;Oct 30, 2012
80;Read Only Memories;7.2;Oct 5, 2015
80;The Sims 3: Into the Future;5.4;Oct 22, 2013
80;Borderlands 2: Captain Scarlett and Her Pirate's Booty;7.4;Oct 16, 2012
80;FATE;8.3;Sep 19, 2006
80;2002 FIFA World Cup;7.9;Apr 30, 2002
80;Asheron's Call Dark Majesty;8.1;Nov 4, 2001
80;The Bug Butcher;8.2;Jan 19, 2016
80;Dragonshard;7.4;Oct 2, 2005
80;Icewind Dale: Enhanced Edition;7.6;Oct 30, 2014
80;The Magic Circle;7.3;Jul 9, 2015
80;Far Cry 4;6.6;Nov 18, 2014
80;Super Time Force Ultra;6.6;Aug 25, 2014
80;Day of Defeat: Source;9.1;Feb 7, 2006
80;Battlefield 2142;6.8;Oct 17, 2006
80;World of Tanks;3.8;Sep 6, 2011
80;Vampire: The Masquerade - Bloodlines;9.0;Nov 16, 2004
80;Dark Souls II: Scholar of the First Sin;7.4;Apr 1, 2015
80;Warhammer 40,000: Dawn of War II - Retribution;7.8;Mar 1, 2011
80;Panzer Corps;7.5;Jul 11, 2011
80;Men of War;8.1;Mar 16, 2009
80;Fallen Enchantress: Legendary Heroes;7.7;May 22, 2013
80;The Walking Dead: Episode 4 - Around Every Corner;8.5;Oct 10, 2012
80;Tales of Monkey Island Chapter 4: The Trial and Execution of Guybrush Threepwood;8.4;Oct 30, 2009
80;Penny Arcade Adventures: Episode Two;7.7;Nov 7, 2008
80;Time Commando;8.9;Jul 31, 1996
80;Sins of a Solar Empire: Entrenchment;8.1;Feb 25, 2009
80;F1 2012;6.9;Sep 18, 2012
80;Luftrausers;6.8;Mar 18, 2014
80;Naruto Shippuden: Ultimate Ninja Storm 3 Full Burst;7.9;Oct 24, 2013
80;Stealth Bastard Deluxe;8.3;Nov 28, 2012
80;Tom Clancy's Ghost Recon Advanced Warfighter;7.7;May 3, 2006
80;LEGO Batman: The Videogame;7.9;Sep 23, 2008
80;Stacking;7.9;Mar 6, 2012
80;Age of Wonders III;7.8;Mar 31, 2014
80;Life is Strange: Episode 3 - Chaos Theory;9.0;May 19, 2015
80;The Legend of Heroes: Trails in the Sky SC;8.4;Oct 29, 2015
80;Proteus;5.6;Jan 30, 2013
80;Robin Hood: The Legend of Sherwood;8.3;Nov 14, 2002
80;Soldier of Fortune II: Double Helix;7.3;May 20, 2002
80;RollerCoaster Tycoon: Loopy Landscapes;9.0;Sep 30, 2000
80;Toki Tori;7.9;Jan 28, 2010
80;RoboBlitz;8.3;Nov 7, 2006
80;Wargame: AirLand Battle;8.1;May 29, 2013
80;Football Manager 2015;6.0;Nov 7, 2014
80;The Suffering;8.2;Jun 8, 2004
80;Gish;7.2;Sep 17, 2004
80;Axiom Verge;8.2;May 14, 2015
80;Driver: San Francisco;7.0;Sep 27, 2011
80;The Corporate Machine;7.5;Jul 14, 2001
80;Dungeons & Dragons: Chronicles of Mystara;6.7;Jun 18, 2013
80;Disciples II: Rise of the Elves;8.1;Nov 25, 2003
80;MechCommander 2;8.3;Jul 18, 2001
80;Waterloo: Napoleon's Last Battle;7.5;Mar 25, 2001
80;Chessmaster 8000;6.4;Nov 14, 2000
80;Circle of Blood;8.6;Sep 30, 1996
80;BioShock Infinite: Burial at Sea - Episode Two;8.5;Mar 25, 2014
80;S.T.A.L.K.E.R.: Call of Pripyat;8.7;Feb 2, 2010
80;The Walking Dead: Season Two - A Telltale Games Series;8.3;Dec 17, 2013
80;FLY'N;8.2;Nov 9, 2012
80;Total War: Attila;7.3;Feb 17, 2015
80;The Wolf Among Us;8.8;Oct 11, 2013
80;Nancy Drew: Secret of the Old Clock;8.1;Jul 26, 2005
80;ArcheAge;3.6;Sep 16, 2014
80;CAPSIZED;7.1;Apr 29, 2011
80;Microsoft Flight Simulator X;7.6;Oct 17, 2006
80;Myst V: End of Ages;7.8;Sep 19, 2005
80;Railroad Tycoon 3;7.7;Oct 23, 2003
80;Hostile Waters: Antaeus Rising;8.1;Jun 13, 2001
79;Dustforce;7.9;Jan 17, 2012
79;Empire Earth II;7.0;Apr 26, 2005
79;Fallout 3: Point Lookout;7.8;Jun 23, 2009
79;Test Drive Unlimited;8.1;Mar 20, 2007
79;Dying Light: The Following;8.3;Feb 9, 2016
79;The Path;7.0;Mar 18, 2009
79;Dungeon of the Endless;8.0;Oct 27, 2014
79;Revenge of the Titans;7.6;May 24, 2010
79;Bookworm Adventures: Volume 2;7.6;Jul 30, 2009
79;F1 2001;7.5;Oct 14, 2001
79;Brothers in Arms: Hell's Highway;7.9;Oct 7, 2008
79;Star Wars: Empire at War;8.4;Feb 15, 2006
79;Dariusburst: Chronicle Saviours;8.3;Dec 3, 2015
79;Europa Universalis: Rome - Vae Victis;8.6;Nov 19, 2008
79;Silent Hunter: Wolves of the Pacific;6.5;Mar 20, 2007
79;Pillars of Eternity: The White March - Part 2;6.7;Feb 16, 2016
79;1701 A.D.;8.3;Nov 6, 2006
79;Stasis;7.6;Aug 31, 2015
79;Pro Evolution Soccer 2009;7.4;Nov 12, 2008
79;Return to Mysterious Island;8.5;Nov 2, 2004
79;Jotun;7.0;Sep 29, 2015
79;Else Heart.Break();7.5;Sep 24, 2015
79;Kohan: Ahriman's Gift;8.7;Nov 5, 2001
79;Emperor: Battle for Dune;8.3;Jun 12, 2001
79;Trackmania Turbo;6.9;Mar 24, 2016
79;Cart Life;5.9;Jul 29, 2010
79;Sword of the Stars: Born of Blood;8.1;Jun 5, 2007
79;Worms Reloaded;6.7;Aug 26, 2010
79;Warhammer: End Times - Vermintide;7.9;Oct 23, 2015
79;Euro Truck Simulator 2;8.7;Jan 16, 2013
79;Tropico 3;8.2;Oct 20, 2009
79;Cities: Skylines - After Dark;7.9;Sep 24, 2015
79;Runaway: A Twist of Fate;8.5;Apr 21, 2011
79;Tales of Monkey Island Chapter 1: Launch of the Screaming Narwhal;8.2;Jul 7, 2009
79;Bloodline Champions;8.0;Jan 13, 2011
79;The Sims: Superstar;8.2;May 12, 2003
79;NBA Live 2005;8.5;Oct 26, 2004
79;Valiant Hearts: The Great War;8.6;Jun 25, 2014
79;Payday 2;3.4;Aug 13, 2013
79;Dungeons of Dredmor;7.8;Jul 13, 2011
79;Geometry Wars 3: Dimensions;6.2;Nov 25, 2014
79;Assassin's Creed: Director's Cut Edition;7.5;Apr 8, 2008
79;Puzzle Dimension;7.6;Jun 21, 2010
79;Split/Second;8.2;May 18, 2010
79;Sang-Froid: Tales of Werewolves;7.9;Apr 5, 2013
79;The Incredible Adventures of Van Helsing: Final Cut;7.2;Oct 7, 2015
79;Hitman: Absolution;7.0;Nov 19, 2012
79;Call of Juarez: Gunslinger;8.2;May 22, 2013
79;Rome: Total War Alexander;7.6;Jun 19, 2006
79;Strong Bad's Cool Game for Attractive People Episode 3: Baddest of the Bands;8.1;Oct 27, 2008
79;Sam & Max Episode 102: Situation: Comedy;7.9;Dec 20, 2006
79;Tropico 3: Absolute Power;7.7;May 17, 2010
79;Sam & Max Episode 106: Bright Side of the Moon;7.3;Apr 26, 2007
79;Day of Defeat;9.3;May 6, 2003
79;Space Empires: IV;8.3;Nov 6, 2000
79;Resident Evil 4: Ultimate HD Edition;7.7;Feb 27, 2014
79;Sam & Max Episode 203: Night of the Raving Dead;8.2;Feb 12, 2008
79;FlatOut: Ultimate Carnage;7.6;Sep 2, 2008
79;Guitar Hero III: Legends of Rock;7.2;Nov 13, 2007
79;Sid Meier's Civilization: Beyond Earth - Rising Tide;5.9;Oct 9, 2015
79;Memoria;8.5;Aug 29, 2013
79;The Last Door;7.8;May 20, 2014
79;Shadowgrounds Survivor;7.8;Dec 6, 2007
79;Gothic II;8.8;Oct 28, 2003
79;Port Royale;8.2;Jun 4, 2003
79;Deadly Dozen: Pacific Theater;7.9;Oct 31, 2002
79;Shattered Galaxy;8.3;Aug 21, 2001
79;Close Combat: Invasion: Normandy;8.2;Oct 10, 2000
79;King's Bounty: The Legend;8.6;Sep 23, 2008
79;Rage;5.1;Oct 4, 2011
79;The Misadventures of P.B. Winterbottom;8.3;Apr 20, 2010
79;Uru: Ages Beyond Myst;7.4;Nov 11, 2003
79;Guild Wars: Eye of the North;8.6;Aug 28, 2007
79;Tales From The Borderlands: Episode 4 - Escape Plan Bravo;8.4;Aug 18, 2015
79;EverQuest: Lost Dungeons of Norrath;7.0;Sep 8, 2003
79;Battlefield 1942: Secret Weapons of WWII;8.5;Sep 4, 2003
79;The Sims: Unleashed;8.0;Sep 23, 2002
79;Race the Sun;7.5;Aug 19, 2013
79;The Sims 3: Pets;6.1;Oct 18, 2011
79;Prototype;7.9;Jun 10, 2009
79;Stick it to the Man!;7.2;Dec 13, 2013
79;Street Fighter X Tekken;6.4;May 11, 2012
79;Frozen Cortex;6.5;Feb 19, 2015
79;Free Realms;6.4;Apr 29, 2009
79;Homeworld: Deserts of Kharak;8.0;Jan 20, 2016
79;Don't Starve;8.3;Apr 23, 2013
79;Assault Android Cactus;7.0;Sep 23, 2015
79;Trainz;7.2;Feb 10, 2002
79;King Arthur: The Role-Playing Wargame;7.9;Nov 24, 2009
79;Chivalry: Medieval Warfare;7.8;Oct 16, 2012
79;Overlord II;8.1;Jun 23, 2009
79;F.E.A.R. 2: Project Origin;7.8;Feb 10, 2009
79;Tom Clancy's Rainbow Six Siege;6.9;Dec 1, 2015
79;The Settlers 7: Paths to a Kingdom;5.2;Mar 23, 2010
79;RollerCoaster Tycoon 3: Soaked!;2.9;Jun 23, 2005
79;Dark Souls II: Crown of the Old Iron King;7.6;Aug 26, 2014
79;TrackMania 2 Valley;8.3;Jul 4, 2013
79;State of Decay;6.8;Nov 5, 2013
79;LEGO Harry Potter: Years 1-4;7.8;Jun 29, 2010
79;Rift: Storm Legion;7.8;Nov 13, 2012
79;Crayon Physics Deluxe;7.6;Jan 7, 2009
79;Nancy Drew: Legend of the Crystal Skull;8.5;Oct 8, 2007
79;EverQuest II: Desert of Flames;7.8;Sep 12, 2005
79;SimCity 4: Rush Hour;8.6;Sep 22, 2003
79;Uncommon Valor: Campaign for the South Pacific;7.6;Dec 2, 2002
79;Global Operations;8.3;Mar 25, 2002
78;Apotheon;7.8;Feb 3, 2015
78;Need for Speed: Most Wanted - A Criterion Game;4.4;Oct 30, 2012
78;Star Wars: Battlefront II;8.8;Oct 31, 2005
78;The Walking Dead: Season Two Episode 1 - All That Remains;8.5;Dec 17, 2013
78;The Journey Down: Chapter Two;7.1;Aug 25, 2014
78;Star Trek: Elite Force II;7.6;Jun 25, 2003
78;Zuma's Revenge!;7.9;Sep 15, 2009
78;Baldur's Gate: Enhanced Edition;7.0;Nov 28, 2012
78;Doom 3: Resurrection of Evil;6.0;Apr 4, 2005
78;LEGO Indiana Jones: The Original Adventures;7.7;Jun 3, 2008
78;NASCAR Thunder 2004;7.5;Sep 16, 2003
78;Transformers: Fall of Cybertron;7.8;Aug 21, 2012
78;FIFA Soccer 06;6.7;Oct 4, 2005
78;DeadCore;6.8;Oct 17, 2014
78;The Walking Dead: Season Two Episode 5 - No Going Back;8.5;Aug 26, 2014

View File

@ -0,0 +1,44 @@
# Map und Reduce auf Streams
## Lernziel
Die Daten in einem Stream durch Map- und Reduce verdichten.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.reduce_critics](../sources/src/main/java/pr2/streams/reduce_critics/).
In dieser (und den folgenden Aufgaben) werden Sie Daten aus der Spieldatenbank von [Metacritic](http://www.metacritic.com) analysieren. Hierbei wurden die 994 Spiele mit der besten Bewertung ausgewählt. Für jedes Spiel sind angegeben:
* Name des Spiels
* Metacritic-Score (0-100)
* Benutzerbewertung (0-100). Normalerweise werden die Benutzerbewertungen bei Metacritic on 0-10 mit einer Nachkommastelle angegeben. Für die einfachere Bearbeitung ist dies für Sie aber bereits in den Bereich 0-100 umgerechnet worden.
* Erscheinungsjahr des Spieles
Die Verwaltung der Daten wurde Ihnen bereits abgenommen und wird von der Klasse `GameDatabase` durchgeführt. Ein einzelnes Spiel wird durch Objekte des Typs `ComputerGame` repräsentiert.
Schauen Sie sich die Klassen `ComputerGame` und `GameDatabase` an und versuchen Sie deren Funktionsweise zu verstehen.
Erweitern Sie nun die `main`-Methode von `MapReduceGames` so, dass Sie bestimmte Auswertungen auf den Spielen durchführen können. Folgende Informationen sollen Sie auswerten:
1. Das [Quadratische Mittel](https://de.wikipedia.org/wiki/Quadratisches_Mittel) des Unterschiedes zwischen Metascore und Userscore.
3. Das [Arithmetische Mittel](https://de.wikipedia.org/wiki/Arithmetisches_Mittel) des Unterschiedes zwischen Metascore und Userscore.
Lassen Sie Ihr Programm laufen und überprüfen Sie, ob die richtigen Informationen ausgegeben werden.
Die Datei mit den Spielen finden Sie unter [games.txt](../sources/src/main/resources/pr2/streams/reduce_critics/games.txt).
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# Reduce
## Lernziel
Daten in Streams mit `reduce` aggregieren.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.reduce](../sources/src/main/java/pr2/streams/reduce/).
Gegeben sei eine Liste von `Integer`-Werten (`List<String>`). Schreiben Sie eine Klasse `Squarer`, die Summe der Quadrate der Werte bestimmt. Einmal unter Verwendung einer Map- und einmal ohne eine Map-Operation.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# Summe über reduce bestimmen
## Lernziel
Daten in Streams mit `reduce` aggregieren.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.summieren](../sources/src/main/java/pr2/streams/summieren/).
Schreiben Sie in der Klasse `SumUp` eine Methode `int sumUp(Stream<Integer> numbers)`, die die Elemente eines Streams von `Integer`-Objekten addiert.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Wörter zählen
## Lernziel
Daten in Streams mit `reduce` aggregieren.
## Aufgabe
Gehen Sie in das Paket [pr2.streams.word_count](../sources/src/main/java/pr2/streams/word_count/).
Gegeben sei eine Liste von Strings (`List<String>`), die die Wörter eines Textes enthält. Erzeugen Sie eine neue Liste, die zu jedem Wort die Häufigkeit im Text in der Form Wort->Häufigkeit also z.B. `die->32` angibt.
Testen Sie Ihre Implementierung mit der Testklasse `WordCountTest`.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,32 @@
# Information-Hiding einer Klasse verbessern
## Lernziel
Bei einer vorhandenen Klasse Information Hiding verbessern und Seiteneffekte reduzieren.
## Aufgabe
Im Paket [pr2.strukturierung.information_hiding](../sources/src/main/java/pr2/strukturierung/information_hiding/) finden Sie eine Klasse namens `Rechner`, die eine sehr einfachen Taschenrechner repräsentiert. Außerdem finden Sie einen passenden JUnit-Test `RechnerTest`, der die Funktionsweise des Taschenrechners demonstriert.
Führen Sie den JUnit-Test aus und vergewissern Sie sich, dass der Taschenrechner korrekt funktioniert.
Schauen Sie sich die Klasse `Rechner` genau an und überlegen Sie, welche Probleme hier vorliegen. Denken Sie an die in der Vorlesung diskutierten Prinzipien des _Information Hiding_ und der _Minimierung von Seiteneffekten_.
Schreiben Sie die Klasse und die Tests so um, dass die genannten Prinzipien besser erfüllt werden.
Führen Sie die Tests erneut aus und stellen Sie sicher, dass die Berechnungen noch korrekt erfolgen.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,32 @@
# Vorhandene Bibliotheken als JAR einbinden
## Lernziel
Eine vorhandene Bibliothek in einem Projekt verwenden und hierzu ein JAR einbinden.
## Aufgabe
Im Paket [pr2.strukturierung.jars_einbinden](../sources/src/main/java/pr2/strukturierung/jars_einbinden/) finden Sie eine Klasse `PieChart`, deren Rumpf auskommentiert ist.
In dieser Aufgabe werden Sie die Bibliothek [JFreeChart](http://www.jfree.org/jfreechart/) für die Darstellung von Grafiken verwenden. Hierzu müssen die JARs der Bibliothek in das Projekt eingebunden werden.
Die beiden JAR-Dateien `jcommon-1.0.23.jar` und `jfreechart-1.0.19.jar` liegen bereits im `lib`-Ordner des Projektes, sind aber noch nicht in das Projekt eingebunden.
Binden Sie die Bibliotheken über den entsprechenden Dialog in Eclipse ein: `Properties` -> `Java Build Path` -> `Libraries` -> `Add JARs`...
Kommentieren Sie die auskommentierten Passagen in der Klasse `PieChart` wieder ein und starten Sie das Programm. Experimentieren Sie ein wenig mit Werten, die dargestellt werden.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,28 @@
# Fakultät parallel berechnen
## Lernziel
Berechnungen parallelisieren.
## Aufgabe
Gehen Sie ins Paket [pr2.threads.fakultaet](../sources/src/main/java/pr2/threads/fakultaet/).
Schreiben Sie eine Klasse `FakultaetParallel`, die in der Lage ist, die Fakultäten für eine Reihe von Zahlen zwischen 0 und 20 zu berechnen. Der Berechnung dient eine Methode `calculate`, der die Zahl (1-20) übergeben wird, bis zu der die Reihe von Fakultäten berechnet werden soll und die dann ein `long`-Array mit den Ergebnissen zurückgibt. Verwenden Sie zur Implementierung der Berechnung zwei Threads, die sich die Arbeit teilen.
Schreiben Sie eine `main`-Methode in der Klasse `Main`, welche die Klasse `FakultaetParallel` verwendet, um die Fakultäten von 0 bis 20 zu berechnen. Danach soll sie das Ergebnis der Berechnung ausgeben.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

View File

@ -0,0 +1,26 @@
# Thread per interrupt beenden
## Lernziel
Threads kontrolliert beenden.
## Aufgabe
Gehen Sie in das Paket [pr2.threads.interrupt](../sources/src/main/java/pr2/threads/interrupt/).
Schreiben Sie ein Java-Programm `ThreadsBeenden`, das einen Thread startet, der alle 100 Millisekunden eine Ausgabe erzeugt. Nachdem dieser Thread gestartet wurde, soll der Main-Thread zwei Sekunden warten und dann den anderen Thread sauber von außen beenden. Verwenden Sie zum Beenden des Threads die `interrupt`-Methode und denken Sie daran, die `InterruptedException` bei der `sleep`-Methode richtig zu behandeln.
<!--
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
4. Bauen Sie das Projekt mit dem Kommando `mvn`.
-->

Some files were not shown because too many files have changed in this diff Show More