×
Reviews 4.9/5 Order Now

C++ Program to Create a Battleship Game Assignment Solution

July 03, 2024
Prof. Liam Wilson
Prof. Liam
🇦🇺 Australia
C++
Prof. Liam Wilson is a seasoned programmer and educator with a master's degree in computer science from the University of Melbourne. His expertise in C++ is unmatched, having completed over 700 assignments with meticulous attention to detail and a commitment to delivering top-quality solutions.
Key Topics
  • Instructions
    • Objective
  • Requirements and Specifications
Tip of the day
Break your NetLogo model into simple procedures using functions for better readability. Use the ask command efficiently to control agents and optimize performance by minimizing unnecessary computations in the go procedure. Always test your model with small agent populations before scaling up.
News
LFortran Advances: LFortran, an open-source Fortran compiler, achieved compatibility with the PRIMA library in March 2025, enhancing support for numerical computing.

Instructions

Objective

Write a C++ assignment program to create a battleship game in C++. In this assignment, your task is to implement a program that simulates a battleship game using C++. You will need to design the game board, allow players to place their battleships, and take turns guessing the coordinates to attack the opponent's ships. This assignment will test your understanding of C++ programming concepts such as classes, objects, arrays, loops, and conditional statements. By completing this assignment, you will not only enhance your C++ programming skills but also gain experience in designing and implementing interactive games.

Requirements and Specifications

program-to-create-a-battleship-game-in-C++
program-to-create-a-battleship-game-in-C++ 1

Source Code

/** * Copyright 2019 University of Michigan EECS183 * * Position.cpp * Project UID 8885f2d9f10d2f99bc099aa9c3fc0543 * * <#Name#> * <#Uniqname#> * * Project 4: Battleship * * <#description#> */ #include "Position.h" #include "utility.h" Position::Position() { // TODO: write implementation here. row = 0; col = 0; } Position::Position(int row_in, int col_in) { // TODO: write implementation here. row = row_in; col = col_in; } Position::Position(char row_in, char col_in) { // TODO: write implementation here. // First, convert both char values to integers int row_inte = row_in - '0'; int col_inte = col_in - '0'; // If the values are between 65 and 72 it is because these are A, B, ... H if(row_inte >= 65 && row_inte <= 72) { row_inte -= 65; } else if(row_inte >= 97 && row_inte <= 104) { // these are a, b, c.. h row_inte -= 97; } else if(row_inte >= 1 && row_inte <= 8) { row_inte -= 1; } if(col_inte >= 65 && col_inte <= 72) { col_inte -= 65; } else if(col_inte >= 97 && col_inte <= 104) { // these are a, b, c.. h col_inte -= 97; } else if(col_inte >= 1 && col_inte <= 8) { col_inte -= 1; } // Finally, set the valeus using the check_range function row = check_range(row_inte); col = check_range(col_inte); } int Position::get_row() { // TODO: write implementation here. return row; } void Position::set_row(int row_in) { // TODO: write implementation here. row = row_in; } int Position::get_col() { // TODO: write implementation here. return col; } void Position::set_col(int col_in) { // TODO: write implementation here. col = col_in; } void Position::read(istream &is) { // TODO: write implementation here. // First, read the line std::string raw_pos; is >> raw_pos; // Check if it contains parenthesys char rowc, colc; if(raw_pos[0] == '(') { rowc = raw_pos.at(1); colc = raw_pos.at(3); } else { rowc = raw_pos[0]; colc = raw_pos[1]; } // Instantiante a new POsition Position p(rowc, colc); row = p.get_row(); col = p.get_col(); return; } void Position::write(ostream &os) { // TODO: write implementation here. // Convert col to be in the range [1,8] int row_new = row+1; // Convert column to char char col_new = (char)(col + 65); // Write os << "(" << row_new << "," << col_new << ")"; return; } int Position::check_range(int val) { // TODO: write implementation here. if(val >= 0 && val < MAX_GRID_SIZE) { return val; } return 0; } // Your code goes above this line. // Don't change the implementations below! istream &operator>>(istream &is, Position &pos) { pos.read(is); return is; } ostream &operator<<(ostream &os, Position pos) { pos.write(os); return os; }

Similar Samples

Explore our comprehensive collection of programming homework samples across various disciplines including Java, Python, C++, and more. Each sample exemplifies our expertise in solving diverse coding challenges with clarity and precision. Whether you're working on algorithms, data structures, or software projects, our samples demonstrate our commitment to delivering reliable solutions tailored to your academic needs.