University of Reading Department of Computer Science Extending a platform game in C/C++: You can…

University of Reading Department of Computer Science Extending a platform game in C/C++: You can give your extensions a nice title Firstname Lastname Module Code CS1PR16 Assignment report Title Programming Project Student Number (e.g. 25098635) TODO Date (when the work completed) February 7, 2020 Actual hrs spent for the assignment TODO Assignment evaluation (3 key points) TODO Enter here your comments: engaging task, learned something, could improve the description about XXX CONTENTS CONTENTS Declaration I, Firstname Lastname, of the Department of Computer Science, University of
University of Reading Department of Computer Science Extending a platform game in C/C++: You can give your extensions a nice title Firstname Lastname Module Code CS1PR16 Assignment report Title Programming Project Student Number (e.g. 25098635) TODO Date (when the work completed) February 7, 2020 Actual hrs spent for the assignment TODO Assignment evaluation (3 key points) TODO Enter here your comments: engaging task, learned something, could improve the description about XXX CONTENTS CONTENTS Declaration I, Firstname Lastname, of the Department of Computer Science, University of Reading, con_rm that all the sentences, _gures, tables, equations, code snippets, artworks, and illustrations in this report are original and have not been taken from any other persons work, except where the works of others have been explicitly acknowledged, quoted, and referenced. I understand that if failing to do so will be considered a case of plagiarism. Plagiarism is a form of academic misconduct and will be penalised accordingly. Firstname Lastname February 7, 2020 Contents 1 Introduction 2 1.1 Learning Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Provided Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Suggested Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Design 3 3 Implementation and Development 3 4 Conclusion 4 Appendices 5 A Code Changes 5 Firstname Lastname CS1PR16 Programming Project 1 CONTENTS 1. INTRODUCTION 1 Introduction The aim of the project is to assess your ability to analyze, design and implement an extension to an existing C/C++ program. The given program is a platform game that uses the SLD2 library for the graphics. Your task is to extend the platform game starting from the provided skeleton code. Hence, you must design at least one new feature, then adapt, modify and develop the code to realize this feature. You are free to add any features you wish. You are required to write a report describing the design and implementation of the changes you make. You may develop it under Windows or Linux on the machines in the CS labs or on your own machine. The assessment will take the form of a report on the game you develop. You will be assessed on the complexity of your contribution and the quality of the report to document this contribution.The code will not be directly assessed although you must include a di_ from your gitlab repository from the initial repository to the _nished version. 1.1 Learning Objectives Designing and implementing larger program in C/C++ Managing the project development Report writing 1.2 Provided Code You have been provided with a skeleton of a platform game which you imported into the Visual Studio IDE in the tutorial for Week 1. This skeleton uses the SLD2 library for graphics, sound, and keyboard interaction. In Week 5, the tutorial was to follow the online tutorial from parallelrealities.co.uk on how the program had been constructed. The skeleton code is written in C using structs as the main data structure. You are free to develop the code in this style or to enrich it using C++ classes using an object orientation style. Either way, you must justify you choice in the report and demonstrate this was a sensible choice for the features you have employed. 1.3 Suggested Approach You should use the practical session in G56 on Mondays, the drop-in session on Mondays (G45), the CS1PR Slack channel and the programming angel scheme to access help and support. You may also help and receive help from fellow students. However, you should bare in mind this is an individual project make sure you submit only your own work. See the University guidelines on plagiarism which are online. Your report should start with an Introduction section where you introduce your work. What were the project goals, what features did you wish to include in the game. Think about features of platform games you have played that improve the game play. You may wish to include some of the following, high scores, multiple levels, power-ups, enemies, movement parts etc. You should justify what programming style such as C/C++, did you use any OO features etc. Firstname Lastname CS1PR16 Programming Project 2 CONTENTS 2. DESIGN 2 Design Document what features you decided to implement and how they interact with the rest of the game. Explain how the game play works. Include a diagram such as a _ow chart, Figure 1 or UML diagram, Figure 21. Initialiser Initialiser Condition expression Condition expression true false Body of loop (this may be many statements) May be many statements May be many statements Figure 1: A simple _gure Person Name Phone Number Email Address Purchase Parking Pass Student Student Number Average Mark Is Eligibale To Enroll Get Seminars Taken Professor Salary Address Street City State Postal Code Country Validate Output As Label 0..1 1 lives at Figure 2: A simple UML class diagram In Listing 1, you can see how to present a code example. You can refer to speci_c sections of code using the line numbers, e.g., between Line 5-10, the setup is made, … 3 Implementation and Development Describe how you developed the code including what language features you employed and why. How did your program evolve from the original design? Did you adapt the design to improve the game? You should include code fragments and screen shots illustrate particular features. 1Including both is allowed or even encouraged. Firstname Lastname CS1PR16 Programming Project 3 REFERENCES 4. CONCLUSION 1 static void capFrameRate(long *then, float *remainder){ 2 long wait, frameTime; 3 // This is a comment 4 wait = 16 + *remainder; 5 6 *remainder -= (int)*remainder; 7 8 frameTime = SDL_GetTicks() – *then; 9 10 wait -= frameTime; 11 12 if (wait < 1)="" 13="" {="" 14="" wait="1;" 15="" 16 17 SDL_Delay(wait); 18 19 *remainder += 0.667; 20 21 *then = SDL_GetTicks(); 22 } Listing 1: My testcode (example.cpp) Describe the _nished game, including all the features you added. What features work well? Document any parts of the code which feel are important or enable the program to work in a particular way. Describe here your journey how you developed the program and re_ect about your development. How did you test and debug the program? Did you _nd all the bugs? What testing have you employed to ensure the game works correctly. Did you use any speci_c strategies for testing? 4 Conclusion Summarise your program development. What have your learnt about programming? What have you learnt about developing a signi_cant program. What would either features would you add if you had more time. What would you do di_erently? References Kottwitz, S. (2011), LaTeX beginners guide, Packt Publishing Ltd. Vellage, C. (2017), LaTeX Tutorial, https://www.latex-tutorial.com/. [Online; accessed 02-Feb-2020]. Firstname Lastname CS1PR16 Programming Project 4 REFERENCES A. CODE CHANGES A Code Changes Repository: https://csgitlab.reading.ac.uk/di918039/cs1pr-portfolio. Reference the URL of your code repository (that you made accessible to us). Include a di_ of your code repository on CSGitlab from the provided skeleton code; the intital commit (which is the code for Week 1 tutorial) and your _nal working version. This can be achieved as follows: In CSGitlab, go to your repository, select Repository, then Compare. Now enter as Source master and as target the Git revision of the initial code and press Compare. You will see the history of commits and the detailed changes (deltas) to the original code. Print this as PDF and include it here. To make this work: after you received the project code, commit the initial code without any changes. Firstname Lastname CS1PR16 Programming Project 5 ... Commits (19) Examples (/di918039/cs1pr-portfolio/commit/875ad95924237a6ee297bcd7b1dc42bbcf9101be) 875ad959 Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Constructors destructors (/di918039/cs1prportfolio/commit/d15b0c59f7cf5e5f962751b82283f811b820686e) d15b0c59 Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Nai (/di918039/cs1pr-portfolio/commit/5d7647ba95ed9c91db55527d0d3ddab19dc75700) 5d7647ba Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Nai (/di918039/cs1pr-portfolio/commit/5b257911cf5a58be148a343a82465d4174ba7849) 5b257911 Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Further codes (/di918039/cs1pr-portfolio/commit/349cd563fa9ef873da21e3e751de528257464789) 349cd563 Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Further examples (/di918039/cs1prportfolio/commit/96ebc50ca5ebee6bf907af03834048d39442276b) 96ebc50c Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Nai (/di918039/cs1pr-portfolio/commit/486516579e0637c5d05f3aef838a4c868cc8c83a) 48651657 Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Virtual destructors. (/di918039/cs1prportfolio/commit/ebf9a368f76f4957498a8e49ed4548e3b1186a9a) ebf9a368 Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Stuff. (/di918039/cs1pr-portfolio/commit/a7f0dc5be115409d6a8c7ff6f92f99c38017ea0d) a7f0dc5b Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Further (/di918039/cs1pr-portfolio/commit/ecd0b885a3078ff5e14ca46a6e593ba050ddd390) ecd0b885 Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Source Target master 81f4d854 1 2 3 4 5 6 7 8 9 10 11 12 Nai (/di918039/cs1pr-portfolio/commit/6d03b95c0fb17e223c20e593dc99321164d2fbce) 6d03b95c Julian M. Kunkel (mailto:[email protected]) committed 3 weeks ago Nai (/di918039/cs1pr-portfolio/commit/609a7e696101c4daab846d1af87f421f962518b4) 609a7e69 Julian M. Kunkel (mailto:[email protected]) committed a week ago Examples for 8 (/di918039/cs1prportfolio/commit/f23706f4eaa29c1204e8978c099c7b4975b68364) f23706f4 Julian M. Kunkel (mailto:[email protected]) committed a week ago Exception 1 (/di918039/cs1pr-portfolio/commit/3d912c3bc45c05b8b02f64e25c609ba18414d909) 3d912c3b Julian M. Kunkel (mailto:[email protected]) committed a week ago Nai (/di918039/cs1pr-portfolio/commit/320c3ef059540c89c9475673f7a89f5f87c5e3b7) 320c3ef0 Julian M. Kunkel (mailto:[email protected]) committed a week ago Smart pointer code (/di918039/cs1prportfolio/commit/8e0f875b544d093042bf3176945cccb266e39007) 8e0f875b Julian M. Kunkel (mailto:[email protected]) committed about 22 hours ago Nai (/di918039/cs1pr-portfolio/commit/2a354523c2cdfd16cc6166899422deb1812a76f9) 2a354523 Julian M. Kunkel (mailto:[email protected]) committed about 21 hours ago Examples for Lecture 10 (/di918039/cs1prportfolio/commit/b174a3397a6fa0ba29df623874cefa4596a5b6d5) b174a339 Julian M. Kunkel (mailto:[email protected]) committed about 19 hours ago Examples (/di918039/cs1pr-portfolio/commit/a6d904ef0ea60da9c938dd4ad8d710b40c1476d5) a6d904ef Julian M. Kunkel (mailto:[email protected]) committed about 17 hours ago Showing 106 changed _les _ with 2319 additions and 0 deletions _ _ lecture-examples/spring/10/const-expr.cpp 0 _ 100644 #include + + using namespace std;+ + constexpr int varX = 10;+ + constexpr int get_five() {+ return varX/2;+ + } + int + main(){ int some_value[get_five() + 7]; // Create an array of 12 integers+ 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 return + 0; + } _ _ lecture-examples/spring/10/lambda-simple.cpp 0 _ 100644 #include + #include + #include + using namespace std;+ + //This example may only work with recent compilers.+ //clang++-9 -stdlib=libc++ lambda-simple.cpp+ + int main + () { std::function funct = []() { return "Hello"; };+ cout < funct()=""< endl;+="" auto ifunct = []() { return 5; };+ cout < ifunct()=""< endl;+="" +="" int multiplier = 2;+ auto ifunct2 = [&multiplier](int v) { return v * multiplier; };+ cout < ifunct2(6)=""< endl;+="" +="" _ _ lecture-examples/spring/10/lambda.cpp 0 _ 100644 #include + #include + #include + + using namespace std;+ + class Pallet+ + { public:+ Pallet();+ Pallet(vector Items) : items(Items) {}+ int GetWeight() { return items.size(); }+ + protected:+ vector items;+ + }; + int main + () + { vector pallets = {+ Pallet({ "Scorpions" }),+ Pallet({ "Dogs", "Bones", "Biscuits", "Cats", "Food", "Toys" }),+ Pallet({ "Computers", "Scientists", "Routers", "Monitors" }) };+ + sort(pallets.begin(), pallets.end(), [](auto& a, auto& b) {+ return a.GetWeight() < b.getweight();+="" }); 28 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 + } _ _ lecture-examples/spring/10/macro.cpp 0_ 100644 #include + #include + + #define ITEMS + TYPE(Computers), + TYPE(Scientists), + TYPE(Routers), + TYPE(Monitors),+ + + #define TYPE(e) e+ enum class item {+ + ITEMS + }; #undef TYPE+ + #define TYPE(e) #e+ const std::string item_strings[] = {+ + ITEMS + }; #undef TYPE+ + int + main(){ std::cout < item_strings[(int)="" item::routers]=""< std::endl;+="" +="" _ _ lecture-examples/spring/10/meta-gcd.cpp 0 _ 100644 #include + #include + #include + using namespace std;+ + template< int="" a,="" int="" b="" struct GCD {+ static const int RESULT = GCD< b,="" a="" %="" b=""::RESULT;+ + }; + template< int="" a="" struct GCD< a,="" 0="" {+ static const int RESULT = a;+ + }; + + + int main + () { cout < "gcd="" (25,50)="=" "=""<::RESULT < cout < "gcd="" (12,64)="=" "=""<::RESULT < cout < "gcd="" (a,b)="=" "=""<::RESULT < endl;+="" return + 0; + } View less

Custom Paper Help
Calculate your paper price
Pages (550 words)
Approximate price: -

Why Work with Us

Top Quality and Well-Researched Papers

We always make sure that writers follow all your instructions precisely. You can choose your academic level: high school, college/university or professional, and we will assign a writer who has a respective degree.

Professional and Experienced Academic Writers

We have a team of professional writers with experience in academic and business writing. Many are native speakers and able to perform any task for which you need help.

Free Unlimited Revisions

If you think we missed something, send your order for a free revision. You have 10 days to submit the order for review after you have received the final document. You can do this yourself after logging into your personal account or by contacting our support.

Prompt Delivery and 100% Money-Back-Guarantee

All papers are always delivered on time. In case we need more time to master your paper, we may contact you regarding the deadline extension. In case you cannot provide us with more time, a 100% refund is guaranteed.

Original & Confidential

We use several writing tools checks to ensure that all documents you receive are free from plagiarism. Our editors carefully review all quotations in the text. We also promise maximum confidentiality in all of our services.

24/7 Customer Support

Our support agents are available 24 hours a day 7 days a week and committed to providing you with the best customer experience. Get in touch whenever you need any assistance.

Try it now!

Calculate the price of your order

Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Place your order

Fill in the order form and provide all details of your assignment.

Proceed with the payment

Choose the payment system that suits you most.

Receive the final file

Once your paper is ready, we will email it to you.

Our Services

No need to work on your paper at night. Sleep tight, we will cover your back. We offer all kinds of writing services.

Essays

Essay Writing Service

No matter what kind of academic paper you need and how urgent you need it, you are welcome to choose your academic level and the type of your paper at an affordable price. We take care of all your paper needs and give a 24/7 customer care support system.

Admissions

Admission Essays & Business Writing Help

An admission essay is an essay or other written statement by a candidate, often a potential student enrolling in a college, university, or graduate school. You can be rest assurred that through our service we will write the best admission essay for you.

Reviews

Editing Support

Our academic writers and editors make the necessary changes to your paper so that it is polished. We also format your document by correctly quoting the sources and creating reference lists in the formats APA, Harvard, MLA, Chicago / Turabian.

Reviews

Revision Support

If you think your paper could be improved, you can request a review. In this case, your paper will be checked by the writer or assigned to an editor. You can use this option as many times as you see fit. This is free because we want you to be completely satisfied with the service offered.