地图输出到控制台,如果单元格中有一个对象,则显示其符号,如果有多个,则显示单元格中的对象数。问题是,如果有 10 个或更多对象,即一个两位数,那么卡片就会移出。
如何避免这种情况?
地图输出的覆盖方法:
public override string ToString()
{
var mapStatus = new StringBuilder(string.Concat(Enumerable.Repeat("-", Width*4)) + "-\n");
for (int i = 0; i < Width; i++)
{
var strLineCells = new StringBuilder("|");
for (var j = 0; j < Height; j++)
{
var type = new StringBuilder(Cells[i, j].CellType == CellType.Ground ? "-" : "~");
var objects = new StringBuilder();
if (Cells[i, j].Objects.Count == 1)
{
objects.Append(Cells[i, j].Objects[0].Symbol.ToString());
}
else if (Cells[i, j].Objects.Count == 0)
{
objects.Append(" ");
}
else
{
objects.Append(Cells[i, j].Objects.Count.ToString());
}
StringBuilder strCell = new StringBuilder($"{type} {objects}|");
strLineCells.Append(strCell);
}
mapStatus.Append(strLineCells + "\n");
}
return mapStatus.Append(string.Concat(Enumerable.Repeat("-", Width * 4)) + "-\n").ToString();
}
更好的谷歌搜索找到了答案
中的号码: