1. Homepage
  2. Programming
  3. FIT2102 Programming Paradigms 2022 Assignment 1: Functional Reactive Programming

FIT2102 Programming Paradigms 2022 Assignment 1: Functional Reactive Programming

Engage in a Conversation
MonashAustraliaFIT2102Programming ParadigmsFunctional Reactive ProgrammingTypeScriptRxJS

FIT2102 Programming Paradigms 2022 Assignment 1: Functional Reactive Programming CourseNana.COM

Due Date: 09/09/2022
Weighting: 30% of your final mark for the unit CourseNana.COM

Overview. Students will work independently to create a classic arcade game using Functional Reactive Programming (FRP) techniques. Programs will be implemented in TypeScript and will use RxJS Observable streams to handle animation, user interaction, and other similar stream behaviours. The goal is to demonstrate a good understanding of functional programming techniques as explored in the first five weeks of the unit, including written documentation of the design decisions and features. CourseNana.COM

Submission instructions CourseNana.COM

Submit a zipped file named <studentNo>_<name>.zip which extracts to a folder named <studentNo>_<name> CourseNana.COM

●  It must contain all the code for your program along with all the supporting files as well as the report. CourseNana.COM

●  It should include sufficient documentation that we can appreciate everything you have done. CourseNana.COM

●  You also need to include a report describing your design decisions. The report must be named <studentNo>_<name>.pdf. CourseNana.COM

●  The only external library should be RxJS libraries supplied with the starter code. CourseNana.COM

●  Make sure the code you submit executes properly. CourseNana.COM

●  Do not submit the node_modules or dist folder. CourseNana.COM

The marking process will look something like this: 1. Extract<studentNo>_<name>.zip CourseNana.COM

  1. Navigate into the folder named <studentNo>_<name>
  2. Execute npm run build
  3. Open dist/index.html in a browser

Please ensure that you test this process before submitting. Any issues during this process will make your marker unhappy, and in some cases, may result in a deduction in marks. Failure to follow these instructions may also result in a deduction. CourseNana.COM


CourseNana.COM

Task description CourseNana.COM

In this assignment, we will use the RxJS Observable stream explored in the Week 4 worksheet to create the classic Frogger Arcade Game (YouTube) in an SVG image hosted in the dist/index.html webpage. CourseNana.COM

The YouTube video is meant to give you an idea of the gameplay, but yours needn’t look the same or work in precisely the same way, especially with regard to graphics. Note that only a subset of the features shown in the video will be part of the requirements. CourseNana.COM

You will also need to write a report detailing the design of your game. CourseNana.COM


CourseNana.COM

Requirements CourseNana.COM

The game must be implemented in a good functional reactive programming style to get marks. A subset of the game’s features will be required to get a passing grade. Additional features will be required to get a higher grade. To achieve the maximum marks for this assignment, you will have to use a little creativity and add some non-trivial functionality of your own choice – see the additional information document for some ideas. CourseNana.COM

Correct collision behaviour: CourseNana.COM

-  In the ground section, Frog may move/stand on the ground, but dies when CourseNana.COM

colliding with a car object CourseNana.COM

-  In the river section, Frog may move/stand on plank objects, but dies when CourseNana.COM

landing in the water (ground) CourseNana.COM

-  Frog dies when colliding with any enemies (e.g. snakes, crocodiles) CourseNana.COM

Minimum requirements CourseNana.COM

All of these requirements must be reasonably executed to achieve a passing grade CourseNana.COM

-  Frog which can move forwards, backwards, left, and right using one of the CourseNana.COM

keyboard or mouse CourseNana.COM

-  Multiple rows of objects (at least 6) appear and move across the screen CourseNana.COM

-  Objects move at different speeds and directions (left-right) CourseNana.COM

-  Correct collision behaviour (defined above) including at least one ground CourseNana.COM

section and one river section CourseNana.COM

 For minimum requirements, you do not need to include enemies CourseNana.COM

-  Game ends when the Frog dies CourseNana.COM

-  Indicate the score for the player CourseNana.COM

-  Player scores points by landing the Frog in a distinct target area CourseNana.COM

-  A 1-2 page PDF report detailing your design decisions and use of functional CourseNana.COM

