Write a program that allows two players to play connect four, C/C++ Programming

Assignment Help:

You may work in pairs for this assignment. Submit only one project per team; both partners will receive the same grade. Also, you can earn up to 40 points (out of 25) on this assignment!

Game rules:

1. To win, a player must get four pieces in a row (either horizontally, vertically, or diagonally).

2. Players cannot arbitrarily place pieces anywhere on the board. Instead, they choose a column to place the piece into, and the piece automatically drops into the lowest available position on that column.

3. The board is larger than a 3x3 grid (it should be fairly obvious why 3x3 wouldn't make sense for Connect Four). In this assignment you'll be designing your program in such a way that the board size is customizable.

A. The Assignment

Write a program that allows two players to play Connect Four against each other. Your program should start by allowing the user to specify the size of the game board (number of rows, number of columns). Once the game begins, players take turns entering which column they wish to drop a piece into. Your program should display a graphical (well, more like "graphical") representation of the board before each player's turn (this doesn't have to be pretty, just functional... although pretty is always a plus). The game should continue until either player wins the game, or until all spaces are filled with no winner (tie). Once the game ends, display an appropriate "Game Over" message and allow the user to indicate whether to play again.

Use a 2-D int array to keep track of the current state of the game board. Each position in the board has three possible states:

no piece, player 1's piece, or player 2's piece. You can use X's and O's or 0's and 1's to represent each player's pieces, but you're also welcome to pick something else.

There are no requirements on what methods you should write or how you organize your code. The most important thing is that it works correctly.

Error checking

Error Checking Implement error checking on all user inputs (but don't worry about data type mismatches) should repeatedly prompt for the input until the user enters a valid value. In particular: The minimum number of rows and columns in the board should be 4, and the maximum should be 10. (The number of rows does not necessarily have to match the number of columns, as long as both are within this allowable range.) When taking a turn, a player should not be able to specify a column that is outside the range of the board, or a column that is already full.

B. Code and Style Requirements

Use good coding style as discussed in class and your textbook. This includes: Judicious use of comments. There should be comments throughout your program explaining what your code is doing (but don't get too enthusiastic and comment obvious things like "this is a variable declaration"). Also be sure to place your name in the comment block at the top of your  program. Following programming conventions for variableNames/methodNames, ClassNames, CONSTANT_NAMES.

Giving your variables descriptive identifiers. Consistently indenting your code. This is for the benefit of yourself as well as the grader! Well-indented code is much easier to read.

Five points of your grade on this assignment will come from coding style. Remember that your code must successfully compile and run to receive any credit.


Related Discussions:- Write a program that allows two players to play connect four

What is a hash function, What is a hash function? Hash function: This ...

What is a hash function? Hash function: This is the method from the set 'K' of keys into the set 'L' of memory addresses.   H: K → L These are used to verify the address

Encryption/Decryption, I need to include files so you can understand easier...

I need to include files so you can understand easier.

Write a c program to input numbes in table format, Write a C program to inp...

Write a C program to input 16 numbers and print them out in a table format of 4 wide by 4 deep. E.g.   4    5    5    7   8    9    10    11   12    13    14    15   16    17

COMPILER DESIGN, aj is a newbie to the programming and while learning the p...

aj is a newbie to the programming and while learning the programming language he came to know the following rules: - Each program must start with ''{'' and end with ''}''.

Change to palindrome, a palindrome is a string that reads the same from bho...

a palindrome is a string that reads the same from bhote the ends

I want rss feed from emails, Project Description: I am trading binary op...

Project Description: I am trading binary options and need my signals that are sent to me via email to be sent to my followers via an RSS feed I have no idea how rss feeds imp

Example program of c programming, Write a c program to determine interchang...

Write a c program to determine interchanged values between two variables?[Hint - if loop] What will be the output of the program? How many times this loop will execute? Wr

Puzzles, #questioA Padovan string P(n) for a natural number n is defined as...

#questioA Padovan string P(n) for a natural number n is defined as: P(0) = ‘X’ P(1) = ‘Y’ P(2) = ‘Z’ P(n) = P(n-2) + P(n-3), n>2 where + denotes string concatenation. For a str

Program is to define a class as employee, Program is to define a class as e...

Program is to define a class as employee: Write a program to define a class as employee and collect information about them by using classes and object class employee   {

Programing project, Hello, Do you have any idea for programming project to...

Hello, Do you have any idea for programming project to simulate a network attack (threat) mechanism or a defense mechanism. Can I get some suggestions for this. Please include th

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd