EECS1720M – W2021
Assignments (Total Weight = 20% of final grade) … in two parts
Overall Goal: To design an interactive GUI application in Java AWT/Swing that supports
and dynamically responds to asynchronous inputs & interactions provided by a user.
The type of application you decide to make is quite open-ended, however, it should support
a minimum amount of features/functionality. The application could be to:
• create a simple game/scene from a game (e.g. create an original game, or
extend/modify a classic 2D arcade style game);
• create a compositional tool (e.g. an interface that supports the
generation/manipulation of a simple artwork – i.e. a paint tool/ editing tool or tool
that uses simple inputs to seed algorithmic art)
• create a simulator (a tool in which a state can be configured and then used to
simulate some physical scenario – e.g. an educational tool)
• create a front end for manipulating some set of data records (e.g. a database
style system, a booking/ordering system, a browser of some collection of
objects/images) - that allows for configuration and storage of a record or multiple
records, that can be formulated into some visual representation/report.
The assignment is broken up into two parts (Assignment 1 & 2). Assignment 1 can be
thought of as a progress stage toward Assignment 2, which has the complete interactive
system.
Assignment 1 [10%] à Graphical User Interface/ Concept Design
Goals: To design an integrated set of GUI layouts that will support the completed
interactive application. The GUI should allow for the state of your application to
be configured/set. It should also support basic ActionEvent handling (so that the
GUI controls can set/report aspects of the state (i.e. set/write fields to console).
Assignment 2 [10%] à Final application (mouse/key support + dynamic content)
Goals: To integrate & expand the interaction in your application to include free
mouse & key interactions (along with interactions on GUI controls), that drive the
presentation of some form of dynamic visual component. For e.g., an animated or
controllable moving element(s), or dynamically loaded/displayed set(s) of visual
elements within a canvas in your application.
Project (ideas) – these are just examples
IDEA #1
• Extend “frogger” example from earlier in the class (to make a
simple java AWT/Swing program).
§ Does not have to be a fully functioning game (just meet
deliverables in previous slide)
§ Should have UI elements (could use buttons to move frog from
bottom to top of screen)
• Could be button(s) in the interface
§ Could have static objects that if the frog collides with an obstacle,
frog loses a life and returns to start
• Losing a life could change state of frog (change graphic/colour)
• UI could keep a count of how many times reached the top
• UI could keep a count of how many lives left, or time, or position of frog
on screen, etc
§ Could also create your own simple game (with a simple end goal)
that involves moving a character about the stage.
Project (ideas) – these are just examples
IDEA #2
• Create a basic “paint” program
§ Does not have to be a fully functioning (just meet deliverables
in previous slide)
§ Should have UI elements (could use buttons to generate
shapes on the screen)
• Could use a UI element to select a colour for the shape
• Shapes could be randomly placed, when hitting button, or could be
placed with a mouse click in the stage window
• Buttons/UI control could be used to select type of shape
§ Could have a button to delete (undo) last shape created
Need more Inspiration?
Classic Arcade Games
[2D is probably better – think older Atari style games - simple]
https://www.classicgamesarcad...
Puzzle Game Ideas/Inspiration
https://www.pinterest.ca/artd...
Other game ideas:
http://inventwithpython.com/b...
ideas-for-game-clones-to-code/
Other:
https://www.dreamincode.net/f...
** survey some ideas of phone applications/games à try to make a simplified version of
some application you use (it does not have to be fully functional, can be a component of)
Project (ideas) – these are just examples
IDEA #3
• Create a program to create records and add them to a list of some
sort
§ Does not have to be a fully functioning (just meet deliverables in previous
slide)
§ Should have UI elements (forms to collect/set properties of an element
you wish to store in the list)
• E.g. creating a record of a person/thing
• Have a button to submit (add) the record to the list
• Have a control to show a list of elements currently stored
• Have a button to output a formatted set of strings to the console (showing all
the elements currently stored)
• Use date picker (the element could be a booking of some sort) – e.g. think
about booking an air ticket
• Use some graphical elements to dress things up a bit
§ Could have a button to delete (undo) last element created or to delete a
specific element
• E.g. select from a drop down menu
WX:codehelp