Assignment 5: Connect 4 ======================= Your task for this assignment is to implement the game `Connect 4 `_ so that a human can play against the computer. `Connect 4 `_ is a 2-player game where the players take turns dropping colored pieces into a vertically- standing board with **7 columns** and **6 rows**. The winner is the first player to get connect 4 (or more) of their pieces in a row, column, or diagonal. If there are no empty spaces left and neither player has made 4-in-a-line, the game is a draw. You can play it on-line, e.g. `here `_. Play it a few times to make sure you understand the rules. For this assignment, you will have to use ASCII characters to draw the board, and get the users input from ``cin``. Please make an effort to design a nice-looking board that is easy for players to understand, and easy for them to make their moves. Be sure to read the marking scheme on Canvas_ to see the required features. Submission ---------- Put your program in a single file called ``a5.cpp``. When it's ready to be submitted, compress ``a5.cpp`` into a zip-file archive called ``a5_submit.zip`` by typing the following command in a Linux console window:: $ zip a5_submit.zip a5.cpp Don't type the ``$`` --- that's the command prompt. Do **not** compress your program in any other way --- only ``.zip`` please! Include the name of the course (*CMPT 130*), the semester (*Fall 2017*), and your name and student number in comments at the top of the file. If you received help from any other person (such as the TA, course instructor, a friend etc.), or book (such as the textbook), or website, etc., then you **must cite this help in a comment at the top of your program**. If you do not include such a comment, we will assume the program is entirely your own work. Not citing help (even if you accidentally forget) is considered academic dishonesty and will be dealt with seriously. Implementation Hints -------------------- A good way to start writing this program is to decide upon the data structure you want to use to represent the board. For instance, you might want to represent each column of the board as a vector, and then store those vectors in another vector. Once you've decided how to represent the board, write a function to create a new empty board, and a function print the board to the screen. Then, one at a time, write more functions to do the various things you need to do for the game.