Code repository used for the "Refactoring Strategies: Beyong the Basics" workshop. Presented at: Agile Brazil 2013, DevNexus 2014, Chicago Coder Conference 2016, and many ThoughtWorks offices.
Refactoring is a fundamental practice for an agile developer. Each refactoring is a small and isolated activity, but the value comes when you perform a sequence of refactorings to effect larger changes. This workshop will guide participants through hands-on exercises designed to teach three essential skills to become good at refactoring: 1) Identifying what needs refactoring: what makes code smell, confusing, or complex? 2) Identifying the end goal: what are the design options and which one will yield the best results? 3) Tracing a strategy to get the code from 1 to 2.
For the workshop, developers should bring their laptop with a basic working Java environment (JDK 1.6+, Eclipse or IntelliJ), have some knowledge about automated testing (JUnit) and refactorings, and optionally spend some time getting familiar with the code base.
The code in this repository was originally written by:
- Danilo Sato (@dtsato)
- Mariana Bravo (@marivb)
A complete and detailed explanation of the original game can be found in the Pacman Dossier.
Done:
New game (splash screen)Draw the mazePacman movementGhost movement (random)Eating dots / counting pointsColision detectionTeleportDetect win or lose (transition screens)Animations (chewing, ghost eyes, pacman dying)
To do:
- Managing lives (1)
- Sounds
- "Cornering": choosing direction before reaching the decision point
- Demo mode
- Manage high-score
- Energizer dots ("frigthening mode")
- Ghost AI (chasing strategies)
This implementation was written by Danilo Sato and Mariana Bravo for educational purposes. PAC-MAN® & © 1980 NAMCO BANDAI Games Inc.
gradle clean
gradle build
cd build\libs
java -jar pacman_workshop.jar