Playable post

$30.00

Category: You will Instantly receive a download link for .zip solution file upon Payment || To Order Original Work Click Custom Order?

Description

5/5 - (2 votes)

This project is based on a “playable post” by Vi Hart and Nicky Case called Parable of the Polygons, illustrating the effects of bias on population segregation.
The goal of this project is to get some practice with multiple file projects, pointers, and (above all) beginning to intermediate level classes.
This project may take a lot of time. Please plan accordingly. Also, this project may contain wording you are not yet used to. Please be patient while working out what it means, as feel free to ask me if you need help.

Requirements
Week 1
Fill in the TODOs (to-do’s) in buffer.cpp so that the test function test_buffer() in main.cpp runs and produces the output

——————————————————————————–
| |
| |
| * * |
| |
| * * |
| |
| |
| |
| * * |
| |
| * * |
| |
| |
| |
| * * |
| |
| * * |
| |
| |
| |
| |
| |
| |
——————————————————————————–

Fill in the TODOs (to-do’s) in shape.cpp so that the test function test_shape() in main.cpp runs and produces the output

, .—. , .—. , .—. , .—. , .—. , .—. , .—. , .—.
/ \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | |
/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘
.—. , .—. , .—. , .—. , .—. , .—. , .—. , .—. ,
| | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \
‘—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\
, .—. , .—. , .—. , .—. , .—. , .—. , .—. , .—.
/ \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | |
/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘
.—. , .—. , .—. , .—. , .—. , .—. , .—. , .—. ,
| | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \
‘—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\
, .—. , .—. , .—. , .—. , .—. , .—. , .—. , .—.
/ \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | |
/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘
.—. , .—. , .—. , .—. , .—. , .—. , .—. , .—. ,
| | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \
‘—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\
, .—. , .—. , .—. , .—. , .—. , .—. , .—. , .—.
/ \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | |
/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘
.—. , .—. , .—. , .—. , .—. , .—. , .—. , .—. ,
| | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \
‘—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\’—‘/___\

Any functions that are not necessary for these tests to run may be “stubbed out” — that is, filled in just enough for the program to compile and run, without being fully implemented.

Weeks 2 and 3
Fill in the TODOs (to-do’s) in neighborhood.cpp, and any remaining uncompleted code in buffer.cpp and shape.cpp, so that the code

// animate neighborhood
unsigned int size_x = TERM_SIZE_X/Shape::size_x;
unsigned int size_y = TERM_SIZE_Y/Shape::size_y;
Neighborhood(size_x, size_y).animate(1000);
in main.cpp runs and produces the output shown in demo.mp4.

Requests
Please try to do this in groups, and try to use Google, etc., only for answers to questions about the language (as opposed to questions about this problem).
If you have time, you might want to rewrite your solution from scratch, referencing your first solution (or mine, if you wish) as little as possible (but as much as necessary). I would recommend doing this not only if you have time before the next assignment, but also if you’re able to complete the next assignment early.
Assumptions
A terminal window is 80 columns wide by 25 lines high.
Style
Place your solution in a solution–YOURNAME subdirectory (where YOURNAME is your GitHub username).
Include your copyright and license information at the top of every file, followed by a brief description of the file’s contents, e.g.

/* —————————————————————————-
* Copyright © 2016 Ben Blazak