农夫过河问题,从JAVA代码看算法

2025-03-06 18:14:56
推荐回答(1个)
回答1:

好繁琐...一堆if else...你不觉得很麻烦吗? 我给你提个思路. 你每个Goods object里面都设置一个天敌的list. 

Goods g = new Goods("Sheep");
g.setEnemy(Arrays.asList(new String[]{"wolf" }));
Goods g2 = new Goods("Cabbage");
g2.setEnemy(Arrays.asList(new String[]{"Sheep" }));
Goods g3 = new Goods("Wolf");
g3.setEnemy(Arrays.asList(new String[]{}));


这样你的在check isFriendly的时候, 只要检测2个物品的enemyList里面没有自己就可以了.

return !good1.getEnemyList().contains(good2.getName()) && !good2.getEnemyList().contains(good1.getName());