【发布时间】:2016-05-03 12:41:56
【问题描述】:
最后一行代码给出了一个错误 p1 无法解决。我相信这是因为它不在范围内,但我不确定如何解决这个问题。感谢任何帮助表示赞赏。
switch (Player1)
{
case "Human":
{
HumanPlayer p1 = new HumanPlayer(sc, theGame);
break;
}
case "Simple":
{
SimpleComputerPlayer p1 = new SimpleComputerPlayer();
break;
}
case "Random":
{
RandomComputerPlayer p1 = new RandomComputerPlayer();
break;
}
case "Expert":
{
ExpertPlayer p1 = new ExpertPlayer();
break;
}
}
p1.setMySymbol(SquareStatus.CROSS);
【问题讨论】:
-
p1在您的case块之外是未知的。在switch之前声明它。 -
除了变量超出块范围之外,这是将 p1 定义为可变对象的好方法吗?也许玩家类型都是某些
Player类型的后代,但是保持这一点,因为它们每个都有潜在的不同方法将变得很痛苦。