java 如何 二维数组 和 enum枚举 进行比较?

我有一个 java 方法 canEatGoat

    public boolean canEatGoat(int tigerLoc, Board bd, int[] scapeGoat)
    {   return false;        
    }

它的功能是如果 tigerLoc(位置)的老虎可以吃任何山羊,则返回true,
如果老虎不能吃山羊,则返回false。
只能使用 legalEats[][] 而不能使用其他数组。

可以吃的山羊的位置填入 scapeGoat[0]
老虎吃完山羊后落的目的地填入 scapeGoat[1]。

有一个数组 legalEats[][]

private final int[][] legalEats = {{1,2, 9,21, 3,6}, {4,7}, {1,0, 5,8, 14,23}, 
{4,5, 10,18},{}, {4,3, 13,20}, {4,1}, 
{10,11},{}, {10,9}, ,{}, {13,12}, {11,6, 16,17, 18,21}, {19,22}, 
{12,8, 16,15, 20,23}, {10,3, 19,20},{}, {9,0, 18,15, 22,23}};


legalEats[0] 意味着 [0] 处的老虎可以在 [1] 处吃一只山羊并在 [2] 处着陆
(必须在 [1] 处有一只山羊并且 [2] 必须是空的)
在 [0] 处的老虎也可以在 [9] 处吃一只山羊并跳到 [21] 或在 [3] 处吃一只山羊并跳到 [6]

** 目前小妹的想法 : 通过比较在legalEats[tigerLoc][i]和 bd.isGoat() / bd.isVacant() 内在有没有相同数字, 从而找出可不可以在这两个条件(.isGoat 和 isVacant 存在) 下返回true ,但二维数组 和 enum枚举 好像不能进行比较? **

public class GameRules
{
   
    private boolean moveStage; 
    private boolean goatsTurn;
    private int numGoats;
    private int numTigers; 
    private final int MAXGOATS = 12;
    private Board bd;
             
public boolean canEatGoat(int tigerLoc, Board bd, int[] scapeGoat)//从这里开始
    {
        for (int i=0;i < legalEats[i].length;i++)
        { 
            if (legalEats[tigerLoc][i] == bd.isGoat(tigerLoc) && legalEats[tigerLoc][i+1] == bd.isVacant(tigerLoc)){ 
                return true;} 
        else{
             return false; } 
        }
      
       
        return false;
        
    }//结束


public class Board
{
  private enum Piece {GOAT, TIGER, VACANT};
    Piece[] board;

    public boolean isGoat(int a)// isGoat方法
    {
        return board[a] == Piece.GOAT;
    }

    public boolean isVacant(int a)// isVacant方法
    {
        return board[a] == Piece.VACANT;
    }
    }

不排除不需要枚举進行比較
如果有其他更优解 欢迎指教 谢谢

枚举返回的是整形值,只要数组返回的数据类型一致就可以比较。

自己写个算法比较就是了。主要看你想怎么比了,legalEats[tigerLoc][i]这个是拿到一个点,bd.isGoat(int a)这个方法是判断是不是山羊,
能不能吃的判断就是 legalEats[tigerLoc][i] == bd.isGoat(i)
能不能跳跃的判断就是legalEats[tigerLoc][next] == bd.isVacant(next)
没理解错的话应该就是这样比咯。