Для собственного удовольствия я пишу то, что, надеюсь, станет основой игры, которая появится позже. На данный момент я работаю над игрой "доска". Пожалуйста, примите во внимание следующее:
class Board
{
private Cube[,,] gameBoard;
public Cube[, ,] GameBoard { get; }
private Random rnd;
private Person person;
public Person _Person { get; }
//default constructor
public Board()
{
person = new Person(this);
rnd = new Random();
gameBoard = new Cube[10, 10, 10];
gameBoard.Initialize();
int xAxis = rnd.Next(11);
int yAxis = rnd.Next(11);
int zAxis = rnd.Next(11);
gameBoard[xAxis, yAxis, zAxis].AddContents(person);
}
}
А это:
class Person : IObject
{
public Board GameBoard {get; set;}
public int Size { get; set; }
public void Move()
{
throw new NotImplementedException();
}
public void Move(Cube startLocation, Cube endLocation)
{
startLocation.RemoveContents(this);
endLocation.AddContents(this);
}
public Person(Board gameBoard)
{
Size = 1;
GameBoard = gameBoard;
}
public int[] GetLocation()
{
int[] currentLocation;
var location =
from cubes in GameBoard.GameBoard
where cubes.GetContents.Contains(this)
select cubes;
}
}
Я знаю, что это так неправильно, это, вероятно, даже не смешно, но это грубейший из грубых сокращений.
Я пытаюсь получить GetLocation
, чтобы вернуть конкретный индекс Cube
, в котором находится Person
. Так что, если человек находится в Board.GameBoard[1, 2, 10]
, я смогу найти это местоположение (вероятно, как int[]
, как указано выше). Однако в настоящее время я не могу скомпилировать из-за следующей ошибки:
Could not find an implementation of the query pattern for source type 'Cubes.Cube[*,*,*]'. 'Where' not found.'
Я был почти уверен, что LINQ должен иметь возможность запрашивать многомерные массивы, но я не нашел никакой документации о том, как это сделать.
Любые предложения, или я нахожусь на совершенно неправильном пути?