2
0
Fork 0

Update of exercises

main
Thomas Smits 2024-09-15 15:44:10 +02:00
commit 3ae4c12387
344 changed files with 18770 additions and 0 deletions

11
_001/kafka.txt 100644

File diff suppressed because one or more lines are too long

36
_001/readme.md 100644
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`.
-->

27
_002/readme.md 100644
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`.
-->

11
_003/kafka.txt 100644

File diff suppressed because one or more lines are too long

34
_003/readme.md 100644
View File

@ -0,0 +1,34 @@
# wait und notify benutzen
## Lernziel
Thread-Koordination über Condition-Variablen.
## Aufgabe
Gehen Sie in das Paket
[pr2.threads.notifier](../sources/src/main/java/pr2/threads/notifier/).
Schreiben Sie eine Klasse `Notifier`, die ein einziges `String`-Attribut enthält. Sie soll weiterhin zwei Methoden haben:
* `setString(String string)` -- Diese Methode setzt den String auf einen neuen Wert, aber nur, wenn der String `null` ist. Ist der String bereits gesetzt, wartet die Methode darauf, dass ein anderer Thread den String über die `getString()`-Methode liest und wieder zurücksetzt.
* `getString()` -- Liest den String aus, gibt das Ergebnis zurück und setzt das Attribut wieder zurück auf `null`. Wenn kein String vorhanden ist (d.h. wenn das Attribut bereits `null` ist), wartet die Methode, bis ein anderer Thread mit `setString(String string)` einen String abspeichert.
Schreinben Sie eine Klasse `Main` mit einer `main`-Methode. Starten Sie zwei Threads, die Strings in einer `Notifier`-Instanz abspeichern und drei Threads, die Strings auslesen. Lassen Sie die Threads nach jeder Operation für 200 Millisekunden schlafen.
Verwenden Sie bitte `wait` und `notify` bzw. `notifyAll`, um die Threads entsprechend zu koordinieren.
<!--
## 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.

After

Width:  |  Height:  |  Size: 21 KiB

11
_004/kafka.txt 100644

File diff suppressed because one or more lines are too long

26
_004/readme.md 100644
View File

@ -0,0 +1,26 @@
# Parallele Ausgaben erzeugen
## Lernziel
Erste Schritte mit Threads.
## Aufgabe
Gehen Sie in das Paket [pr2.threads.paralleldrucker](../sources/src/main/java/pr2/threads/paralleldrucker/).
Schreiben Sie ein Java-Programm `Paralleldrucker`, das zwei Threads startet, die beide in einer Endlosschleife einen Text auf der Konsole ausgeben, zum Beispiel "Thread 1 speaking". Parallel dazu soll der Main-Thread ebenfalls eine wiederkehrende Ausgabe erzeugen, z.B. "Hier spricht der Main-Thread". Verwenden Sie bitte für die Erzeugung der Threads anonyme innere Klassen, die `Runnable` implementieren.
<!--
## 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`.
-->

BIN
_005/daten.dat 100644

Binary file not shown.

994
_005/games.txt 100644
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

32
_005/readme.md 100644
View File

@ -0,0 +1,32 @@
# Race-Condition finden und beheben
## Lernziel
In einem gegebenen Programm Race-Conditions finden und durch den Einsatz von kritischen Abschnitten beheben.
## Aufgabe
Gehen Sie in das Paket [pr2.threads.race_condition](../sources/src/main/java/pr2/threads/race_condition/).
In dieser Aufgabe haben Sie ein defektes Programm vor sich, das aufgrund von Race-Conditions nicht richtig funktionieren kann.
Schauen Sie sich den Quelltext des Programms genau an und versuchen Sie die Funktionsweise zu verstehen. Lassen Sie das Programm laufen und betrachten Sie die Fehlermeldungen und Ausgaben. Mit großer Wahrscheinlichkeit wird das Programm abstürzen. Wenn nicht, starten Sie es mehrmals, bis ein Fehler auftritt.
Versuchen Sie die Ursache des Fehlers zu verstehen und überlegen Sie sich, wo genau die Race-Condition vorliegt. Wahrscheinlich wird der erste Fehler aus der Klasse `ArrayList` stammen. Dies ist aber nicht die einzige Race-Condition im Programm, es gibt noch eine zweite.
Beheben Sie die Race-Condition durch die Verwendung von kritischen Abschnitten und lassen Sie das Programm danach erneut mehrfach laufen. Wenn bei keinem der Durchläufe ein Fehler auftritt, gilt die Aufgabe als gelöst.
<!--
## 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`.
-->

994
_006/games.txt 100644
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

26
_006/readme.md 100644
View File

@ -0,0 +1,26 @@
# Stack und Heap unterscheiden
## Lernziel
Unterschied zwischen Stack und Heap bei parallelen Programmen verstehen.
## Aufgabe
Gehen Sie in das Paket [pr2.threads.stack_heap](../sources/src/main/java/pr2/threads/stack_heap/).
Schreiben Sie ein kurzes Java-Programm `ThreadProblem`, das den Unterschied zwischen Variablen auf dem Stack und Variablen auf dem Heap bezüglich des gleichzeitigen Zugriffs durch Threads demonstriert.
<!--
## 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`.
-->

994
_007/games.txt 100644
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

11
_007/kafka.txt 100644

File diff suppressed because one or more lines are too long

26
_007/readme.md 100644
View File

@ -0,0 +1,26 @@
# synchronized verwenden
## Lernziel
Schlüsselwort `synchronized` verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.threads.synchronize](../sources/src/main/java/pr2/threads/synchronize/).
Schreiben Sie eine Klasse `Synchronizer`, die ein einziges `int`-Attribut und zusätzlich noch eine Methode `addAndPrint` enthält. Bei jedem Aufruf der Methode soll das Attribut um eins hochgezählt werden. Starten Sie zwei Threads, die diese Method konkurrierend aufrufen und sorgen Sie durch korrekte Synchronisation bei der `addAndPrint` dafür, dass keine Zahl zweimal ausgegeben wird und die Folge der Zahlen wirklich ohne Lücken 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`.
-->

28
_008/readme.md 100644
View File

@ -0,0 +1,28 @@
# Timer und TimerTask verwenden
## Lernziel
Klassen aus `java.util.concurrent` verwenden.
## Aufgabe
Gehen Sie in das Paket [pr2.threads.timer](../sources/src/main/java/pr2/threads/timer/).
Schreiben Sie eine Klasse `FakultaetTimer`, die in der Lage ist, die Fakultäten für alle Zahlen zwischen 0 und 20 zu berechnen. Der Berechnung dient eine Methode `calculate` die ein `long`-Array mit den Ergebnissen zurückgibt. Verwenden Sie zur Implementierung der Berechnung die Klasse `Timer` und `TimerTask`, wobei Sie für jede zu berechnende Zahl einen eigenen `TimerTask` verwenden sollen.
Schreiben Sie eine `main`-Methode in der Klasse `Main`, welche die Klasse `FakultaetTimer` 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`.
-->

26
_009/readme.md 100644
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`.
-->

28
_010/readme.md 100644
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`.
-->

41
_011/readme.md 100644
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`.
-->

BIN
_012/data.dat 100644

Binary file not shown.

32
_012/readme.md 100644
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`.
-->

11
_013/kafka.txt 100644

File diff suppressed because one or more lines are too long

26
_013/readme.md 100644
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`.
-->

36
_014/readme.md 100644
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`.
-->

39
_015/readme.md 100644
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`.
-->

34
_016/readme.md 100644
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`.
-->

BIN
_016/testdata.dat 100644

Binary file not shown.

View File

@ -0,0 +1,9 @@
## Softwareausstattung
* **Ubuntu Linux** als Installation oder VM
* **Java JDK 18**<br>`sudo apt install openjdk-18-jdk openjdk-18-source openjdk-18-doc`
* **Git** und Git-Frontends<br>`sudo apt install git meld git-cola`
* **Maven 3.6 oder neuer**<br>`sudo apt install maven`
* **Eclipse**<br>Von der [Webseite](https://www.eclipse.org/downloads/) herunterladen und installieren. Bitte verwenden Sie die Version **Eclipse IDE for Java Developers**
Eine Anleitung zur Installation von Ubuntu Linux finden Sie [hier](https://github.com/informatik-mannheim/linux-hsma/blob/master/doc/readme.md). Diese Anleitung bezieht sich auf Ubuntu 21.04, funktioniert so aber auch mit einer neueren Version.

123
readme.md 100644
View File

@ -0,0 +1,123 @@
# Programmieren 2 (Wintersemester 2024/2025)
## 👋 Willkommen zum Kurs Programmieren 2
In Programmieren 2 lernen Sie die Programmierung in Java auf einem fortgeschrittenen Niveau. Sie werden alle wichtigen Konzepte von Java kennenlernen und diese in praktischen Übungen anwenden. Hierbei werden Sie in kleinen Teams arbeiten und komplexere, objektorientierte Programme in Java entwickeln. Die dazu nötigen objektorientierten Konzepte (Polymorphie, Vererbung, Interfaces, etc.) werden Sie ebenso im Kurs anwenden, wie die dazu grundlegenden Algorithmen und Datenstrukturen.
## 🎓 Freiwillige Übungen
Hier finden Sie die **freiwilligen Übungen** zur Vorlesung Programmieren 2 (PR2). Die Übungen sind unten aufgelistet. Die Spalte **Ausgabe** hat keine Bedeutung.
Hinweise zur nötigen Softwareausstattung finden Sie [hier](help/softwareausstattung.md).
| # | Kapitel | Thema |
|-----|-----------------------|-----------------------------------------------------------------------------------|
| 1. | Auffrischung | [String in Großbuchstaben umwandeln](_001/readme.md) |
| 2. | Auffrischung | [Labeled Break](_002/readme.md) |
| 3. | Auffrischung | [Passwortbewertung](_003/readme.md) |
| 4. | Auffrischung | [printf mit Formatstring](_004/readme.md) |
| 5. | Auffrischung | [Maximum in einem Array suchen](_005/readme.md) |
| 6. | Auffrischung | [Taschenrechner](_006/readme.md) |
| 7. | Einführung | [Java-Coding-Standard anwenden](_001/readme.md) |
| 8. | Einführung | [JavaDoc schreiben](_002/readme.md) |
| 9. | Einführung | [Klasse mit JUnit testen](_003/readme.md) |
| 10. | Strukturierung | [Information-Hiding einer Klasse verbessern](_001/readme.md) |
| 11. | Strukturierung | [Vorhandene Bibliotheken als JAR einbinden](_002/readme.md) |
| 12. | Vererbung | [Final anwenden](_001/readme.md) |
| 13. | Vererbung | [Figur und Rechteck](_002/readme.md) |
| 14. | Vererbung | [Figur erweitern](_003/readme.md) |
| 15. | Vererbung | [Figur noch einmal erweitern](_004/readme.md) |
| 16. | Vererbung | [Konstruktoren schreiben](_005/readme.md) |
| 17. | Vererbung | [Polymorphie einsetzen](_006/readme.md) |
| 18. | Vererbung | [Singleton](_007/readme.md) |
| 19. | Vererbung | [Statische Methoden und Attribute](_008/readme.md) |
| 20. | Vererbung | [Methode überladen](_009/readme.md) |
| 21. | Vererbung | [Methoden überschreiben](_010/readme.md) |
| 22. | Vererbung | [Varag-Methode schreiben](_011/readme.md) |
| 23. | Vererbung | [Vererbung von Figuren](_012/readme.md) |
| 24. | Abstrakte Klassen | [Abstrakte Klassen](_001/readme.md) |
| 25. | Abstrakte Klassen | [Abstrakte Klasse](_002/readme.md) |
| 26. | Interfaces | [Comparable implementieren](_001/readme.md) |
| 27. | Interfaces | [Interface Stack entwerfen](_002/readme.md) |
| 28. | Interfaces | [Interface: Uebersetzer](_003/readme.md) |
| 29. | Interfaces | [Interfaces anwenden und entwerfen](_004/readme.md) |
| 30. | Object und Wrapper | [Deep-Copy mit `clone()`](_001/readme.md) |
| 31. | Object und Wrapper | [Clone](_002/readme.md) |
| 32. | Object und Wrapper | [`equals()` und `hashCode()` implementieren und nutzen](_003/readme.md) |
| 33. | Object und Wrapper | [equals und hashCode](_004/readme.md) |
| 34. | Object und Wrapper | [`toString()`-Methode implementieren](_005/readme.md) |
| 35. | Object und Wrapper | [Optimierung bei Integer](_006/readme.md) |
| 36. | Object und Wrapper | [Methoden der Wrapper-Klassen](_007/readme.md) |
| 37. | Enumerationen | [Eigene Enumeration schreiben und verwenden](_001/readme.md) |
| 38. | Enumerationen | [Enumeration schreiben](_002/readme.md) |
| 39. | Enumerationen | [Singleton-Eigenschaft von Enumerationen](_003/readme.md) |
| 40. | Enumerationen | [Stein, Papier, Schere, Echse, Spock](_004/readme.md) |
| 41. | Ausnahmen | [Ausnahmen testen](_001/readme.md) |
| 42. | Ausnahmen | [Eigene Ausnahmen schreiben und an entsprechender Stelle werfen](_002/readme.md) |
| 43. | Ausnahmen | [Eigene Exception schreiben](_003/readme.md) |
| 44. | Ausnahmen | [Handle-or-Declare-Regel anwenden](_004/readme.md) |
| 45. | Ausnahmen | [Ausnahmen mit `try` und `catch` behandeln.](_005/readme.md) |
| 46. | Input und Output | [`BufferedReader` zum zeilenweisen Lesen einsetzen](_001/readme.md) |
| 47. | Input und Output | [DataOutputStream](_002/readme.md) |
| 48. | Input und Output | [DataOutputStream durch Serialisierung ersetzen](_003/readme.md) |
| 49. | Input und Output | [Daten mit `DataOutputStream` und `DataInputStream` verarbeiten](_004/readme.md) |
| 50. | Input und Output | [Daten mit einem `InputStream` lesen](_005/readme.md) |
| 51. | Input und Output | [Daten mit einem `OutputStream` schreiben](_006/readme.md) |
| 52. | Input und Output | [Filesystem-Abstraktion mit `File`](_007/readme.md) |
| 53. | Input und Output | [Fileattribute lesen](_008/readme.md) |
| 54. | Input und Output | [`FilterReader`](_009/readme.md) |
| 55. | Input und Output | [Konsolen Input/Output](_010/readme.md) |
| 56. | Input und Output | [Zeilen einer Textdatei zählen](_011/readme.md) |
| 57. | Input und Output | [`RandomAccessFile`](_012/readme.md) |
| 58. | Input und Output | [`Reader` verwenden](_013/readme.md) |
| 59. | Input und Output | [Rot13-Verschlüsselung](_014/readme.md) |
| 60. | Input und Output | [Datei zerhacken](_015/readme.md) |
| 61. | Input und Output | [Serialisierung](_016/readme.md) |
| 62. | Generische Typen | [Einen generischen Typ schreiben](_001/readme.md) |
| 63. | Generische Typen | [Generische Klasse Pair schreiben](_002/readme.md) |
| 64. | Generische Typen | [Generische Klasse Pair erweitern: NumberPair](_003/readme.md) |
| 65. | Generische Typen | [Generische Klasse Pair erweitern: SamePair](_004/readme.md) |
| 66. | Generische Typen | [PairList](_005/readme.md) |
| 67. | Generische Typen | [Wildcard benutzen](_006/readme.md) |
| 68. | Generische Typen | [Generische Queue](_007/readme.md) |
| 69. | Generische Typen | [`super` und `extends` einsetzen](_008/readme.md) |
| 70. | Generische Typen | [Generische Typen zusammen mit Wildcards einsetzen](_009/readme.md) |
| 71. | Geschachtelte Klassen | [Eigene compare-Methode schreiben](_001/readme.md) |
| 72. | Geschachtelte Klassen | [Innere Klasse Beobachter](_002/readme.md) |
| 73. | Geschachtelte Klassen | [Callback mit anonymer Klasse realisieren](_003/readme.md) |
| 74. | Lambdas | [Comparator als Lambda](_001/readme.md) |
| 75. | Lambdas | [Callback mit Lambda realisieren](_002/readme.md) |
| 76. | Geschachtelte Klassen | [MatrixSuche](_001/readme.md) |
| 77. | Lambdas | [StringTransmogrifier](_001/readme.md) |
| 78. | Lambdas | [StringTransmogrifier erweitern](_002/readme.md) |
| 79. | Collections | [Iterator schreiben](_001/readme.md) |
| 80. | Collections | [Iterator programmieren](_002/readme.md) |
| 81. | Collections | [`List<T>` und dessen Implementierungen](_003/readme.md) |
| 82. | Collections | [`Map<T>` verwenden](_004/readme.md) |
| 83. | Collections | [ReverserGeneric](_005/readme.md) |
| 84. | Collections | [Strings umgekehrt sortieren: Reverser](_006/readme.md) |
| 85. | Collections | [`Set<T>` und dessen Implementierungen](_007/readme.md) |
| 86. | Collections | [CommandLineSorter](_008/readme.md) |
| 87. | Collections | [CommandLineSorter -- Version 2](_009/readme.md) |
| 88. | Collections | [`Comparator<T>` verwenden und Objekte sortieren](_010/readme.md) |
| 89. | Collections | [Wörterbuchprogramm](_011/readme.md) |
| 90. | Streams | [Kleinbuchstaben in einem String zählen](_001/readme.md) |
| 91. | Streams | [Buchstaben in einer Liste von Strings zählen](_002/readme.md) |
| 92. | Streams | [Kleinbuchstaben in einem String zählen](_003/readme.md) |
| 93. | Streams | [Liste filtern](_004/readme.md) |
| 94. | Streams | [Streams mit interner Iteration](_005/readme.md) |
| 95. | Streams | [Map und Filter auf Streams](_006/readme.md) |
| 96. | Streams | [Map und Reduce auf Streams](_007/readme.md) |
| 97. | Streams | [Reduce](_008/readme.md) |
| 98. | Streams | [Summe über reduce bestimmen](_009/readme.md) |
| 99. | Streams | [Wörter zählen](_010/readme.md) |
| 100. | Threads | [Fakultät parallel berechnen](_001/readme.md) |
| 101. | Threads | [Thread per interrupt beenden](_002/readme.md) |
| 102. | Threads | [wait und notify benutzen](_003/readme.md) |
| 103. | Threads | [Parallele Ausgaben erzeugen](_004/readme.md) |
| 104. | Threads | [Race-Condition finden und beheben](_005/readme.md) |
| 105. | Threads | [Stack und Heap unterscheiden](_006/readme.md) |
| 106. | Threads | [synchronized verwenden](_007/readme.md) |
| 107. | Threads | [Timer und TimerTask verwenden](_008/readme.md) |
| 108. | Reflection | [Klasse per Reflection analysieren](_001/readme.md) |
| 109. | Reflection | [Objekte per Reflection erzeugen](_002/readme.md) |

View File

@ -0,0 +1,203 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<!--
Checkstyle configuration that checks the sun coding conventions from:
- the Java Language Specification at
http://java.sun.com/docs/books/jls/second_edition/html/index.html
- the Sun Code Conventions at http://java.sun.com/docs/codeconv/
- the Javadoc guidelines at
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
- the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
- some best practices
Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.sf.net (or in your downloaded distribution).
Most Checks are configurable, be sure to consult the documentation.
To completely disable a check, just comment it out or delete it from the file.
Finally, it is worth reading the documentation.
-->
<module name="Checker">
<!--
If you set the basedir property below, then all reported file
names will be relative to the specified directory. See
http://checkstyle.sourceforge.net/5.x/config.html#Checker
<property name="basedir" value="${basedir}"/>
-->
<!-- Checks whether files end with a new line. -->
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
<!-- <module name="NewlineAtEndOfFile"/> -->
<!-- Checks that property files contain the same keys. -->
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
<module name="Translation"/>
<!-- Checks for Size Violations. -->
<!-- See http://checkstyle.sf.net/config_sizes.html -->
<module name="FileLength"/>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="FileTabCharacter"/>
<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<!--
<module name="RegexpSingleline">
<property name="format" value="\s+$"/>
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
<property name="message" value="Line has trailing spaces."/>
</module>
-->
<module name="LineLength">
<property name="ignorePattern" value="^.*//#.*|^.* \* @see .*|^import .*"/>
</module>
<module name="TreeWalker">
<!-- Checks for Javadoc comments. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
<module name="JavadocMethod"/>
<module name="JavadocType"/>
<module name="JavadocVariable">
<property name="scope" value="public"/>
</module>
<module name="JavadocStyle"/>
<!-- Checks for Naming Conventions. -->
<!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="PackageName">
<property name="format" value="^[a-z][a-z0-9_]+(\.[a-z][a-z0-9_]*)*$"/>
</module>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>
<!-- Checks for Headers -->
<!-- See http://checkstyle.sf.net/config_header.html -->
<!-- <module name="Header"> -->
<!-- The follow property value demonstrates the ability -->
<!-- to have access to ANT properties. In this case it uses -->
<!-- the ${basedir} property to allow Checkstyle to be run -->
<!-- from any directory within a project. See property -->
<!-- expansion, -->
<!-- http://checkstyle.sf.net/config.html#properties -->
<!-- <property -->
<!-- name="headerFile" -->
<!-- value="${basedir}/java.header"/> -->
<!-- </module> -->
<!-- Following interprets the header file as regular expressions. -->
<!-- <module name="RegexpHeader"/> -->
<!-- Checks for imports -->
<!-- See http://checkstyle.sf.net/config_import.html -->
<module name="AvoidStarImport"/>
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<!-- Checks for Size Violations. -->
<!-- See http://checkstyle.sf.net/config_sizes.html -->
<module name="MethodLength">
<property name="countEmpty" value="false"/>
</module>
<module name="ParameterNumber"/>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="EmptyForIteratorPad"/>
<module name="GenericWhitespace"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter">
<property name="tokens" value="AT, INC, DEC, UNARY_MINUS, UNARY_PLUS, BNOT, LNOT, DOT, ARRAY_DECLARATOR, INDEX_OP"/>
</module>
<module name="NoWhitespaceBefore">
<property name="tokens" value="COMMA, SEMI, POST_INC, POST_DEC, ELLIPSIS, LABELED_STAT"/>
</module>
<module name="OperatorWrap"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<!-- Modifier Checks -->
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
<module name="ModifierOrder"/>
<!-- <module name="RedundantModifier"/> -->
<!-- Checks for blocks. You know, those {}'s -->
<!-- See http://checkstyle.sf.net/config_blocks.html -->
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock"/>
<module name="LeftCurly"/>
<module name="NeedBraces"/>
<!-- <module name="RightCurly"/> -->
<!-- Checks for common coding problems -->
<!-- See http://checkstyle.sf.net/config_coding.html -->
<!-- <module name="AvoidInlineConditionals"/> -->
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="HiddenField">
<property name="ignoreConstructorParameter" value="true"/>
<property name="ignoreSetter" value="true"/>
</module>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MissingSwitchDefault"/>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<!-- Checks for class design -->
<!-- See http://checkstyle.sf.net/config_design.html -->
<!-- <module name="DesignForExtension"/> -->
<module name="FinalClass"/>
<!-- <module name="HideUtilityClassConstructor"/> -->
<module name="InterfaceIsType"/>
<module name="VisibilityModifier">
<property name="protectedAllowed" value="true"/>
<property name="packageAllowed" value="true"/>
</module>
<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<module name="ArrayTypeStyle"/>
<!-- <module name="FinalParameters"/> -->
<module name="TodoComment"/>
<module name="UpperEll"/>
</module>
</module>

2253
solutions/pmd.xml 100644

File diff suppressed because it is too large Load Diff

132
solutions/pom.xml 100644
View File

@ -0,0 +1,132 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.hs_mannheim.pr2</groupId>
<artifactId>solutions</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>PR2 Excercises</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<junit.jupiter.version>5.9.1</junit.jupiter.version>
<junit.platform.version>1.9.1</junit.platform.version>
</properties>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<build>
<defaultGoal>install</defaultGoal>
<directory>${basedir}/target</directory>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.2.0</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>10.4</version>
</dependency>
</dependencies>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.19.0</version>
<configuration>
<rulesets>
<ruleset>./pmd.xml</ruleset>
</rulesets>
<failOnViolation>true</failOnViolation>
<printFailingErrors>true</printFailingErrors>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<!--
<dependency>
<groupId>de.smits_net.games</groupId>
<artifactId>game-framework</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
-->
<dependency>
<groupId>com.github.thomsmits</groupId>
<artifactId> game-framework</artifactId>
<version>v1.0</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
<version>${junit.platform.version}</version>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>4.12.0-M4</version>
</dependency>
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.3</version>
</dependency>
</dependencies>
</project>

12
sources/.classpath 100644
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/game_framework.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -0,0 +1,203 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<!--
Checkstyle configuration that checks the sun coding conventions from:
- the Java Language Specification at
http://java.sun.com/docs/books/jls/second_edition/html/index.html
- the Sun Code Conventions at http://java.sun.com/docs/codeconv/
- the Javadoc guidelines at
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
- the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
- some best practices
Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.sf.net (or in your downloaded distribution).
Most Checks are configurable, be sure to consult the documentation.
To completely disable a check, just comment it out or delete it from the file.
Finally, it is worth reading the documentation.
-->
<module name="Checker">
<!--
If you set the basedir property below, then all reported file
names will be relative to the specified directory. See
http://checkstyle.sourceforge.net/5.x/config.html#Checker
<property name="basedir" value="${basedir}"/>
-->
<!-- Checks whether files end with a new line. -->
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
<!-- <module name="NewlineAtEndOfFile"/> -->
<!-- Checks that property files contain the same keys. -->
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
<module name="Translation"/>
<!-- Checks for Size Violations. -->
<!-- See http://checkstyle.sf.net/config_sizes.html -->
<module name="FileLength"/>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="FileTabCharacter"/>
<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<!--
<module name="RegexpSingleline">
<property name="format" value="\s+$"/>
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
<property name="message" value="Line has trailing spaces."/>
</module>
-->
<module name="LineLength">
<property name="ignorePattern" value="^.*//#.*|^.* \* @see .*|^import .*"/>
</module>
<module name="TreeWalker">
<!-- Checks for Javadoc comments. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
<module name="JavadocMethod"/>
<module name="JavadocType"/>
<module name="JavadocVariable">
<property name="scope" value="public"/>
</module>
<module name="JavadocStyle"/>
<!-- Checks for Naming Conventions. -->
<!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="PackageName">
<property name="format" value="^[a-z][a-z0-9_]+(\.[a-z][a-z0-9_]*)*$"/>
</module>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>
<!-- Checks for Headers -->
<!-- See http://checkstyle.sf.net/config_header.html -->
<!-- <module name="Header"> -->
<!-- The follow property value demonstrates the ability -->
<!-- to have access to ANT properties. In this case it uses -->
<!-- the ${basedir} property to allow Checkstyle to be run -->
<!-- from any directory within a project. See property -->
<!-- expansion, -->
<!-- http://checkstyle.sf.net/config.html#properties -->
<!-- <property -->
<!-- name="headerFile" -->
<!-- value="${basedir}/java.header"/> -->
<!-- </module> -->
<!-- Following interprets the header file as regular expressions. -->
<!-- <module name="RegexpHeader"/> -->
<!-- Checks for imports -->
<!-- See http://checkstyle.sf.net/config_import.html -->
<module name="AvoidStarImport"/>
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<!-- Checks for Size Violations. -->
<!-- See http://checkstyle.sf.net/config_sizes.html -->
<module name="MethodLength">
<property name="countEmpty" value="false"/>
</module>
<module name="ParameterNumber"/>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="EmptyForIteratorPad"/>
<module name="GenericWhitespace"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter">
<property name="tokens" value="AT, INC, DEC, UNARY_MINUS, UNARY_PLUS, BNOT, LNOT, DOT, ARRAY_DECLARATOR, INDEX_OP"/>
</module>
<module name="NoWhitespaceBefore">
<property name="tokens" value="COMMA, SEMI, POST_INC, POST_DEC, ELLIPSIS, LABELED_STAT"/>
</module>
<module name="OperatorWrap"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<!-- Modifier Checks -->
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
<module name="ModifierOrder"/>
<!-- <module name="RedundantModifier"/> -->
<!-- Checks for blocks. You know, those {}'s -->
<!-- See http://checkstyle.sf.net/config_blocks.html -->
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock"/>
<module name="LeftCurly"/>
<module name="NeedBraces"/>
<!-- <module name="RightCurly"/> -->
<!-- Checks for common coding problems -->
<!-- See http://checkstyle.sf.net/config_coding.html -->
<!-- <module name="AvoidInlineConditionals"/> -->
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="HiddenField">
<property name="ignoreConstructorParameter" value="true"/>
<property name="ignoreSetter" value="true"/>
</module>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MissingSwitchDefault"/>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<!-- Checks for class design -->
<!-- See http://checkstyle.sf.net/config_design.html -->
<!-- <module name="DesignForExtension"/> -->
<module name="FinalClass"/>
<!-- <module name="HideUtilityClassConstructor"/> -->
<module name="InterfaceIsType"/>
<module name="VisibilityModifier">
<property name="protectedAllowed" value="true"/>
<property name="packageAllowed" value="true"/>
</module>
<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<module name="ArrayTypeStyle"/>
<!-- <module name="FinalParameters"/> -->
<module name="TodoComment"/>
<module name="UpperEll"/>
</module>
</module>

Binary file not shown.

Binary file not shown.

Binary file not shown.

2253
sources/pmd.xml 100644

File diff suppressed because it is too large Load Diff

132
sources/pom.xml 100644
View File

@ -0,0 +1,132 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.hs_mannheim.pr2</groupId>
<artifactId>solutions</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>PR2 Excercises</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<junit.jupiter.version>5.9.1</junit.jupiter.version>
<junit.platform.version>1.9.1</junit.platform.version>
</properties>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<build>
<defaultGoal>install</defaultGoal>
<directory>${basedir}/target</directory>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.2.0</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>10.4</version>
</dependency>
</dependencies>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.19.0</version>
<configuration>
<rulesets>
<ruleset>./pmd.xml</ruleset>
</rulesets>
<failOnViolation>true</failOnViolation>
<printFailingErrors>true</printFailingErrors>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<!--
<dependency>
<groupId>de.smits_net.games</groupId>
<artifactId>game-framework</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
-->
<dependency>
<groupId>com.github.thomsmits</groupId>
<artifactId> game-framework</artifactId>
<version>v1.0</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
<version>${junit.platform.version}</version>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>4.12.0-M4</version>
</dependency>
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.3</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,6 @@
package pr2.auffrischung.grossmacher;
public class Grossmacher {
// TODO: main-Methode implementieren
}

View File

@ -0,0 +1,19 @@
package pr2.auffrischung.labeled_break;
public class ArraySucher {
/**
* Sucht das erste Element, dass nicht 0 ist.
*
* @param array das Array in dem gesucht werden soll
* @return {@code true}, wenn ein Element gefunden wird,
* andernfalls {@code false}.
*/
public boolean suche(int[][] array) {
boolean found = false;
// TODO: Methodenrumpf schreiben
return found;
}
}

View File

@ -0,0 +1,22 @@
package pr2.auffrischung.password;
public class PasswortChecker {
public static int checkPassword(String password) {
int points = 0;
// TODO: Methode implementieren
return points;
}
public static void main(String[] args) {
System.out.println(checkPassword("mutti"));
System.out.println(checkPassword("Mutti"));
System.out.println(checkPassword("mutti123"));
System.out.println(checkPassword("Mutti123"));
System.out.println(checkPassword("Mutti123!%"));
System.out.println(checkPassword("1234"));
}
}

View File

@ -0,0 +1,18 @@
package pr2.auffrischung.printf;
public class DoubleFormatter {
public static void printDouble(double d) {
// TODO: Wert ausgeben
}
public static void main(String[] args) {
printDouble(1.0);
printDouble(10.1);
printDouble(2.01);
printDouble(2.001);
printDouble(2.0001);
printDouble(2.0004);
printDouble(2.0005);
}
}

View File

@ -0,0 +1,19 @@
package pr2.auffrischung.suchemax;
public class GroessteZahl {
public int sucheMax(int[] zahlen) {
int max = 0;
// TODO: Methode implementieren
return max;
}
public static void main(String[] args) {
GroessteZahl g = new GroessteZahl();
System.out.println(g.sucheMax(new int[] {1, 5, 8, 2, 0}));
System.out.println(g.sucheMax(new int[] {-1, -5, -8, -2, -20}));
System.out.println(g.sucheMax(new int[] {10000, -10000, 1, 2, 33}));
}
}

View File

@ -0,0 +1,18 @@
package pr2.auffrischung.taschenrechner;
public class Taschenrechner {
public double rechne(double o1, char op, double o2) {
// TODO: Implementieren
return 0.0;
}
public static void main(String[] args) {
Taschenrechner t = new Taschenrechner();
System.out.println(t.rechne(1, '+', 2));
System.out.println(t.rechne(1, '-', 2));
System.out.println(t.rechne(2, '*', 2));
System.out.println(t.rechne(4, '/', 2));
System.out.println(t.rechne(2, '^', 32));
}
}

View File

@ -0,0 +1,57 @@
package pr2.collections.iterator;
import java.util.Iterator;
/**
* Eine einfache, naive Stack Implementierung.
*
* @param <T> Typ, der gespeichert werden soll.
*/
public class SimpleStack<T> {
// TODO: implements Iterable<T> hinzufügen
// Variablen sind nicht private wegen Zugriff durch den Iterator
T[] stack;
int pos;
/**
* Legt einen neuen Stack mit der gegebenen Größe an.
*
* @param size Größe des Stacks.
*/
@SuppressWarnings("unchecked")
public SimpleStack(int size) {
stack = (T[]) new Object[size];
pos = 0;
}
/**
* Fügt dem Stack ein neues Element hinzu.
*
* @param o Element, das hinzugefügt werden soll.
*/
public void push(T o) {
stack[pos++] = o;
}
/**
* Holt das oberste Element und entfernt es.
*
* @return das oberste Element
*/
public T pop() {
return stack[--pos];
}
/**
* Gibt das oberste Element zurück, ohne es zu entfernen.
*
* @return das oberste Element
*/
public T peek() {
return stack[pos - 1];
}
// TODO: Interface Iterable<T> implementieren
}

View File

@ -0,0 +1,87 @@
package pr2.collections.iterator.test;
import org.junit.jupiter.api.Test;
import pr2.collections.iterator.SimpleStack;
import java.util.Iterator;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Test für den Stack.
*/
public class SimpleStackTest {
/**
* Testet den Stack an sich.
*/
@Test
void testStack() {
SimpleStack<String> s = new SimpleStack<>(10);
s.push("A");
s.push("B");
s.push("C");
s.push("D");
assertEquals("D", s.peek());
assertEquals("D", s.pop());
assertEquals("C", s.pop());
assertEquals("B", s.pop());
s.push("A2");
s.push("A3");
assertEquals("A3", s.peek());
assertEquals("A3", s.pop());
assertEquals("A2", s.pop());
assertEquals("A", s.pop());
}
// TODO: Einkommentieren
//
// /**
// * Testet den Iterator.
// */
// @Test
// void testIterator() {
// SimpleStack<String> s = new SimpleStack<>(10);
// s.push("A");
// s.push("B");
// s.push("C");
// s.push("D");
//
// String[] result = new String[5];
// int count = 0;
//
// for (String string : s) {
// result[count++] = string;
// }
//
// assertEquals("D", s.peek());
//
// assertEquals("D", result[0]);
// assertEquals("C", result[1]);
// assertEquals("B", result[2]);
// assertEquals("A", result[3]);
//
// s.push("E");
//
// Iterator<String> it = s.iterator();
//
// count = 0;
// while (it.hasNext()) {
// result[count++] = it.next();
// }
//
// assertEquals("E", result[0]);
// assertEquals("D", result[1]);
// assertEquals("C", result[2]);
// assertEquals("B", result[3]);
// assertEquals("A", result[4]);
//
// assertFalse(it.hasNext());
//
// it = s.iterator();
//
// assertTrue(it.hasNext());
// }
}

View File

@ -0,0 +1,159 @@
package pr2.collections.list;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* Klassen, um die in einem Text vorkommenden Wörter zu sammeln.
*/
public class WordCollector {
/**
* Listet alle Worte in der Datei alphabetisch auf. Duplikate werden
* entfernt. Die Wörter werden in Kleinbuchstaben umgewandelt.
*
* @param filename Dateiname
* @return die Liste der vorhandenen Wort
* @throws IOException Fehler beim Dateizugriff.
*/
public static String[] listWords(String filename) throws IOException {
String[] allWords = readFileAndSplitIntoWords(filename);
String[] result = removeDuplicates(allWords);
return result;
}
/**
* Listet alle Worte in der Datei auf.
*
* @param filename Dateiname
* @return die Liste der vorhandenen Wort
* @throws IOException Fehler beim Dateizugriff.
*/
private static String[] readFileAndSplitIntoWords(String filename)
throws IOException {
// Datei zum Lesen öffnen
BufferedReader reader = new BufferedReader(
new FileReader(filename));
String line; // aktuelle Zeile
String[] wordBuffer = new String[100]; // Puffer für die Worte
int pos = 0; // Position im Word-Puffer
// Über die Zeilen der Datei iterieren
while ((line = reader.readLine()) != null) {
// Sonderzeichen entfernen und die Zeilen in Worte splitten
line = line.toLowerCase();
line = line.replaceAll("[\",.:'\\-\\!?]", "");
String[] words = line.toLowerCase().split("[,. ]");
// Worte in den Puffer übertragen
for (String word : words) {
if (pos >= wordBuffer.length) {
// Puffer ist voll, vergrößern
String[] newBuffer =
new String[wordBuffer.length * 2];
System.arraycopy(wordBuffer, 0, newBuffer,
0, wordBuffer.length);
wordBuffer = newBuffer;
}
wordBuffer[pos++] = word;
}
}
reader.close();
// Ergebnis-Array mit der richtigen Größe anlegen
String[] result = new String[pos];
System.arraycopy(wordBuffer, 0, result, 0, pos);
return result;
}
/**
* Sortiert das übergebene Array alphabetisch und entfernt Duplikate.
*
* @param input Eingabe Array
* @return sortiertes und bereinigtes Array
*/
private static String[] removeDuplicates(String[] input) {
// Eingabe Array clonen, da es verändert wird (Seiteneffekt)
String[] strings = input.clone();
// Array sortieren
Arrays.sort(strings);
// Über die Einträge laufen
for (int i = 0; i < strings.length; i++) {
String word = strings[i];
if (word == null) {
// Bereits entfernter Eintrag
continue;
}
// Über die Einträge laufen
for (int k = i + 1; k < strings.length; k++) {
String otherWord = strings[k];
if (otherWord == null) {
// Bereits entfernter Eintrag
continue;
}
else if (otherWord.compareTo(word) > 0) {
// Sind schon hinter der möglichen Position
break;
}
else if (otherWord.equals(word)) {
// Duplikat, ausnullen
strings[k] = null;
}
}
}
// Ausgenullte Einträge entfernen
int pos = 0;
String[] temp = new String[strings.length];
for (int i = 0; i < strings.length; i++) {
if (strings[i] != null) {
temp[pos++] = strings[i];
}
}
// Ergebnis auf die richtige Länge bringen
String[] result = new String[pos];
System.arraycopy(temp, 0, result, 0, pos);
return result;
}
/**
* Hauptmethode.
*
* @param args Kommandozeilen-Argumente.
*/
public static void main(String[] args) {
try {
String[] words = listWords(
"kafka.txt");
System.out.println(Arrays.toString(words));
}
catch (IOException e) {
System.err.println("Probleme beim Dateizugriff: " + e);
}
}
}

View File

@ -0,0 +1,39 @@
package pr2.collections.list_iterator;
import java.util.Iterator;
public class Liste<T> implements Iterable<T> {
static class Item<T> {
T element;
Item<T> next;
public Item(T element) {
this.element = element;
}
}
Item<T> first;
Item<T> last;
// TODO: Klasse ListenIterator implementieren
public void add(T element) {
Item<T> item = new Item<T>(element);
first = (first != null) ? first : item;
if (last == null) {
last = item;
} else {
last.next = item;
last = item;
}
}
@Override
public Iterator<T> iterator() {
return null;
// TODO: neuen ListenIterator zurück geben
}
}

View File

@ -0,0 +1,76 @@
package pr2.collections.map;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Zählen von Worthäufigkeiten.
*/
public class WordCount {
/**
* Listet alle Worte in der Datei und deren Häufigkeit auf.
* Die zurückgegebene Liste ist bereits nach der Häufigkeit
* sortiert.
*
* @param filename Dateiname
* @return die Liste der vorhandenen Wörter
* @throws IOException Fehler beim Dateizugriff.
*/
private static List<WordFrequency> countWords(String filename)
throws IOException {
// TODO: Map deklarieren
// Datei zum Lesen öffnen
BufferedReader reader = new BufferedReader(new FileReader(filename));
String line; // aktuelle Zeile
// Über die Zeilen der Datei iterieren
while ((line = reader.readLine()) != null) {
// Sonderzeichen entfernen und die Zeilen in Worte splitten
line = line.toLowerCase();
line = line.replaceAll("[\",.:;)'\\-!?]", "");
String[] words = line.toLowerCase().split("[,. ]");
for (String word : words) {
// TODO: Worthäufigkeiten in Map speichern
}
}
reader.close();
// TODO: Worthäufigkeiten aus der Map extrahieren und sortieren
// TODO: Ergebnis zurückgeben
return null;
}
/**
* Hauptmethode.
*
* @param args Kommandozeilen-Argumente.
*/
public static void main(String[] args) {
try {
List<WordFrequency> words = countWords(
"kafka.txt");
for (WordFrequency word : words) {
System.out.println(word);
}
} catch (IOException e) {
System.err.println("Probleme beim Dateizugriff: " + e);
}
}
}

View File

@ -0,0 +1,45 @@
package pr2.collections.map;
/**
* Klasse für die Verwaltung der Worthäufigkeiten.
*/
public class WordFrequency {
// TODO: Sortierbar machen [Comparable]
/**
* Das Wort.
*/
String word;
/**
* Seine Häufigkeit.
*/
int frequency;
/**
* Legt ein neues Objekt an.
*
* @param word das gespeicherte Wort
* @param frequency die Häfigkeit
*/
WordFrequency(String word, int frequency) {
this.word = word;
this.frequency = frequency;
}
/**
* Erhöht die Häufigkeit des Wortes.
*/
public void incrementFrequency() {
frequency++;
}
/**
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return String.format("%s: %d", word, frequency);
}
}

View File

@ -0,0 +1,12 @@
package pr2.collections.reverser;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Reverser {
public void reverse(List<String> liste) {
// TODO: Liste umgekehrt sortieren
}
}

View File

@ -0,0 +1,18 @@
package pr2.collections.reverser.test;
import org.junit.jupiter.api.Test;
import pr2.collections.reverser.Reverser;
import java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ReverserTest {
@Test
void testReverser() {
// TODO: Reverser testen
}
}

View File

@ -0,0 +1,13 @@
package pr2.collections.reverser_generic;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Reverser {
public void reverse(List<String> liste) {
// TODO: Liste umgekehrt sortieren
}
}

View File

@ -0,0 +1,18 @@
package pr2.collections.reverser_generic.test;
import org.junit.jupiter.api.Test;
import pr2.collections.reverser_generic.Reverser;
import java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ReverserTest {
@Test
void testReverser() {
// TODO: Reverser testen
}
}

View File

@ -0,0 +1,158 @@
package pr2.collections.set;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* Klassen, um die in einem Text vorkommenen Wörter zu sammeln.
*/
public class WordCollector {
/**
* Listet alle Worte in der Datei alphabetisch auf. Duplikate werden
* entfernt. Die Wörter werden in Kleinbuchstaben umgewandelt.
*
* @param filename Dateiname
* @return die Liste der vorhandenen Wort
* @throws IOException Fehler beim Dateizugriff.
*/
public static String[] listWords(String filename) throws IOException {
String[] allWords = readFileAndSplitIntoWords(filename);
String[] result = removeDuplicates(allWords);
return result;
}
/**
* Listet alle Worte in der Datei auf.
*
* @param filename Dateiname
* @return die Liste der vorhandenen Wort
* @throws IOException Fehler beim Dateizugriff.
*/
private static String[] readFileAndSplitIntoWords(String filename)
throws IOException {
// Datei zum Lesen öffnen
BufferedReader reader = new BufferedReader(
new FileReader(filename));
String line; // aktuelle Zeile
String[] wordBuffer = new String[100]; // Puffer für die Worte
int pos = 0; // Position im Word-Puffer
// Über die Zeilen der Datei iterieren
while ((line = reader.readLine()) != null) {
// Sonderzeichen entfernen und die Zeilen in Worte splitten
line = line.replaceAll("[\",.:'\\-!?]", "");
String[] words = line.toLowerCase().split("[,. ]");
// Worte in den Puffer übertragen
for (String word : words) {
if (pos >= wordBuffer.length) {
// Puffer ist voll, vergrößern
String[] newBuffer =
new String[wordBuffer.length * 2];
System.arraycopy(wordBuffer, 0, newBuffer,
0, wordBuffer.length);
wordBuffer = newBuffer;
}
wordBuffer[pos++] = word;
}
}
reader.close();
// Ergebnis-Array mit der richtigen Größe anlegen
String[] result = new String[pos];
System.arraycopy(wordBuffer, 0, result, 0, pos);
return result;
}
/**
* Sortiert das übergebene Array alphabetisch und entfernt Duplikate.
*
* @param input Eingabe Array
* @return sortiertes und bereinigtes Array
*/
private static String[] removeDuplicates(String[] input) {
// Eingabe Array clonen, da es verändert wird (Seiteneffekt)
String[] strings = input.clone();
// Array sortieren
Arrays.sort(strings);
// Über die Einträge laufen
for (int i = 0; i < strings.length; i++) {
String word = strings[i];
if (word == null) {
// Bereits entfernter Eintrag
continue;
}
// Über die Einträge laufen
for (int k = i + 1; k < strings.length; k++) {
String otherWord = strings[k];
if (otherWord == null) {
// Bereits entfernter Eintrag
continue;
}
else if (otherWord.compareTo(word) > 0) {
// Sind schon hinter der möglichen Position
break;
}
else if (otherWord.equals(word)) {
// Duplikat, ausnullen
strings[k] = null;
}
}
}
// Ausgenullte Einträge entfernen
int pos = 0;
String[] temp = new String[strings.length];
for (int i = 0; i < strings.length; i++) {
if (strings[i] != null) {
temp[pos++] = strings[i];
}
}
// Ergebnis auf die richtige Länge bringen
String[] result = new String[pos];
System.arraycopy(temp, 0, result, 0, pos);
return result;
}
/**
* Hauptmethode.
*
* @param args Kommandozeilen-Argumente.
*/
public static void main(String[] args) {
try {
String[] words = listWords("kafka.txt");
System.out.println(Arrays.toString(words));
}
catch (IOException e) {
System.err.println("Probleme beim Dateizugriff: " + e);
}
}
}

View File

@ -0,0 +1,12 @@
package pr2.collections.sorter_1;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandLineSorter {
public static void main(String[] args) {
// TODO: Sortierung der Argumente durchführen
}
}

View File

@ -0,0 +1,12 @@
package pr2.collections.sorter_2;
import java.util.Arrays;
import java.util.Set;
import java.util.TreeSet;
public class CommandLineSorter {
public static void main(String[] args) {
// TODO: Sortierung der Argumente durchführen
}
}

View File

@ -0,0 +1,58 @@
package pr2.collections.sortieren;
import java.util.Arrays;
import java.util.Comparator;
/**
* Klasse zum Sortieren von Strings.
*/
public class Sorter {
/**
* Liefert einen Comparator für Strings.
*
* @param order Sortierreihenfolge.
* @return Comparator, entsprechend der gewünschten Sortierreihenfolge.
*/
private static Comparator<String> stringComparator(final SortOrder order) {
// TODO: Methode implementieren
return null;
}
/**
* Sortiert das übergebene Array entsprechend der gewünschten Reihenfolge.
*
* @param array das zu sortierende Array.
* @param order die Sortierreihenfolge.
*/
public static void sort(String[] array, SortOrder order) {
Arrays.sort(array, stringComparator(order));
}
/**
* Sortierreihenfolge für die Strings.
*/
public enum SortOrder {
/**
* Aufsteigend.
*/
ASCENDING,
/**
* Absteigend.
*/
DESCENDING,
/**
* Aufsteigend, ohne Beachtung der Groß-/Kleinschreibung.
*/
ASCENDING_CASE_INSENSITIVE,
/**
* Absteigend, ohne Beachtung der Groß-/Kleinschreibung.
*/
DESCENDING_CASE_INSENSITIVE
}
}

View File

@ -0,0 +1,75 @@
package pr2.collections.sortieren.test;
import org.junit.jupiter.api.Test;
import pr2.collections.sortieren.Sorter;
import pr2.collections.sortieren.Sorter.SortOrder;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
/**
* Test für die Sortierung.
*/
public class SorterTest {
private static final String[] DATA =
{"aaron", "ALFONS", "bond", "BerND", "henry", "Hugo"};
/**
* Testet die Sortierung: aufsteigend.
*/
@Test
void testAscendingSorting() {
String[] asc = DATA.clone();
Sorter.sort(asc, SortOrder.ASCENDING);
assertArrayEquals(
new String[] {"ALFONS", "BerND", "Hugo", "aaron", "bond",
"henry"}, asc);
}
/**
* Testet die Sortierung: Absteigend.
*/
@Test
void testDescendingSorting() {
String[] desc = DATA.clone();
Sorter.sort(desc, SortOrder.DESCENDING);
assertArrayEquals(
new String[] {"henry", "bond", "aaron", "Hugo", "BerND",
"ALFONS"}, desc);
}
/**
* Testet die Sortierung: Aufsteigend, CI.
*/
@Test
void testAscendingCISorting() {
String[] ascCI = DATA.clone();
Sorter.sort(ascCI, SortOrder.ASCENDING_CASE_INSENSITIVE);
assertArrayEquals(
new String[] {"aaron", "ALFONS", "BerND", "bond", "henry",
"Hugo"}, ascCI);
}
/**
* Testet die Sortierung: Absteigend, CI.
*/
@Test
void testDescendingCISorting() {
String[] descCI = DATA.clone();
Sorter.sort(descCI, SortOrder.DESCENDING_CASE_INSENSITIVE);
assertArrayEquals(
new String[] {"Hugo", "henry", "bond", "BerND", "ALFONS",
"aaron"}, descCI);
}
}

View File

@ -0,0 +1,12 @@
package pr2.collections.woerterbuch;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class Woerterbuch {
public static void main(String[] args) {
}
}

View File

@ -0,0 +1,52 @@
package pr2.enums.eigene;
import java.util.Random;
/**
* Ein einfacher Würfel.
*/
public class Wuerfel {
/** 4-seitiger Würfel. */
public static final int D4 = 4;
/** 6-seitiger Würfel. */
public static final int D6 = 6;
/** 8-seitiger Würfel. */
public static final int D8 = 8;
/** 10-seitiger Würfel. */
public static final int D10 = 10;
/** 12-seitiger Würfel. */
public static final int D12 = 13;
/**
* Zufallszahlengenerator.
*/
private final Random rnd = new Random();
/**
* Anzahl der Seiten des Würfels.
*/
private final int numSides;
/**
* Einen neuen Würfel anlegen.
*
* @param typ Anzahl der Seiten des Würfels.
*/
public Wuerfel(int numSides) {
this.numSides = numSides;
}
/**
* Den Würfel werfen.
*
* @return Ergebnis des Wurfes.
*/
public int roll() {
return rnd.nextInt(numSides) + 1;
}
}

View File

@ -0,0 +1,59 @@
package pr2.enums.eigene.test;
import org.junit.jupiter.api.Test;
import pr2.enums.eigene.Wuerfel;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Test für die Würfel.
*/
public class WuerfelTest {
/**
* Anzahl der Durchläufe (Gesetz der großen Zahl!).
*/
private static final int RUNS = 10000000;
@Test
void testFairnessD4() {
internalTestFairness(new Wuerfel(Wuerfel.D4), 2.5);
}
@Test
void testFairnessD6() {
internalTestFairness(new Wuerfel(Wuerfel.D6), 3.5);
}
@Test
void testFairnessD8() {
internalTestFairness(new Wuerfel(Wuerfel.D8), 4.5);
}
@Test
void testFairnessD10() {
internalTestFairness(new Wuerfel(Wuerfel.D10), 5.5);
}
@Test
void testFairnessD12() {
internalTestFairness(new Wuerfel(Wuerfel.D12), 6.5);
}
/**
* Interne Hilfsmethode, um die Fairness zu testen.
*
* @param w der zu testende Wuerfel.
* @param expected Erwartungswert.
*/
private void internalTestFairness(Wuerfel w, double expected) {
long sum = 0;
for (int i = 0; i < RUNS; i++) {
sum += w.roll();
}
double average = (double) sum / (double) RUNS;
assertEquals(expected, average, 0.1);
}
}

View File

@ -0,0 +1,5 @@
package pr2.enums.filme;
public enum LieblingsFilme {
}

View File

@ -0,0 +1,7 @@
package pr2.enums.filme;
public class Main {
public static void main(String[] args) {
// TODO: Alle Filme ausgeben
}
}

View File

@ -0,0 +1,4 @@
package pr2.enums.schnick;
public enum Move {
}

View File

@ -0,0 +1,11 @@
package pr2.enums.schnick;
import java.util.Random;
import java.util.Scanner;
/**
* Schick - Schnack - Schnuck (Rock - Paper - Scissors).
*/
public class SchnickSchnackSchnuck {
}

View File

@ -0,0 +1,7 @@
package pr2.enums.singleton;
enum MyEnum {
A,
B,
C;
}

View File

@ -0,0 +1,8 @@
package pr2.enums.singleton;
public class SingletonBeweis {
public static void main(String[] args) {
// TODO: Singleton-Eigenschaft zeigen
}
}

View File

@ -0,0 +1,164 @@
package pr2.exceptions.ausnahmen_testen;
/**
* Implementierung einer Caesar-Verschlüsselung.
* <p>
* Der Eingabetext ({@literal message}) darf nur aus den Groß-Buchstaben A-Z
* bestehen. Alle anderen Zeichen (einschließlich der Leerzeichen) führen zu
* einer entsprechenden Ausnahme.
* <p>
* Dasselbe gilt für die Entschlüsselung. Auch hier dürfen nur gültige
* Zeichen auftauchen. Andernfalls kommt es zu einer Ausnahme.
* <p>
* Der Schlüssel darf nur aus einem einzelnen Zeichen bestehen und muss
* ebenfalls aus dem Bereich A-Z stammen. Kleinbuchstaben oder andere
* Zeichen führen zu einer Ausnahme.
* <p>
* Zwischen den beiden Methoden muss bei gleichem Schlüssel {@code key}
* folgendes gelten:
* <p>
* {@code text.equals(decrypt(key, encrypt(key, text)) == true}.
*/
public class CrypterCaesar {
/**
* Gültige Zeichen für Schlüssel und Text.
*/
protected static final String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
/**
* Verschlüsselt den gegebenen Text mit dem angegebenen Schlüssel.
*
* @param key Schlüssel, der verwendet werden soll.
* @param message Nachricht, die Verschlüsselt werden soll.
* @return verschlüsselter Text.
* @throws IllegalMessageException Wird geworfen, wenn die
* Nachricht ungültig ist.
* @throws IllegalKeyException Wird geworfen, wenn der Schlüssel
* ungültig ist.
*/
public String encrypt(String key, String message)
throws IllegalMessageException, IllegalKeyException {
checkKeyAndMessage(key, message);
int shift = key.charAt(0) - 'A' + 1;
return shift(message, shift);
}
/**
* Entschlüsselt den gegebenen Text mit dem angegebenen Schlüssel.
*
* @param key Schlüssel, der verwendet werden soll.
* @param cypherText Nachricht, die entschlüsselt werden soll.
* @return entschlüsselter Text.
* @throws IllegalMessageException Wird geworfen, wenn die
* Nachricht ungültig ist.
* @throws IllegalKeyException Wird geworfen, wenn der Schlüssel
* ungültig ist.
*/
public String decrypt(String key, String cypherText)
throws IllegalKeyException, IllegalMessageException {
checkKeyAndMessage(key, cypherText);
int shift = key.charAt(0) - 'A' + 1;
return shift(cypherText, -shift);
}
/**
* Verschiebt die Zeichen im Text um den gegebenen Faktor.
*
* @param text Nachricht
* @param shift Verschiebefaktor
* @return das Ergebnis als String
*/
private String shift(String text, int shift) {
StringBuilder result = new StringBuilder();
for (char c : text.toCharArray()) {
char newChar = (char) (c + shift);
if (newChar > 'Z') {
// Überlauf nach hinten
newChar = (char) (newChar - ('Z' - 'A' + 1));
}
else if (newChar < 'A') {
// Überlauf nach vorne
newChar = (char) (newChar + ('Z' - 'A' + 1));
}
result.append(newChar);
}
return result.toString();
}
/**
* Prüft Schlüssel und Nachricht.
*
* @param key der Schlüssel
* @param message die Nachricht
* @throws IllegalKeyException Schlüssel nicht OK
* @throws IllegalMessageException Nachricht nicht OK
*/
private void checkKeyAndMessage(String key, String message)
throws IllegalKeyException, IllegalMessageException {
if (!checkKey(key)) {
throw new IllegalKeyException(key);
}
if (!checkCharacters(message, ALPHABET)) {
throw new IllegalMessageException(key);
}
}
/**
* Testet den Schlüssel auf Korrektheit: Er muss mindestens die Länge 1
* haben und darf nur Zeichen von A-Z enthalten.
*
* @param key zu testender Schlüssel
* @return {@code true} if characters are ok, otherwise {@code false}
*/
protected boolean checkKey(String key) {
if (key.length() != 1) {
return false;
}
return checkCharacters(key, ALPHABET);
}
/**
* Checks the given input to ensure that it only contains the given
* character set and no other characters.
*
* @param inputChars the string to be checked
* @param charSet a string containing all allowed characters
* @return {@code true} if characters are ok, otherwise {@code false}
*/
protected boolean checkCharacters(char[] inputChars, String charSet) {
for (char c : inputChars) {
if (charSet.indexOf(c) == -1) {
return false;
}
}
return true;
}
/**
* Checks the given input to ensure that it only contains the given
* character set and no other characters.
*
* @param input the string to be checked
* @param charSet a string containing all allowed characters
* @return {@code true} if characters are ok, otherwise {@code false}
*/
protected boolean checkCharacters(String input, String charSet) {
return checkCharacters(input.toCharArray(), charSet);
}
}

View File

@ -0,0 +1,31 @@
package pr2.exceptions.ausnahmen_testen;
/**
* Ungültiger Schlüssel.
*/
public class IllegalKeyException extends Exception {
/**
* Legt eine neue Ausnahme an.
*/
public IllegalKeyException() {
super();
}
/**
* Legt eine neue Ausnahme an.
*
* @param message die Nachricht.
*/
public IllegalKeyException(String message) {
super(message);
}
/**
* @see java.lang.Throwable#toString()
*/
@Override
public String toString() {
return getMessage();
}
}

View File

@ -0,0 +1,31 @@
package pr2.exceptions.ausnahmen_testen;
/**
* Ungültige Nachricht.
*/
public class IllegalMessageException extends Exception {
/**
* Legt eine neue Ausnahme an.
*/
public IllegalMessageException() {
super();
}
/**
* Legt eine neue Ausnahme an.
*
* @param message die Nachricht.
*/
public IllegalMessageException(String message) {
super(message);
}
/**
* @see java.lang.Throwable#toString()
*/
@Override
public String toString() {
return getMessage();
}
}

View File

@ -0,0 +1,36 @@
package pr2.exceptions.ausnahmen_testen.test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import pr2.exceptions.ausnahmen_testen.CrypterCaesar;
import pr2.exceptions.ausnahmen_testen.IllegalKeyException;
import pr2.exceptions.ausnahmen_testen.IllegalMessageException;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Testklasse für die Verschlüsselung.
*/
public class CaesarTest {
// TODO: Tests für die Ausnahmen hinzufügen
/**
* Testet die Verschlüsselung an sich.
*
* @throws IllegalMessageException Wird geworfen, wenn die
* Nachricht ungültig ist.
* @throws IllegalKeyException Wird geworfen, wenn der Schlüssel
* ungültig ist.
*/
@Test
void testCaesar()
throws IllegalKeyException, IllegalMessageException {
String klarText = "KATHARGOMUSSFALLEN";
CrypterCaesar c = new CrypterCaesar();
assertEquals(klarText, c.decrypt("C", c.encrypt("C", klarText)));
assertEquals("FDHVDU", c.encrypt("C", "CAESAR"));
assertEquals(klarText, c.encrypt("Z", klarText));
}
}

View File

@ -0,0 +1,49 @@
package pr2.exceptions.eigene_ausnahme;
/**
* Eine Sicherung im Stromkreis.
*/
public class Fuse {
/**
* 16 Ampere-Sicherung.
*/
public static final int A16 = 16;
/**
* 25 Ampere-Sicherung.
*/
public static final int A25 = 25;
/**
* 32 Ampere-Sicherung.
*/
public static final int A32 = 32;
/**
* Strom, bei dem die Sicherung auslöst.
*/
private final int tripCurrent;
/**
* Legt eine neue Sicherung an.
*
* @param tripCurrent Strom, bei dem die Sicherung auslösen soll.
* @throws IllegalCurrentException Ausnahme bei einem
* ungültigen Spannungswert.
*/
public Fuse(int tripCurrent) {
// TODO: IllegalCurrentException werfen, wenn der Strom ungültig ist
this.tripCurrent = tripCurrent;
}
/**
* Die Sicherung benutzen.
*
* @param current Strom, der durch die Sicherung fließt.
* @throws FuseTrippedException wird geworfen, wenn der Srom zu groß wird.
*/
public void use(int current) {
// TODO: FuseTrippedException werfen, wenn der Strom zu groß ist
}
}

View File

@ -0,0 +1,9 @@
package pr2.exceptions.eigene_ausnahme;
/**
* Ausnahme, wenn die Sicherung auslöst.
*/
public class FuseTrippedException {
// TODO: zu einer Ausnahme machen
// TODO: Nennstrom und Auslösestrom speichern und in toString wieder ausgeben
}

View File

@ -0,0 +1,9 @@
package pr2.exceptions.eigene_ausnahme;
/**
* Ausnahme, wenn eine Sicherung angelegt werden soll, die es nicht gibt.
*/
public class IllegalCurrentException {
// TODO: zu einer Ausnahme machen
// TODO: Nennstrom speichern, mit dem die Sicherung angelegt werden sollte.
}

View File

@ -0,0 +1,159 @@
package pr2.exceptions.eigene_ausnahme.test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import pr2.exceptions.eigene_ausnahme.Fuse;
import pr2.exceptions.eigene_ausnahme.FuseTrippedException;
import pr2.exceptions.eigene_ausnahme.IllegalCurrentException;
/**
* Testet die Sicherung.
*/
public class FuseTest {
// TODO: Quellcode wieder einkommentieren
//
// /**
// * Testet die Erzeugung von Sicherungen mit gültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid() throws IllegalCurrentException {
// new Fuse(Fuse.A16);
// new Fuse(Fuse.A25);
// new Fuse(Fuse.A32);
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid1() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(15);
// });
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid2() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(-1);
// });
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid3() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(0);
// });
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid4() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(Integer.MAX_VALUE);
// });
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid5() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(Integer.MIN_VALUE);
// });
// }
//
// /**
// * Testet das Auslösen der Sicherung.
// *
// * @throws FuseTrippedException Sicherung hat ausgelöst.
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testTripping1()
// throws FuseTrippedException, IllegalCurrentException {
//
// Fuse f = new Fuse(Fuse.A16);
// f.use(5);
// f.use(16);
// f.use(0);
//
// f = new Fuse(Fuse.A25);
// f.use(5);
// f.use(16);
// f.use(25);
//
//
// Assertions.assertThrows(FuseTrippedException.class, () -> {
// Fuse f2 = new Fuse(Fuse.A16);
// f2.use(0);
// f2.use(16);
// f2.use(25);
// });
// }
//
// /**
// * Testet das Auslösen der Sicherung.
// *
// * @throws FuseTrippedException Sicherung hat ausgelöst.
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testTripping2()
// throws FuseTrippedException, IllegalCurrentException {
// Assertions.assertThrows(FuseTrippedException.class, () -> {
// new Fuse(Fuse.A16).use(17);
// });
// }
//
// /**
// * Testet das Auslösen der Sicherung.
// *
// * @throws FuseTrippedException Sicherung hat ausgelöst.
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testTripping3()
// throws FuseTrippedException, IllegalCurrentException {
//
// Assertions.assertThrows(FuseTrippedException.class, () -> {
// new Fuse(Fuse.A16).use(Integer.MAX_VALUE);
// });
// }
//
// /**
// * Testet das Auslösen der Sicherung.
// *
// * @throws FuseTrippedException Sicherung hat ausgelöst.
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testTripping4()
// throws FuseTrippedException, IllegalCurrentException {
// Assertions.assertThrows(FuseTrippedException.class, () -> {
// new Fuse(Fuse.A32).use(40);
// });
// }
}

View File

@ -0,0 +1,12 @@
package pr2.exceptions.fakultaet;
public class Fakultaet {
public int fact(int n) {
return factIntern(n);
}
private int factIntern(int n) {
return 0;
}
}

View File

@ -0,0 +1,5 @@
package pr2.exceptions.fakultaet;
public class FakultaetException {
}

View File

@ -0,0 +1,31 @@
package pr2.exceptions.fakultaet.test;
import org.junit.jupiter.api.Test;
import pr2.exceptions.fakultaet.Fakultaet;
import pr2.exceptions.fakultaet.FakultaetException;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class FakultaetTest {
@Test
void testFact() {
Fakultaet f = new Fakultaet();
assertEquals(1, f.fact(0));
assertEquals(1, f.fact(1));
assertEquals(2, f.fact(2));
assertEquals(6, f.fact(3));
assertEquals(24, f.fact(4));
assertEquals(3628800, f.fact(10));
}
@Test
void testFactEx1() {
// TODO: Auf Ausnahme testen
}
@Test
void testFactEx2() {
// TODO: Auf Ausnahme testen
}
}

View File

@ -0,0 +1,104 @@
package pr2.exceptions.handle_or_declare;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
/**
* Anwendung, die die Buchstabenhäufigkeit in einem Text analysiert.
*/
public class Buchstabenzaehler {
/**
* Einstiegspunkt in das Programm.
*
* @param args Kommandozeilenargumente
*/
public static void main(String[] args) {
Buchstabenzaehler bs = new Buchstabenzaehler();
// bs.run();
}
/**
* Startet den Buchstabenzaehler.
*
* @throws StatistikException Fehler bei der Berechnung der
* Buchstabenhäufigkeit.
*/
private void run() {
System.out.print("Bitte geben Sie den Dateinamen an: ");
Scanner scanner = new Scanner(System.in);
String dateiname = scanner.nextLine();
int[] statistik;
// statistik = parseFile("assets/" + dateiname);
// printStatistik(statistik);
// scanner.close();
}
/**
* Druckt die Statistik aus.
*
* @param statistik Statistik
* @throws StatistikException Fehler bei den Eingabedaten
*/
private void printStatistik(int[] statistik) {
// int summe = 0;
//
// for (int haeufigkeit : statistik) {
// summe += haeufigkeit;
// }
//
// double prozentSumme = 0.0;
//
// for (char c = 'a'; c <= 'z'; c++) {
// int anzahl = statistik[c - 'a'];
// double prozent = (double) anzahl / (double) summe * 100;
// System.out.printf("%s: %.2f%% %n", "" + c, prozent);
//
// prozentSumme += prozent;
// }
//
// if ((prozentSumme < 99.0) || (prozentSumme > 101.0)) {
// throw new StatistikException(Double.toString(prozentSumme));
// }
//
// System.out.printf("Summe: %.2f%% %n", prozentSumme);
}
/**
* Analysiert die übergebene Datei und berechnet die Buchstabenhäufigkeit.
*
* @param filename Dateiname
* @return die Buchstabenhäufigkeit. Das 'a' ist das erste Element,
* das 'b' das zweite etc.
* @throws IOException generelles IO-Problem
* @throws FileNotFoundException Datei gibt es nicht
*/
private int[] parseFile(String filename) {
int[] statistik = new int['z' - 'a' + 1];
// BufferedReader br = new BufferedReader(new FileReader(filename));
//
// String line;
//
// while ((line = br.readLine()) != null) {
// char[] chars = line.toLowerCase().toCharArray();
//
// for (char c : chars) {
// if (('a' <= c) && (c <= 'z')) {
// statistik[c - 'a']++;
// }
// }
// }
//
// br.close();
return statistik;
}
}

View File

@ -0,0 +1,31 @@
package pr2.exceptions.handle_or_declare;
/**
* Ausnahme, wenn die Statisitk nicht konsistent ist.
*/
public class StatistikException extends Exception {
/**
* Legt eine neue Ausnahme an.
*/
public StatistikException() {
super();
}
/**
* Legt eine neue Ausnahme an.
*
* @param message die Nachricht.
*/
public StatistikException(String message) {
super(message);
}
/**
* @see java.lang.Throwable#toString()
*/
@Override
public String toString() {
return getMessage();
}
}

View File

@ -0,0 +1,55 @@
package pr2.exceptions.try_catch;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
/**
* Ein simples Zahlenraten-Spiel.
*/
public final class Zahlenraten {
/**
* Liest einen String von der Tastatur.
*
* @return der gelesene String
* @throws IOException Probleme mit der Console
*/
private static String readNumber() throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
return br.readLine();
}
/**
* Hauptmethode.
*
* @param args Kommandozeilenargumente
*/
public static void main(String[] args)
throws NumberFormatException, IOException {
// zu ratende Zahl bestimmen
int zahl = new Random().nextInt(100) + 1;
int versuche = 0;
while (true) {
System.out.print("Bitte geben Sie eine Zahl ein: ");
int geraten = Integer.parseInt(readNumber());
versuche++;
if (geraten < zahl) {
System.out.println("Zu niedrig");
}
else if (geraten > zahl) {
System.out.println("Zu hoch.");
}
else {
System.out.printf("Richtig in %d Versuchen", versuche);
break;
}
}
}
}

View File

@ -0,0 +1,87 @@
package pr2.generics.einfach;
/**
* Eine einfache, verkettete Liste.
*
* @param <T> Typ der gespeicherten Objekte
*/
/**
* Eine einfache, verkettete Liste.
*/
public class Liste {
/** Referenz auf den ersten Knoten. */
private ListeNode first;
/** Referenz auf den aktuellen Knoten. */
private ListeNode current;
/**
* Fügt ein neues Element an das Ende der Liste an.
*
* @param data das Element
*/
public void add(Object data) {
ListeNode nextNode = new ListeNode(data);
if (current == null) {
// Liste komplett leer
first = nextNode;
current = nextNode;
}
else {
current.next = nextNode;
current = nextNode;
}
}
/**
* Liest das Element an der gegebenen Position.
*
* @param index Index, beginnend bei 0.
* @return Das Element oder {@code null}, wenn es nicht gefunden wurde.
*/
public Object get(int index) {
int count = 0;
ListeNode node = first;
while ((node != null) && (count < index)) {
node = node.next;
count++;
}
if ((count == index) && (node != null)) {
return node.data;
}
else {
// index does not exist
return null;
}
}
/**
* Löscht die Liste und entfernt alle Elemente.
*/
public void clear() {
first = null;
current = null;
}
/**
* Liefert die Anzahl der Elemente der Liste zurück.
*
* @return die Anzahl der Elemente.
*/
public int size() {
int count = 0;
ListeNode node = first;
while (node != null) {
node = node.next;
count++;
}
return count;
}
}

View File

@ -0,0 +1,22 @@
package pr2.generics.einfach;
/**
* Interne Repräsentation der Knoten in der Liste.
*/
class ListeNode {
/** Daten. */
Object data;
/** Referenz auf den nächsten Knoten. */
ListeNode next;
/**
* Legt einen neuen Knoten an.
*
* @param data daten, die gespeichert werden
*/
ListeNode(Object data) {
this.data = data;
}
}

View File

@ -0,0 +1,61 @@
package pr2.generics.einfach.test;
import org.junit.jupiter.api.Test;
import pr2.generics.einfach.Liste;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
/**
* Test für die Liste.
*/
public class ListeTest {
/**
* Testet das Hinzufügen und Löschen der Liste.
*/
@Test
void testAddAndClear() {
Liste l = new Liste();
assertEquals(0, l.size());
l.add("Hallo");
assertEquals(1, l.size());
l.add("Hugo");
assertEquals(2, l.size());
l.add("Peter");
l.add("Alfons");
assertEquals(4, l.size());
l.clear();
assertEquals(0, l.size());
}
/**
* Testet das Lesen von Elementen.
*/
@Test
void testGet() {
Liste l = new Liste();
l.add("Hallo");
l.add("Hugo");
l.add("Peter");
l.add("Alfons");
assertNull(l.get(-1));
assertNull(l.get(4));
assertEquals("Hallo", l.get(0));
assertEquals("Hugo", l.get(1));
assertEquals("Peter", l.get(2));
assertEquals("Alfons", l.get(3));
assertEquals(4, l.size());
l.clear();
assertEquals(0, l.size());
assertNull(l.get(0));
assertNull(l.get(1));
assertNull(l.get(2));
assertNull(l.get(3));
}
}

View File

@ -0,0 +1,16 @@
package pr2.generics.number_pair;
public class Main {
public static void main(String[] args) {
// TODO: Einkommentieren
// var note = new Pair<String, Integer>("Peter", 1);
// var name = new Pair<String, String>("Peter", "Meier");
// var tel = new NumberPair<Integer>(621, 292122);
//
// System.out.printf("%s:%d\n", note.getFirst(), note.getSecond());
//
// System.out.printf("%s %s\n", name.getFirst(), name.getSecond());
//
// System.out.printf("%d %d\n", tel.getFirst(), tel.getSecond());
}
}

View File

@ -0,0 +1,5 @@
package pr2.generics.number_pair;
public class NumberPair {
}

View File

@ -0,0 +1,20 @@
package pr2.generics.number_pair;
public class Pair<T, V> {
private final T first;
private final V second;
public Pair(T first, V second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return first;
}
public V getSecond() {
return second;
}
}

View File

@ -0,0 +1,18 @@
package pr2.generics.pair;
public class Main {
public static void main(String[] args) {
// TODO: Einkommentieren
// var note1 = new Pair<String, Integer>("Peter", 1);
// var note2 = new Pair<String, Integer>("Frank", 3);
// var note3 = new Pair<String, Integer>("Sabine", 1);
//
// var name = new Pair<String, String>("Peter", "Meier");
//
// System.out.printf("%s:%d\n", note1.getFirst(), note1.getSecond());
// System.out.printf("%s:%d\n", note2.getFirst(), note1.getSecond());
// System.out.printf("%s:%d\n", note3.getFirst(), note1.getSecond());
//
// System.out.printf("%s %s\n", name.getFirst(), name.getSecond());
}
}

View File

@ -0,0 +1,5 @@
package pr2.generics.pair;
public class Pair {
}

View File

@ -0,0 +1,20 @@
package pr2.generics.pairlist;
public class Main {
public static void main(String[] args) {
// TODO: Einkommentieren
// var note1 = new Pair<String, Integer>("Peter", 1);
// var note2 = new Pair<String, Integer>("Frank", 3);
// var note3 = new Pair<String, Integer>("Sabine", 1);
//
// var pl = new PairList<String, Integer>(3);
// pl.add(note1);
// pl.add(note2);
// pl.add(note3);
//
// for (int i = 0; i < 3; i++) {
// System.out.printf("%s:%d\n", pl.get(i).getFirst(),
// pl.get(i).getSecond());
// }
}
}

View File

@ -0,0 +1,20 @@
package pr2.generics.pairlist;
public class Pair<T, V> {
private final T first;
private final V second;
public Pair(T first, V second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return first;
}
public V getSecond() {
return second;
}
}

View File

@ -0,0 +1,5 @@
package pr2.generics.pairlist;
public class PairList {
}

View File

@ -0,0 +1,6 @@
package pr2.generics.printer;
import java.util.Collection;
public class CollectionPrinter {
}

View File

@ -0,0 +1,24 @@
package pr2.generics.printer;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
// TODO: Einkommentieren
// List<String> ls = new ArrayList<>();
// List<Integer> li = new ArrayList<>();
// ls.add("PR2");
// ls.add("ist");
// ls.add("cool");
// Set<String> s = new HashSet<>(ls);
// li.add(23);
// li.add(42);
//
// CollectionPrinter.print(ls);
// CollectionPrinter.print(li);
// CollectionPrinter.print(s);
}
}

View File

@ -0,0 +1,6 @@
package pr2.generics.queue;
public class Queue {
// TODO: Klasse gemäß der Aufgabenstellung implementieren
}

View File

@ -0,0 +1,16 @@
package pr2.generics.same_pair;
public class Main {
public static void main(String[] args) {
// TODO: Einkommentieren
// var note = new Pair<String, Integer>("Peter", 1);
// var name = new SamePair<String>("Peter", "Meier");
// var tel = new SamePair<Integer>(621, 2009992);
//
// System.out.printf("%s:%d\n", note.getFirst(), note.getSecond());
//
// System.out.printf("%s %s\n", name.getFirst(), name.getSecond());
//
// System.out.printf("%d %d\n", tel.getFirst(), tel.getSecond());
}
}

View File

@ -0,0 +1,20 @@
package pr2.generics.same_pair;
public class Pair<T, V> {
private final T first;
private final V second;
public Pair(T first, V second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return first;
}
public V getSecond() {
return second;
}
}

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