当前位置: 首页 > 知识库问答 >
问题:

比较两个对象之间的实例。C

张华池
2023-03-14

我目前正在创建一个设计不佳的战舰游戏,我已经达到了一个点,我不知道如何从另一个对象访问一些数据。

我有一个板类,它创建两个大小为100的数组。我有一个玩家类,它有属于他们的两块板的实例(他们的板和敌人的板(击中,错过,空))

我所遇到的问题是,如何使两个玩家的棋盘同步,但在棋盘的功能内,在玩家的内部。。。

我的职能应该是脱离董事会,以便

 class Board{
    int playerBoard[100];
    int enemyBoard[100];

    int makeMove(Move)
      {
        // compare player1.enemyBoard to player2.playerBoard (THIS ??)
      };

 class Player{
    Board playerBoards;

    void makeMove() // edit, the makeMove() in players, cant have parameters
    {
    playerBoards.makeMove(Move x){...};
    };
 }

 Player player1;
 Player player2;

player1.makeMove(Move x);

但是,在player1.boards的功能中,如何访问player2呢。。。我很困惑,任何帮助都将不胜感激。我很抱歉这可能会引起任何混乱。

共有1个答案

漆雕奇逸
2023-03-14

您可以像下面的解决方案一样实现

class Board{
      private:
        int player1Board[100];
        int player2Board[100];
      public:
        int* getPlayerBoard(int playerID){
            if (playerID == 1)
                 return &player1Board;
            else if (playerID == 2)
                 return &player2Board;
            else
                 return nullptr;
        }
        int makeMove(Move,int playerID)
        {
           if(playerID == 1){
              //update player1Board
           }
           elseif (playerID == 2){
              //update player2Board
           }
       };

class Player{
    private:
       Board* playerBoards;
       int playerID;

    public:
       Player(int _playerID, Board* _playerBoards){
          playerID = _playerID;
          playerBoards = _playerBoards;
       }
       void makeMove() // edit, the makeMove() in players, cant have parameters
       {
          playerBoards->makeMove(Move x,playerID){...};
       };        
 }

 Board playerBoards;
 Player player1(1,&playerBoards);
 Player player2(2,&playerBoards);

 player1.makeMove(Move x);

为了进一步改进它,你也可以为类板使用单例模式

 类似资料:
  • 问题内容: 给定以下类,如何将两个实例中的所有值相互比较? 为此的用例是在显示来自服务器的数据的应用程序中。将数据转换为对象后,便会创建该对象的副本。用户能够编辑各种字段等,从而更改对象之一中的值。 需要将可能已更新的主要对象与该对象的副本进行比较。如果对象相等(所有属性的值都相同),则不会发生任何事情。如果任何一个值都不相等,那么应用程序会将更改提交给服务器。 如代码示例所示,由于未指定值,因此

  • 在爪哇中。如果我们必须将一个对象与另一个对象进行比较。我们比较该对象中的每个字段。 学生 1 对象具有标记 1、标记 2、标记 3、名称、年龄作为字段。学生 2 对象具有标记 1、标记 2、标记 3、名称、年龄作为字段。因此,要检查2名学生是否相等...我们比较每个字段。 但是,如果 Student 对象有许多字段,该怎么办?学生1对象有标记1,标记2,标记3,名称,年龄,地址,颜色,类,国家,部

  • 创建一个名为“Circle”的Java类来实现Java。io。可串行化接口,并基于半径对圆进行建模。半径不能小于零。实现radius的getter和setter方法。还包括在circle类中重写toString。创建类的比较器,用于比较Circle类型的两个对象。 这就是我目前所拥有的 这是我的比较器类 我的问题是我做得对还是不对?

  • 对于PostgreSQL(v9.5),JSONB格式提供了极好的机会。但现在我只能做一个相对简单的手术; 比较两个jsonb对象;查看一个文档与另一个文档相比有什么不同或缺失。 到目前为止我所拥有的 应该返回第1行与第2行的差异: 相反,它还返回重复项(

  • 使用RestAssured,我试图比较两个JSON对象。 示例:第一个JSON来自excel,我将其作为字符串读取并存储 第二个 JSON 是返回响应对象的响应,该响应对象实际上是一个 JSON 我想将这两者作为JSON对象进行比较,因为当我将响应转换为String并尝试进行比较时,如果JSON模式的顺序发生变化,我的断言就会失败。 我尝试了将字符串转换成JSON的方法,但是没有找到任何方法。有人

  • 我试图建立一个函数,检查一个单词或文本是否是回文。要做到这一点,它拆分文本,使每个字母都是一个新数组的元素,它去掉空白,并建立反向数组。然后检查两个数组中处于相同位置的每个元素是否相等。如果不是,则返回false,如果是,则返回true。这里的函数是: 我不知道出了什么问题,但是不管我传递给函数什么单词或文本,函数似乎都在返回一个真值。那有什么不好?