programming techniques discussed in the course notes CourseNana.COM

Full Game requirements CourseNana.COM

Meets CourseNana.COM

-  Keeps track of high score achieved across previous rounds CourseNana.COM

-  Multiple distinct target areas that must be “filled” (as per the video) CourseNana.COM

-  At least 3 distinct objects with different interactions/behaviours (e.g. crocodile, CourseNana.COM

turtle, car/plank, snake, fly) that aren’t just movement CourseNana.COM

○  Cars and planks count as one distinct object CourseNana.COM

○  An example might be cars and planks, crocodiles, and turtles CourseNana.COM

-  At least one of the “ground” and “water” sections, including at least one row in the middle where there are no objects (safe zone) CourseNana.COM

-  Smooth and usable game play. CourseNana.COM

-  Able to restart when game finishes CourseNana.COM

This must not be done by refreshing the page, and should also not be done by recursively calling the main function (you should use state management to handle this) CourseNana.COM

-  The game increases in difficulty after some non-score-based condition is met (for example, landing the frog in 5 target areas) CourseNana.COM

-  See video for an idea of appropriate gameplay Report CourseNana.COM

Your report should be 600-1200 words in length, plus up to 600 words for each significant additional feature, where you should: CourseNana.COM

-  Include basic report formatting headings/paragraphs CourseNana.COM

-  Include diagrams as necessary CourseNana.COM

-  Summarise the workings of the code and highlight the interesting parts (don’t CourseNana.COM

just describe what the code does, we can read the source code!) CourseNana.COM

-  Give a high level overview of your design decisions and justification CourseNana.COM

-  Explain how the code follows FRP style CourseNana.COM

-  How state is managed throughout the game while maintaining purity CourseNana.COM

-  Describe the usage of Observable beyond simple input CourseNana.COM

-  Important: Need to explain why you did things CourseNana.COM

-  Do not include screenshots of code unless you have an exceptionally good CourseNana.COM

reason CourseNana.COM

We will be fairly lenient with word count, but excessively long reports may be penalised. CourseNana.COM

minimum requirements and has additional features CourseNana.COM

Plagiarism CourseNana.COM

We will be checking your code against the rest of the class and the internet using a plagiarism checker. Monash applies strict penalties to students who are found to have committed plagiarism. CourseNana.COM

Additional information CourseNana.COM

Some additional (not essential or required) information is also available on the Moodle Assessments section. This is used purely to provide context and answer questions students may have, and is not necessary to complete the assignment. CourseNana.COM

  CourseNana.COM

Get in Touch with Our Experts

WeChat (微信) WeChat (微信)
Whatsapp WhatsApp
Monash代写,Australia代写,FIT2102代写,Programming Paradigms代写,Functional Reactive Programming代写,TypeScript代写,RxJS代写,Monash代编,Australia代编,FIT2102代编,Programming Paradigms代编,Functional Reactive Programming代编,TypeScript代编,RxJS代编,Monash代考,Australia代考,FIT2102代考,Programming Paradigms代考,Functional Reactive Programming代考,TypeScript代考,RxJS代考,Monashhelp,Australiahelp,FIT2102help,Programming Paradigmshelp,Functional Reactive Programminghelp,TypeScripthelp,RxJShelp,Monash作业代写,Australia作业代写,FIT2102作业代写,Programming Paradigms作业代写,Functional Reactive Programming作业代写,TypeScript作业代写,RxJS作业代写,Monash编程代写,Australia编程代写,FIT2102编程代写,Programming Paradigms编程代写,Functional Reactive Programming编程代写,TypeScript编程代写,RxJS编程代写,Monashprogramming help,Australiaprogramming help,FIT2102programming help,Programming Paradigmsprogramming help,Functional Reactive Programmingprogramming help,TypeScriptprogramming help,RxJSprogramming help,Monashassignment help,Australiaassignment help,FIT2102assignment help,Programming Paradigmsassignment help,Functional Reactive Programmingassignment help,TypeScriptassignment help,RxJSassignment help,Monashsolution,Australiasolution,FIT2102solution,Programming Paradigmssolution,Functional Reactive Programmingsolution,TypeScriptsolution,RxJSsolution,