我仍在学习 C# 编程的诀窍。我正在尝试编写一个应用程序来解决骑士之旅,但在尝试为骑士获得可能的未来职位时遇到了一些悲伤。
对于职位,我使用了一个非常简单的结构:
public struct Position
{
public enum BoardRank { A = 1, B, C, D, E, F, G, H };
public BoardRank X;
public int Y;
}
在骑士课中,我的PossibleMoves()
方法是这样开始的:
public List<Position> PossibleMoves(Position position)
{
List<Position> positions = new List<Position>();
int[] multiply = new int[]{1, -1};
foreach (int times in multiply)
{
try{
Position possible = new Position();
possible.X = position.X + (Behaviour.X * times);
possible.Y = position.Y + (Behaviour.Y * times);
positions.Add(possible);
}
...
对于 position = A1 和 times = -1,您可以看到 Behaviour.X 是如何迅速超出范围的,但我认为这会被 try 块拾取。
我尝试{get; set;}
在枚举声明上添加一个,但这在 VS2010 中引发了一些无用的语法错误。
还有什么我可以在这里尝试阻止我的枚举超出范围的吗?