Pour mon plaisir personnel, j'écris ce qui, je l'espère, constituera la base d'un jeu à venir plus tard. Au courant, je travaille sur le jeu "board". S'il vous plaît considérer les points suivants:Sélectionnez l'élément inconnu du tableau multidimensionnel à l'aide de LINQ
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);
}
}
Et ceci:
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;
}
}
Je sais que ce qui est si mal il est probablement même pas drôle, mais c'est le plus rugueux des coupes grossières.
J'essaie d'obtenir GetLocation
pour retourner l'index spécifique du Cube
dans lequel se trouve le Person
. Donc, si la personne est dans Board.GameBoard[1, 2, 10]
, je serai en mesure de récupérer cet emplacement (probablement comme int[]
comme indiqué ci-dessus). Cependant, au cours, je suis incapable de compiler en raison de l'erreur suivante:
Could not find an implementation of the query pattern for source type 'Cubes.Cube[*,*,*]'. 'Where' not found.'
Je me doutais bien que LINQ devrait pouvoir interroger des tableaux multidimensionnels, mais je ne l'ai pas trouvé aucune documentation sur la façon pour le faire.
Des suggestions, ou suis-je sur la piste complètement faux ici?
Merci ... J'avais peur de ça. Et puis je trouve que j'ai seulement posé une partie de la question à laquelle j'ai besoin de la réponse. Oups. – AllenG