C++ c++;(将所有空格与棋子进行比较)

C++ c++;(将所有空格与棋子进行比较),c++,C++,我有一个棋盘游戏,有空格(数字值为1、2、3等),从1和16个棋子开始;每名球员四名 我想在某个时候展示我棋盘游戏的结果。我尝试了下面的方法,但这将使我的代码非常长 我有16个片段和100个空格,我必须用100个空格重复这段代码,这将花费永远。下面的代码仅用于一个空格(第一个空格) 你知道如何用简短的方式显示我的结果吗?提前谢谢 这是我的老办法: //space 1

我有一个棋盘游戏,有空格(数字值为1、2、3等),从1和16个棋子开始;每名球员四名

我想在某个时候展示我棋盘游戏的结果。我尝试了下面的方法,但这将使我的代码非常长

我有16个片段和100个空格,我必须用100个空格重复这段代码,这将花费永远。下面的代码仅用于一个空格(第一个空格) 你知道如何用简短的方式显示我的结果吗?提前谢谢

这是我的老办法:

//space 1                                                                       
if (bpiece1->value == 1)
{
    cout << "            bpiece1";
}
else if (bpiece2->value == 1)
{
    cout << "            bpiece2";
}
else if (bpiece3->value == 1)
{
    cout << "            bpiece3"; 
}
else if (bpiece4->value == 1)
{
    cout << "            bpiece4";
}
else if (gpiece1->value == 1)
{
    cout << "            gpiece1";
}
else if (gpiece2->value == 1)
{
    cout << "            gpiece2";
}
else if (gpiece3->value == 1)
{
    cout << "            gpiece3";
}
else if (gpiece4->value == 1)
{
    cout << "            gpiece4";
}
else if (ypiece1->value == 1)
{
    cout << "            ypiece1";
}
else if (ypiece2->value == 1)
{
    cout << "            ypiece2";
}
else if (ypiece3->value == 1)
{
    cout << "            ypiece3"; 
}
else if (y4->value == 1)
{
    cout << "            y4";
}
else if (rpiece1->value == 1)
{
    cout << "            rpiece1";
}
else if (rpiece2->value == 1)
{
    cout << "            rpiece2";
}
else if (rpiece3->value == 1)
{
    cout << "            rpiece3";
}
else if (rpiece4->value == 1)
{
    cout << "            rpiece4";
}
else
{
    cout << "            01";       
}
//空格1
如果(bpiece1->值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{
cout值==1)
{

coutC++是一种面向对象的语言。因此,我们首先创建一个类来存储电路板,并在上面实现所有功能。比如

//Board.h

#include <array>
using std::array;

enum class Figure { None, Pawn };

class Board {

private:
    array<array<Figure, 8>, 8> fields; //8x8 if it was a chess board

public:
    void print() const;
};

//Board.cpp

#include "Board.h"

#include <iostream>
using std::cout;
using std::endl;

#include <string>
using std::string;

inline string to_string(const Figure figure){
    switch(figure){
        case Figure::None:
            return " ";
        case Figure::Pawn:
            return "p";
    }
    //throw error here
    return "";
}

void Board::print() const {

    for(size_t i = 0; i < fields.size(); i++){
        for(size_t j = 0; j < fields[i].size(); j++){
            cout << to_string(fields[i][j]);
        }
        cout << endl;
    }
    cout << endl;
}
//Board.h
#包括
使用std::数组;
枚举类图{None,Pawn};
班级委员会{
私人:
数组字段;//8x8如果是棋盘
公众:
无效打印()常量;
};
//Board.cpp
#包括“Board.h”
#包括
使用std::cout;
使用std::endl;
#包括
使用std::string;
内联字符串到_字符串(常量图){
开关(图){
案例图::无:
返回“”;
案例图::典当:
返回“p”;
}
//在这里抛出错误
返回“”;
}
无效板::print()常量{
对于(size_t i=0;iCUT需要学习C++的基础知识。这是一个需要解决的问题,但是这里有一个大小为100的数组,包含0到16的值(空的空间0)。然后写一个循环来遍历数组。@你想回答一个答案吗?你应该看看这本书“专业C++”。它将引导您了解如何使用现代c++@T\T制作一个非常简单的国际象棋游戏您的“一个问题”是基于你不使用C++提供的可能性。你试图以程序的方式解决你的问题。这会导致越来越多的问题,尤其是关于概述。看,一个可以在程序上解决你的问题。但是我不会认为一个坏的设计是一个好的答案。那就是说,我的解决方案拥有你所需要的一切,你是哪一个。仍然需要一个过程解决方案,即存储(数组^2)和在其上工作的代码(for循环)。