我必须创建一个战舰游戏,其中第一部分要求创建一个舰艇类并初始化该舰艇类的五个实例:
Frigate(len 2(,Sub(len 3(,驱逐舰(len 3(,战列舰(len 4(,航空母舰(len 5(
船只必须在船上随机定位,并使用船名的第一个字母显示每艘船的位置
还没有命中或未命中的功能。
我觉得我不知道该怎么做。
到目前为止,我已经成功创建了董事会。我觉得我可能必须为船上的船只留出一个区域。
我很抱歉。我的代码看起来像垃圾,我真的需要一些指导:(
编辑:我已经制作了一个船只放置功能并修复了我的类别,但不确定它们是否是正确的
#include <iostream>
#include <ctime>
using namespace std;
const int ROWS = 10;
const int COLS = 10;
const int SHIPTYPE = 5;
string array[ROWS][COLS];
// Create struct with horizontal and vertical coordinates
struct Arr{
int x;
int y;
};
class Ship(){
// Declare ship type
string type;
// Declare length of int type for points on grid
int length;
// Coordinates of grid with max length of ship (0-4)
Arr board[5];
Ship[SHIPTYPE];
enum direct h, v;
struct Placeship{
direct dir;
Ship shipType;
};
};
void Board()
{
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
array[i][j] = '-';
}
}
}
void VBoard()
{
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
cout << array[i][j] << " ";
}
cout << endl;
}
}
// Make a function that allows for ship placement
Placeship(){
int x, y, z;
Placeship sp;
// Bad return
sp.shipType.board[0].X = -1;
// User input for integers
cin >> x >> y >> z;
if(x!=0 && x! = 1){
return sp;
}
else if (y < 0 || y >= ROWS){
return sp;
}
else (y > 0 || y >= COLS){
return sp;
}
// Include direction: Horizontal and Vertical
sp.direction = (direct)x;
sp.shipType.board[0].X = y;
sp.shipType.board[0].Y = z;
return sp;
}
// Create function to set or load ships
void setShip(){
// Include data for ships
ship_t[0].type = "Frigate"; ship_t[0].length = 2;
ship_t[1].type = "Sub"; ship_t[1].length = 3;
ship_t[2].type = "Destroyer"; ship_t[2].length = 3;
ship_t[3].type = "Battleship"; ship_t[3].length = 4;
ship_t[4].type = "Aircraft Carrier"; ship_t[4].length = 5;
}
int main()
{
//Call functions
Board();
VBoard();
Placeship();
setShip();
return 0;
}
这是家庭作业吗?它要求您为Ship
对象定义一个具有两个(到目前为止(属性的类:类型/名称(可以减少为一个字符(和长度。这里有一种方法:
class Ship
{
public:
Ship(char n) : n_(n)
{
switch(n_)
{
case 'F': len_ = 2; break;
case 'S': len_ = 3; break;
case 'D': len_ = 3; break;
case 'B': len_ = 4; break;
case 'A': len_ = 5; break;
default: // process bad input
}
}
private:
char n_;
int len_;
}
然而,熟悉游戏后,我知道飞船在游戏中没有任何作用:棋盘负责hit
/miss
的响应,以及其他一切。所以我认为你根本不需要Ship
课程!
请再问一个问题