Java入门开发类贪吃蛇控制台游戏 调用spawnPlayer方法报错
问题原因
- 你在Player类中定义的
spawnPlayer方法声明了需要传入String[][] fieldSize参数,但是在main方法调用时没有传入对应参数,因此触发编译错误 - 额外注意:你生成玩家后没有重新打印游戏场,即使调用成功也看不到玩家标识
修复方案
1. 修改main方法调用逻辑
修改KonsolenWanderer类的main方法代码即可解决报错:
public class KonsolenWanderer { public static void main(String[] args) { Field field1 = new Field(); field1.createField(); Player player1 = new Player(); // 通过Field类的getter方法拿到游戏场数组,传入spawnPlayer方法 player1.spawnPlayer(field1.getFieldSize()); // 新增:重新打印生成玩家后的游戏场 String[][] gameField = field1.getFieldSize(); for(int i = 0; i < gameField.length; i++) { for(int j = 0; j < gameField[i].length; j++) { System.out.print(gameField[i][j]); } System.out.println(); } } }
2. 可选优化建议
- 可以把打印游戏场的逻辑封装成Field类的
printField()公共方法,避免重复写遍历打印代码 - Player类的
xPosition、yPosition不要用static修饰,否则如果创建多个玩家实例,所有玩家的位置会互相覆盖 - 初始化玩家的时候可以给
currentDirection默认赋值为right,后续转向逻辑可以直接复用这个变量修改显示的标识
内容的提问来源于stack exchange,提问作者David1996
相关产品推荐
相关产品推荐

