ENG 06 Matlab Crazy Eights card game

43 阅读5分钟

ENG 06 Final Project 

Up to now in ENG6, we have focused on teaching you the “how” of programming. In the team 

project you will be taking your own ideas and bringing them to fruition through your knowledge 

of computer programming. Software development is rarely a one-person effort, so the project 

will be team-based. Teams can be formed with members of any section. You can form your own 

team of three. No other team size will be allowed. Only if strictly needed, the TAs may form 

smaller teams or add members to teams. Beyond the Core part of the final project, we ask you 

to implement a number of special features, called Reach elements, so as to make your project 

different from your classmates. 

Important: We discourage the use of other Matlab code written by someone else, however, if 

you use it you must reference the code creator. 

Project: Card Game 

 

Project Description: Implement a MATLAB program of a card game of your team’s choice. 

You may create your own rules. The card game must involve more than two players. The 

players should be able to make strategic decisions to win the game. The program should draw 

cards upon request, apply the rules, and score the game. Each team makes decisions on what 

programming elements to use to interact with the users. Special attention should be paid to: 

  1. Clarity on how to play the game. 

  2. How the users should interact with the program. 

  3. The visual, auditory cues and special effects (e.g. animations, a sound clip when the 

cards are drawn, etc.). You are allowed to use simple pictorial representations for each 

card, for example a King of hearts card with a large K and a heart, etc. 

  1. The users should be able to play the game with each other over the internet. 

 

 The implementation of the card game should involve two players at different locations using a 

keyboard or a mouse to play their turn. All projects should have the following elements: 

  1. A graphical user interface. 

  2. An animation. 

  3. A sound effect. 

  4. Make use of a user-defined OOP class in at least one programming element. 

  5. One or more tables. 

  6. The capability to play the game between two, or more, players remotely. 

  7. Clearly indicate in your code and your video where these elements are 

implemented. In your YouTube video, please point out how you implemented some 

features (especially in the Core and the Reach) inside your code. What functions did 

you use? Did you use any data structures such as structs etc? What was challenging 

about implementing a certain feature and why? 

Links to external resources: 

· Controlling Random Number Generation. 

· Play Audio 

Collaboration Policy: Once the teams are formed you are only allowed to talk and collaborate 

with members within 代写ENG 06 Matlab Crazy Eights card game your team. Team members are expected to equally participate, and 

collaboratively work towards the completion of the project. Other than contacting the teaching 

assistants for clarification, you may not seek the assistance of other persons to complete your 

team's project. (Of course, general discussions about how to implement a GUI, OOP, and other 

programming constructs could be discussed with other students, but your team must be totally 

responsible for the implementation of code used in your project). 

Grading Criteria: The projects are open ended. As long as your program can perform the 

assigned tasks, there will be no correct or incorrect approaches. Certainly there will be more 

acceptable and attractive solutions, and these will be judged in comparison with competing 

solutions submitted by your classmates. The final project will be graded in 6 parts: 

  1. Project proposal: Each team submits a 2-3 page project proposal via Canvas 

describing the project they have selected, a general description of how they will implement 

the main components of their project, and a clear description of the Reach features that their 

team proposes. Essentially, the scope of the project should be both challenging enough to 

merit full credit and doable within the timeline. An Appendix should contain a breakdown of 

programming tasks, and who will be responsible for what, along with a timeline that will 

meet the submission deadline (we suggest you make use of a Gantt chart.. The expectation is that each team member must take responsibility for a specific aspect of the project and 

grading for each member will be adjusted according to how the project tasks were delegated 

and who was responsible for what aspects of the project. The more specific you can be in 

defining the programming tasks, what functions should exist, and what each function should 

accomplish, the better. 

  1. Core: Complete the basic project as outlined in the project description. 

For example: Show whose turn it is to play, an image background such as a green table, an 

image showing the card draw outcome, the scores, etc 

● Features of the GUI: 

○ A button to shuffle and draw a card 

○ A button to play a card. 

○ Display scores edit fields 

○ Anything else you need or want to add depending on the game you have 

chosen. 

  1. Reach/Special Features: Implement the project enhancements described in your 

proposal. Your completion of the Core and the creativity of your proposal will be taken into 

account during the grading process. 

● Animations 

○ Drawing a card 

○ Play a card 

○ A scoring system 

○ Others 

● Sound 

○ Shuffling card 

○ Playing a card 

○ A scoring system 

○ Others 

  1. Additional Core Requirement: Remote players and Tables with ThingSpeak: 

● The GUI interface must include a table keeping a record of the rolls for each 

player throughout the game. 

● The capability to play the game between two, or more, players remotely. 

  1. Youtube Video Requirements: Youtube has several examples of ENG6 videos (search 

ENG6). The format of the video is entirely up to your team as long as the following criteria 

are met: 

A. The maximum length of the video is 10 minutes B. Each team member must be seen in the video to present their work and 

contributions 

C. A clear and easy to follow demonstration that shows the correct functionality 

of your program (show your program actually working in the video – not screen 

shots of before and after.) 

D. Use visual aides to help explain your steps (whiteboard, markers, 

poster, etc.). The video does not have to be fancy, just effective in relaying 

the most important information. 

  1. Team Evaluations: Each member must provide a brief personal summary of her/his 

involvement and contributions. Each team member is required to submit evaluations of 

her/his teammates’ contribution, one for each of Core and Reach. For example, if your team 

has members A, B, C, your evaluation can be similar to the following for a single member. 

Team Member A: was in charge of writing the code to execute the equalizer filters. For the 

Reach, A was in charge of adding 2 different analysis plots that could show power spectral 

density plot and frequency content of audio file. Team Members B, C agree that A performed 

these tasks for the project. 

 

Project Deadlines: 

Deadline #1: TBA: Submit the Project Proposal: A team member must submit the project 

proposal. The proposal needs to include project name and names of all team members at the 

beginning. Only one team member should do this! 

The submission should also contain an image of the design view with the main components of 

your game. The image must show the buttons, axes, images, edit fields, etc. 

 

Deadline #2: TBA: Submit the Core. Each team will submit all relevant code files. Each team 

will submit a zip file of all the code, the zip file will have the mlapp. and all .m files, all .img files 

and any other files that are needed for the game to run. 

The submitted .mlapp GUI must allow the game to be played by one or two players using the 

same keyboard. 

Note: The UI components for the remote player locations and tables can be avoided in this 

stage. 

Deadline #3: TBA: Submit the Final Project. The final project must include the Additional 

Core Requirements and the Reach/Special features: Implement tables, remote locations and 

the project extensions described in your proposal. Each team will submit all relevant coding files, a link to Youtube video and team evaluation 

materials. Each team will submit a zip file of all the code, the zip file will have all .mlapp files, all 

.img files and any other files that are needed for the game to run. In addition, it should contain a 

PDF of the team evaluation document. The link of the Youtube should be accessible to all those 

who use the link. 

 

Figure 1: Example of a design view: Crazy Eights card game. 

WX:codinghelp