C代写:IERG3080 WPF




WPF is a vast framework. It is impossible to learn them all. In real software engineering, a software engineer will often need to learn on the go what is necessary to accomplish the task at hand. This is the same attitude you should adopt in learning WPF for your project!

To help you cope with your Project better, we actually have a ProjectHints project which contains a bunch of examples which will cover almost all WPF control usages you will need in the topics! Please download the project from blackboard and study it well before you start your project. It will be released in the coming week.

There are four topics. You cannot choose your topic - it is assigned (keep an eye on Blackboard-] announcement). Screenshot is deliberately absent in some cases to encourage creativity.

Topic 1. Whack-a-Mole

Implement a simple time-limited whack-a-mole game with:

  1. A Button to start the game, of course
  2. A Slider to determine the difficulty of the game, affecting BOTH frequency of moles and speed of moles disappearing after appearance
  3. A collection of Buttons to represent the moles
  4. A Timer to do countdown for player and end the game when time is up
  5. A way to show the score of player and potentially top score. The score should be a percentage of hit (e.g. 60%!).

Topic 2. Wheel of Fortune

Implement a Wheel of Fortune game in which you have:

  1. A Canvas that shows a kind of Wheel of Fortune
  2. A Button that rotates the Wheel and another Button that stops the Wheel
  3. A TextBlock that shows the amount of money you currently have.
  4. The Wheel should have at least 4 distinct Colors, each represent the amount of money you earned in this spinning; text is optional. a. Red: $1000 b. Blue: $100 c. Green: $10 d. Grey: -$500 e. You can add additional Colors
  5. Player starts with $1000. If player loses all the money, prompt “Game Over” in some manner and Reset everything.

Topic 3. Typing Game

Implement a Typing Game! If the “words” fall from the top to the bottom then the player is set to be hurt (or you can do other sensible motion). A player should have limited lives.
The game should have:

  1. A Start Button or Starting Screen
  2. Continuously falling “words” that the player have to type correctly to “destroy” (some way to choose the word and type into a TextBox).
  3. A Timer to show when the game will end
  4. A way to show the final score, and the remaining health of player
  5. Some way to make the Background less boring, zombies not needed

Topic 4. Hangman

Implement a Hangman game. In a Hangman game, one keeps drawing a hanged man when guessing a random word. Every time a character is guessed, and if it is in the random word, the character is displayed. If the character is NOT in the random word, a part of the man is drawn. The player wins if the word is complete before the man is fully drawn.
Implement the game with:

  1. A start Button
  2. A guess Button with a ListBox on selecting what to guess; after guess a certain character, that character should NOT appear again in the ListBox
  3. Some way to show the successful guess on the word so far
  4. A Canvas control to draw the hangman

Project (Part I) Submission and Assessment Criteria (Updated)

You have to submit a zipped Visual Studio project and a Word Doc with screenshots of your program (named readme.doc) included in the zip.

Submission Quality Mark
No submission, submission copied from some Internet example, submission that is irrelevant, submission of topic other than the assigned 0
Submission that resembles the project spec but not working properly, or works properly but have no explanation file 8-10
Submission that works exactly like specified but with a wrongly named screenshot file (or late) 18
Submission that works exactly like specified and a proper readme.doc 20
Submission that works exactly like specified and shows attention to details and principles of software design 22
Submission that works and is super super awesome and is in full 3D, shoots laser, and comes with original soundtrack and signed artbook!!! Still 22

Project Part (II) Introduction - “Baba is You” (Updated)

In this project, you implement a C#, WPF version of a puzzle game called “Baba is You”.

Your instructor is not affiliated with the author and will not finance you to buy the commercial version.

There are several major elements of the game that you need to implement:

  • The Sokoban element of the game, in which the player avatar can move blocks around
  • The Undo element of the game, by pressing z, which allows you and EVERY game state to go back to the previous
  • The Game-rules element of the game, which is changed when different valid phrases are formed in the map
  • It is not necessary to replicate the levels in the game; though some replication is needed for you to confirm whether you are implementing the game correctly

A lua script (a certain kind of game scripting) source code comes with the free jam version of the game. I do not recommend reading it to reverse the game. It is not in OOP and you can clearly see it is hard to extend upon it (it is a jam product afterall). Play the game instead to understand the rules, and consider how it can be modeled in proper OOP.

We do will only accept projects made with WPF, C# and is expected to run on Windows machine on a typical Windows desktop. For fairness, I will NOT accept proposals for using other languages/platforms.

Project (Part II) Submission and Assessment Criteria

You have to submit a GitHub repository (details on Piazza) and an individual or group 5-page design report with details on your class design, class reuse, software patterns used and challenges overcome during your project. You also have to explain what happened to your design and code when accommodating the Additional Requirement announced in early Dec.

Submission Quality Mark
No submission, partially working submissions, submissions that did not follow the above mentioned rules 0
Submission that fulfill all the requirements but designed poorly or submitted without proper design report 12
Submission that fulfill all the requirements and have reasonable design 22 (max of Part I)
Submission that fulfill all requirements and have shown thoughtful, skillful design 26
Submission that is considered acceptable work in a real world working setting 28-30 (very hard)