Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Patterns for decoupling data structures and algorithms
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
Data Structures and Problem Solving Using Java
Data Structures and Problem Solving Using Java
The game of set®: an ideal example for introducing polymorphism and design patterns
Proceedings of the 35th SIGCSE technical symposium on Computer science education
A CS1 to CS2 bridge class using 2D game programming
Journal of Computing Sciences in Colleges
Using classic problems to teach Java framework design
Science of Computer Programming - Special issue: Principles and practices of programming in Java (PPPJ 2004)
Computer games as motivation for design patterns
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Teaching Design Patterns Through Computer Game Development
Journal on Educational Resources in Computing (JERIC)
Computer games and traditional CS courses
Communications of the ACM - Finding the Fun in Computer Science Education
Extensive Evaluation of Using a Game Project in a Software Architecture Course
ACM Transactions on Computing Education (TOCE)
An empirical investigation on the impact of design pattern application on computer game defects
Proceedings of the 15th International Academic MindTrek Conference: Envisioning Future Media Environments
Hi-index | 0.00 |
Designing a two-person game involves identifying the game model to compute the best moves, the user interface (the "view") to play the game, and the controller to coordinate the model and the view. A crucial task is to represent the algorithms used in their highest abstract forms. This can prove to be a difficult and subtle endeavor. It is made easier however by the use of good object-oriented (OO) design principles to help maintain a high level abstract viewpoint during the design process. The state pattern is used to represent the game board and is coupled with the visitor pattern to provide state-dependent, variant behaviors. The min-max algorithm and its variants are implemented as the strategy pattern, which allows flexible and extensible computational capability. Careful analysis is performed to properly abstract the interactions between the model and the view. The command design pattern is used to provide callback services between the model and the view. Leading students through this design process enables them to learn algorithms and architectures that easily scale to full-sized applications.